Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
7ed84a28ca | |||
40515a860d | |||
1e6410e432 | |||
f8e7ee18d9 | |||
|
9b2c55a531 | ||
|
6ed55fd9b3 | ||
b7700fd5fa | |||
|
800b787dcf | ||
|
00ae70e9dd | ||
|
b40011c6f7 | ||
d747eda300 | |||
c0e2e7a918 | |||
1a8758d592 | |||
bbb21eb173 | |||
d750710810 | |||
06fac2b063 | |||
844c43bc18 | |||
8fbfcfddc1 | |||
0239cceeda | |||
318cb4ebd4 | |||
b692b3f7df | |||
8215562b11 |
18
.eslintrc
Normal file
18
.eslintrc
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"env": { "shared-node-browser":true },
|
||||
"globals": {},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 3,
|
||||
},
|
||||
"plugins": [ "html", "json" ],
|
||||
"extends": "eslint:recommended",
|
||||
"rules": {
|
||||
"comma-style": [ 2, "last" ],
|
||||
"comma-dangle": [ 2, "never" ],
|
||||
"curly": 0,
|
||||
"no-bitwise": 0,
|
||||
"no-console": 0,
|
||||
"no-trailing-spaces": 2,
|
||||
"semi": [ 2, "always" ]
|
||||
}
|
||||
}
|
29
.flowconfig
Normal file
29
.flowconfig
Normal file
@ -0,0 +1,29 @@
|
||||
[ignore]
|
||||
.*/node_modules/.*
|
||||
.*/dist/.*
|
||||
.*/test.js
|
||||
.*/adler32.js
|
||||
|
||||
.*/bits/.*
|
||||
.*/ctest/.*
|
||||
.*/misc/.*
|
||||
.*/perf/.*
|
||||
|
||||
.*/demo/browser.js
|
||||
.*/shim.js
|
||||
|
||||
[include]
|
||||
adler32.flow.js
|
||||
.*/bin/.*.njs
|
||||
.*/demo/browser.flow.js
|
||||
|
||||
[libs]
|
||||
bits/10_types.js
|
||||
misc/flow.js
|
||||
misc/flowdeps.js
|
||||
|
||||
[options]
|
||||
module.file_ext=.js
|
||||
module.file_ext=.njs
|
||||
module.ignore_non_literal_requires=true
|
||||
suppress_comment= \\(.\\|\n\\)*\\$FlowIgnore
|
92
.github/workflows/node-4+.yml
vendored
Normal file
92
.github/workflows/node-4+.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: 'Tests: node.js'
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
latest: ${{ steps.set-matrix.outputs.requireds }}
|
||||
steps:
|
||||
- uses: ljharb/actions/node/matrix@main
|
||||
id: set-matrix
|
||||
with:
|
||||
versionsAsRoot: true
|
||||
type: 'majors'
|
||||
preset: '>=4'
|
||||
|
||||
latest:
|
||||
needs: [matrix]
|
||||
name: 'latest majors'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version: ${{ fromJson(needs.matrix.outputs.latest) }}
|
||||
include:
|
||||
- node-version: '14.'
|
||||
env:
|
||||
TZ: America/New_York
|
||||
- node-version: '13.'
|
||||
env:
|
||||
TZ: Europe/London
|
||||
- node-version: '12.'
|
||||
env:
|
||||
TZ: Asia/Seoul
|
||||
- node-version: '11.'
|
||||
env:
|
||||
TZ: America/Los_Angeles
|
||||
FMTS: misc
|
||||
- node-version: '10.'
|
||||
env:
|
||||
TZ: Europe/Berlin
|
||||
FMTS: misc
|
||||
- node-version: '9.'
|
||||
env:
|
||||
TZ: Asia/Kolkata
|
||||
FMTS: misc
|
||||
- node-version: '8.'
|
||||
env:
|
||||
TZ: Asia/Shanghai
|
||||
FMTS: misc
|
||||
- node-version: '7.'
|
||||
env:
|
||||
TZ: America/Cancun
|
||||
FMTS: misc
|
||||
- node-version: '6.'
|
||||
env:
|
||||
TZ: Asia/Seoul
|
||||
FMTS: misc
|
||||
- node-version: '5.'
|
||||
env:
|
||||
TZ: America/Anchorage
|
||||
FMTS: misc
|
||||
- node-version: '4.'
|
||||
env:
|
||||
TZ: America/Barbados
|
||||
FMTS: misc
|
||||
- node-version: '4.4.7' # see GH issue #1150
|
||||
env:
|
||||
TZ: Asia/Tokyo
|
||||
FMTS: misc
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ljharb/actions/node/install@main
|
||||
name: 'nvm install ${{ matrix.node-version }} && npm install'
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
- run: sudo chmod a+x /usr/bin/rooster
|
||||
#- run: make init
|
||||
#- run: 'cd test_files; make all; cd -'
|
||||
- run: npm run test
|
||||
#- run: 'cd packages/ssf; npm install; npm run tests-only; cd -'
|
||||
|
||||
node:
|
||||
name: 'node 4+'
|
||||
needs: [latest]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: 'echo tests completed'
|
45
.github/workflows/node-iojs.yml
vendored
Normal file
45
.github/workflows/node-iojs.yml
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
name: 'Tests: node.js (io.js)'
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
latest: ${{ steps.set-matrix.outputs.requireds }}
|
||||
steps:
|
||||
- uses: ljharb/actions/node/matrix@main
|
||||
id: set-matrix
|
||||
with:
|
||||
type: 'majors'
|
||||
preset: 'iojs'
|
||||
|
||||
latest:
|
||||
needs: [matrix]
|
||||
name: 'latest majors'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix: ${{ fromJson(needs.matrix.outputs.latest) }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ljharb/actions/node/install@main
|
||||
name: 'nvm install ${{ matrix.node-version }} && npm install'
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
skip-ls-check: true
|
||||
- run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
- run: sudo chmod a+x /usr/bin/rooster
|
||||
#- run: make init
|
||||
#- run: 'cd test_files; make all; cd -'
|
||||
- run: npm run test
|
||||
#- run: 'cd packages/ssf; npm run tests-only; cd -'
|
||||
|
||||
node:
|
||||
name: 'io.js'
|
||||
needs: [latest]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: 'echo tests completed'
|
32
.github/workflows/node-pretest.yml
vendored
Normal file
32
.github/workflows/node-pretest.yml
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
name: 'Tests: pretest/posttest'
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
pretest:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ljharb/actions/node/install@main
|
||||
name: 'nvm install lts/* && npm install'
|
||||
with:
|
||||
node-version: 'lts/*'
|
||||
- run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
- run: sudo chmod a+x /usr/bin/rooster
|
||||
#- run: make init
|
||||
#- run: 'cd test_files; make all; cd -'
|
||||
#- run: npm run pretest
|
||||
|
||||
# posttest:
|
||||
# runs-on: ubuntu-latest
|
||||
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: ljharb/actions/node/install@main
|
||||
# name: 'nvm install lts/* && npm install'
|
||||
# with:
|
||||
# node-version: 'lts/*'
|
||||
# - run: make init
|
||||
# - run: 'cd test_files; make all; cd -'
|
||||
# - run: npm run posttest
|
88
.github/workflows/node-zero.yml
vendored
Normal file
88
.github/workflows/node-zero.yml
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
name: 'Tests: node.js (0.x)'
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
stable: ${{ steps.set-matrix.outputs.requireds }}
|
||||
# unstable: ${{ steps.set-matrix.outputs.optionals }}
|
||||
steps:
|
||||
- uses: ljharb/actions/node/matrix@main
|
||||
id: set-matrix
|
||||
with:
|
||||
versionsAsRoot: true
|
||||
preset: '0.x'
|
||||
|
||||
stable:
|
||||
needs: [matrix]
|
||||
name: 'stable minors'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version: ${{ fromJson(needs.matrix.outputs.stable) }}
|
||||
include:
|
||||
- node-version: '0.12.'
|
||||
env:
|
||||
TZ: America/Cayman
|
||||
FMTS: misc
|
||||
- node-version: '0.10.'
|
||||
env:
|
||||
TZ: Pacific/Honolulu
|
||||
FMTS: misc
|
||||
#- node-version: '0.8.'
|
||||
# env:
|
||||
# TZ: America/Mexico_City
|
||||
# FMTS: misc
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ljharb/actions/node/install@main
|
||||
name: 'nvm install ${{ matrix.node-version }} && npm install'
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }}
|
||||
skip-ls-check: true
|
||||
- run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
- run: sudo chmod a+x /usr/bin/rooster
|
||||
#- run: make init
|
||||
#- run: 'cd test_files; make all; cd -'
|
||||
- run: npm run test
|
||||
#- run: 'cd packages/ssf; npm run tests-only; cd -'
|
||||
|
||||
# unstable:
|
||||
# needs: [matrix, stable]
|
||||
# name: 'unstable minors'
|
||||
# continue-on-error: true
|
||||
# if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }}
|
||||
# runs-on: ubuntu-latest
|
||||
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# node-version: ${{ fromJson(needs.matrix.outputs.unstable) }}
|
||||
#
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: ljharb/actions/node/install@main
|
||||
# name: 'nvm install ${{ matrix.node-version }} && npm install'
|
||||
# with:
|
||||
# node-version: ${{ matrix.node-version }}
|
||||
# cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }}
|
||||
# skip-ls-check: true
|
||||
# - run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
# - run: sudo chmod a+x /usr/bin/rooster
|
||||
# - run: make init
|
||||
# - run: 'cd test_files; make all; cd -'
|
||||
# - run: npm run tests-only
|
||||
|
||||
node:
|
||||
name: 'node 0.x'
|
||||
# needs: [stable, unstable]
|
||||
needs: [stable]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: 'echo tests completed'
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,3 +1,7 @@
|
||||
node_modules
|
||||
*.tgz
|
||||
test_files/*.py
|
||||
test_files/*.js
|
||||
test_files/baseline*
|
||||
misc/coverage.html
|
||||
misc/*/
|
||||
ctest/sauce*
|
||||
|
4
.jshintrc
Normal file
4
.jshintrc
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"bitwise": false,
|
||||
"curly": false
|
||||
}
|
14
.npmignore
Normal file
14
.npmignore
Normal file
@ -0,0 +1,14 @@
|
||||
node_modules
|
||||
misc/
|
||||
perf/
|
||||
bits/
|
||||
ctest/
|
||||
test_files/
|
||||
test.js
|
||||
.travis.yml
|
||||
.jscs.json
|
||||
.jshintrc
|
||||
.flowconfig
|
||||
.npmignore
|
||||
perf.txt
|
||||
Makefile
|
11
.spelling
Normal file
11
.spelling
Normal file
@ -0,0 +1,11 @@
|
||||
# adler32.js (C) 2014-present SheetJS -- http://sheetjs.com
|
||||
SheetJS
|
||||
31-bit
|
||||
32-bit
|
||||
ADLER-32
|
||||
UCS-2
|
||||
UTF-8
|
||||
adler32
|
||||
checksum
|
||||
nodejs
|
||||
npm
|
12
.travis.yml
12
.travis.yml
@ -1,10 +1,18 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "0.11"
|
||||
- "9"
|
||||
- "8"
|
||||
- "7"
|
||||
- "6"
|
||||
- "5"
|
||||
- "4"
|
||||
- "0.12"
|
||||
- "0.10"
|
||||
- "0.8"
|
||||
before_install:
|
||||
- "npm install -g mocha"
|
||||
- "npm install -g npm@4.3.0"
|
||||
- "npm install -g voc"
|
||||
- "npm install codepage"
|
||||
- "npm install blanket"
|
||||
- "npm install coveralls mocha-lcov-reporter"
|
||||
after_success:
|
||||
|
191
LICENSE
191
LICENSE
@ -1,4 +1,192 @@
|
||||
Copyright (C) 2014 SheetJS
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright (C) 2014-present SheetJS LLC
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@ -11,4 +199,3 @@ Copyright (C) 2014 SheetJS
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
|
117
Makefile
117
Makefile
@ -1,53 +1,114 @@
|
||||
LIB=adler32
|
||||
REQS=
|
||||
ADDONS=
|
||||
AUXTARGETS=demo/browser.js
|
||||
CMDS=
|
||||
HTMLLINT=index.html
|
||||
|
||||
ULIB=$(shell echo $(LIB) | tr a-z A-Z)
|
||||
DEPS=$(sort $(wildcard bits/*.js))
|
||||
TARGET=$(LIB).js
|
||||
FLOWTARGET=$(LIB).flow.js
|
||||
FLOWTGTS=$(TARGET) $(AUXTARGETS)
|
||||
CLOSURE=/usr/local/lib/node_modules/google-closure-compiler/compiler.jar
|
||||
|
||||
$(TARGET): $(DEPS)
|
||||
## Main Targets
|
||||
|
||||
.PHONY: all
|
||||
all: $(TARGET) $(AUXTARGETS) ## Build library and auxiliary scripts
|
||||
|
||||
$(FLOWTGTS): %.js : %.flow.js
|
||||
node -e 'process.stdout.write(require("fs").readFileSync("$<","utf8").replace(/^[ \t]*\/\*[:#][^*]*\*\/\s*(\n)?/gm,"").replace(/\/\*[:#][^*]*\*\//gm,""))' > $@
|
||||
|
||||
$(FLOWTARGET): $(DEPS)
|
||||
cat $^ | tr -d '\15\32' > $@
|
||||
cp -f $@ ctest/
|
||||
|
||||
bits/01_version.js: package.json
|
||||
echo "ADLER32.version = '"`grep version package.json | awk '{gsub(/[^0-9a-z\.-]/,"",$$2); print $$2}'`"';" > $@
|
||||
echo "$(ULIB).version = '"`grep version package.json | awk '{gsub(/[^0-9a-z\.-]/,"",$$2); print $$2}'`"';" > $@
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f $(TARGET)
|
||||
clean: clean-baseline ## Remove targets and build artifacts
|
||||
rm -f $(TARGET) $(FLOWTARGET)
|
||||
|
||||
## Testing
|
||||
|
||||
.PHONY: test mocha
|
||||
test mocha: test.js
|
||||
mocha -R spec
|
||||
test mocha: test.js $(TARGET) baseline ## Run test suite
|
||||
./node_modules/.bin/mocha -R spec -t 60000
|
||||
|
||||
.PHONY: ctest
|
||||
ctest:
|
||||
ctest: ## Build browser test (into ctest/ subdirectory)
|
||||
cat misc/*.js > ctest/fixtures.js
|
||||
cp -f test.js ctest/test.js
|
||||
cp -f $(TARGET) ctest/
|
||||
cp -f shim.js ctest/shim.js
|
||||
cp -f $(TARGET) ctest/
|
||||
|
||||
.PHONY: ctestserv
|
||||
ctestserv: ## Start a test server on port 8000
|
||||
@cd ctest && python -mSimpleHTTPServer
|
||||
|
||||
.PHONY: baseline
|
||||
baseline: ## Build test baselines
|
||||
@bash ./misc/make_baseline.sh
|
||||
|
||||
.PHONY: clean-baseline
|
||||
clean-baseline: ## Remove test baselines
|
||||
@bash ./misc/make_baseline.sh clean
|
||||
|
||||
## Code Checking
|
||||
|
||||
.PHONY: fullint
|
||||
fullint: lint old-lint tslint flow mdlint ## Run all checks
|
||||
|
||||
.PHONY: lint
|
||||
lint: $(TARGET)
|
||||
jshint --show-non-errors $(TARGET)
|
||||
jscs $(TARGET)
|
||||
lint: $(TARGET) $(AUXTARGETS) ## Run eslint checks
|
||||
@eslint --ext .js,.njs,.json,.html,.htm $(TARGET) $(AUXTARGETS) $(CMDS) $(HTMLLINT) package.json
|
||||
if [ -e $(CLOSURE) ]; then java -jar $(CLOSURE) $(REQS) $(FLOWTARGET) --jscomp_warning=reportUnknownTypes >/dev/null; fi
|
||||
|
||||
.PHONY: cov cov-spin
|
||||
cov: misc/coverage.html
|
||||
cov-spin:
|
||||
make cov & bash misc/spin.sh $$!
|
||||
.PHONY: old-lint
|
||||
old-lint: $(TARGET) $(AUXTARGETS) ## Run jshint and jscs checks
|
||||
@jshint --show-non-errors $(TARGET) $(AUXTARGETS)
|
||||
@jshint --show-non-errors $(CMDS)
|
||||
@jshint --show-non-errors package.json
|
||||
@jshint --show-non-errors --extract=always $(HTMLLINT)
|
||||
@jscs $(TARGET) $(AUXTARGETS)
|
||||
if [ -e $(CLOSURE) ]; then java -jar $(CLOSURE) $(REQS) $(FLOWTARGET) --jscomp_warning=reportUnknownTypes >/dev/null; fi
|
||||
|
||||
COVFMT=$(patsubst %,cov_%,$(FMT))
|
||||
.PHONY: $(COVFMT)
|
||||
$(COVFMT): cov_%:
|
||||
FMTS=$* make cov
|
||||
.PHONY: tslint
|
||||
tslint: $(TARGET) ## Run typescript checks
|
||||
#@npm install dtslint typescript
|
||||
#@npm run-script dtslint
|
||||
dtslint types
|
||||
|
||||
.PHONY: flow
|
||||
flow: lint ## Run flow checker
|
||||
@flow check --all --show-all-errors
|
||||
|
||||
.PHONY: cov
|
||||
cov: misc/coverage.html ## Run coverage test
|
||||
|
||||
misc/coverage.html: $(TARGET) test.js
|
||||
mocha --require blanket -R html-cov > $@
|
||||
./node_modules/.bin/mocha --require blanket -R html-cov -t 30000 > $@
|
||||
|
||||
.PHONY: coveralls coveralls-spin
|
||||
coveralls:
|
||||
mocha --require blanket --reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js
|
||||
.PHONY: coveralls
|
||||
coveralls: ## Coverage Test + Send to coveralls.io
|
||||
./node_modules/.bin/mocha --require blanket --reporter mocha-lcov-reporter -t 20000 | node ./node_modules/coveralls/bin/coveralls.js
|
||||
|
||||
coveralls-spin:
|
||||
make coveralls & bash misc/spin.sh $$!
|
||||
MDLINT=README.md
|
||||
.PHONY: mdlint
|
||||
mdlint: $(MDLINT) ## Check markdown documents
|
||||
alex $^
|
||||
mdspell -a -n -x -r --en-us $^
|
||||
|
||||
.PHONY: perf
|
||||
perf:
|
||||
bash perf/perf.sh
|
||||
perf: ## Run Performance Tests
|
||||
@bash perf/perf.sh
|
||||
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@grep -hE '(^[a-zA-Z_-][ a-zA-Z_-]*:.*?|^#[#*])' $(MAKEFILE_LIST) | bash misc/help.sh
|
||||
|
||||
#* To show a spinner, append "-spin" to any target e.g. cov-spin
|
||||
%-spin:
|
||||
@make $* & bash misc/spin.sh $$!
|
||||
|
101
README.md
101
README.md
@ -1,39 +1,75 @@
|
||||
# adler32
|
||||
|
||||
Signed ADLER-32 algorithm implementation in JS (for the browser and nodejs).
|
||||
Emphasis on correctness and performance.
|
||||
Emphasis on correctness, performance, and IE6+ support.
|
||||
|
||||
## Installation
|
||||
|
||||
In [nodejs](https://www.npmjs.org/package/adler-32):
|
||||
With [npm](https://www.npmjs.org/package/adler-32):
|
||||
|
||||
npm install adler-32
|
||||
```bash
|
||||
$ npm install adler-32
|
||||
```
|
||||
|
||||
In the browser:
|
||||
|
||||
<script lang="javascript" src="adler32.js"></script>
|
||||
```html
|
||||
<script src="adler32.js"></script>
|
||||
```
|
||||
|
||||
The browser exposes a variable ADLER32
|
||||
The browser exposes a variable `ADLER32`.
|
||||
|
||||
When installed globally, npm installs a script `adler32` that computes the
|
||||
checksum for a specified file or standard input.
|
||||
|
||||
The script will manipulate `module.exports` if available . This is not always
|
||||
desirable. To prevent the behavior, define `DO_NOT_EXPORT_ADLER`.
|
||||
|
||||
## Usage
|
||||
|
||||
- `ADLER32.buf(byte array or buffer)` assumes the argument is a set of 8 bit
|
||||
unsigned integers (e.g. nodejs `Buffer` or simple array of ints)
|
||||
In all cases, the relevant function takes an argument representing data and an
|
||||
optional second argument representing the starting "seed" (for running hash).
|
||||
|
||||
- `ADLER32.bstr(binary string)` interprets the argument as a binary string where
|
||||
the `i`-th byte is `str.charCodeAt(i)`
|
||||
The return value is a signed 32-bit integer.
|
||||
|
||||
- `ADLER32.str(string)` interprets the argument as a standard JS string
|
||||
- `ADLER32.buf(byte array or buffer[, seed])` assumes the argument is a sequence
|
||||
of 8-bit unsigned integers (nodejs `Buffer`, `Uint8Array` or array of bytes).
|
||||
|
||||
- `ADLER32.bstr(binary string[, seed])` assumes the argument is a binary string
|
||||
where byte `i` is the low byte of the UCS-2 char: `str.charCodeAt(i) & 0xFF`
|
||||
|
||||
- `ADLER32.str(string)` assumes the argument is a standard JS string and
|
||||
calculates the hash of the UTF-8 encoding.
|
||||
|
||||
For example:
|
||||
|
||||
```js
|
||||
// var ADLER32 = require('adler-32'); // uncomment if in node
|
||||
ADLER32.str("SheetJS") // 176947863
|
||||
ADLER32.bstr("SheetJS") // 176947863
|
||||
ADLER32.buf([ 83, 104, 101, 101, 116, 74, 83 ]) // 176947863
|
||||
|
||||
adler32 = ADLER32.buf([83, 104]) // 17825980 "Sh"
|
||||
adler32 = ADLER32.str("eet", adler32) // 95486458 "Sheet"
|
||||
ADLER32.bstr("JS", adler32) // 176947863 "SheetJS"
|
||||
|
||||
[ADLER32.str("\u2603"), ADLER32.str("\u0003")] // [ 73138686, 262148 ]
|
||||
[ADLER32.bstr("\u2603"), ADLER32.bstr("\u0003")] // [ 262148, 262148 ]
|
||||
[ADLER32.buf([0x2603]), ADLER32.buf([0x0003])] // [ 262148, 262148 ]
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
`make test` will run the nodejs-based test. To run the in-browser tests, run a
|
||||
local server and go to the `ctest` directory. To update the browser artifacts,
|
||||
run `make ctest`.
|
||||
`make test` will run the nodejs-based test.
|
||||
|
||||
To generate the bits file, use the `adler32` function from python zlib:
|
||||
To run the in-browser tests, run a local server and go to the `ctest` directory.
|
||||
`make ctestserv` will start a python `SimpleHTTPServer` server on port 8000.
|
||||
|
||||
```
|
||||
To update the browser artifacts, run `make ctest`.
|
||||
|
||||
To generate the bits file, use the `adler32` function from python `zlib`:
|
||||
|
||||
```python
|
||||
>>> from zlib import adler32
|
||||
>>> x="foo bar baz٪☃🍣"
|
||||
>>> adler32(x)
|
||||
@ -44,14 +80,28 @@ To generate the bits file, use the `adler32` function from python zlib:
|
||||
2023497376
|
||||
```
|
||||
|
||||
The [`adler32-cli`](https://www.npmjs.com/package/adler32-cli) package includes
|
||||
scripts for processing files or text on standard input:
|
||||
|
||||
```bash
|
||||
$ echo "this is a test" > t.txt
|
||||
$ adler32-cli t.txt
|
||||
726861088
|
||||
```
|
||||
|
||||
For comparison, the `adler32.py` script in the subdirectory uses python `zlib`:
|
||||
|
||||
```bash
|
||||
$ packages/adler32-cli/bin/adler32.py t.txt
|
||||
726861088
|
||||
```
|
||||
|
||||
## Performance
|
||||
|
||||
`make perf` will run algorithmic performance tests (which should justify certain
|
||||
decisions in the code).
|
||||
decisions in the code).
|
||||
|
||||
[js-crc](http://git.io/crc32) has more performance notes
|
||||
|
||||
Bit twiddling is much faster than taking the mod on Safari and older Firefoxes.
|
||||
Bit twiddling is much faster than taking the mod in Safari and Firefox browsers.
|
||||
Instead of taking the literal mod 65521, it is faster to keep it in the integers
|
||||
by bit-shifting: `65536 ~ 15 mod 65521` so for nonnegative integer `a`:
|
||||
|
||||
@ -66,22 +116,25 @@ The mod is taken at the very end, since the intermediate result may exceed 65521
|
||||
|
||||
The magic numbers were chosen so as to not overflow a 31-bit integer:
|
||||
|
||||
```
|
||||
```mathematica
|
||||
F[n_] := Reduce[x*(x + 1)*n/2 + (x + 1)*(65521) < (2^31 - 1) && x > 0, x, Integers]
|
||||
F[255] (* bstr: x \[Element] Integers && 1 <= x <= 3854 *)
|
||||
F[127] (* ascii: x \[Element] Integers && 1 <= x <= 5321 *)
|
||||
```
|
||||
|
||||
Subtract up to 4 elements for the unicode case.
|
||||
Subtract up to 4 elements for the Unicode case.
|
||||
|
||||
## License
|
||||
|
||||
Please consult the attached LICENSE file for details. All rights not explicitly
|
||||
granted by the Apache 2.0 license are reserved by the Original Author.
|
||||
|
||||
[![Build Status](https://travis-ci.org/SheetJS/js-adler32.svg?branch=master)](https://travis-ci.org/SheetJS/js-adler32)
|
||||
## Badges
|
||||
|
||||
[![Coverage Status](https://coveralls.io/repos/SheetJS/js-adler32/badge.png?branch=master)](https://coveralls.io/r/SheetJS/js-adler32?branch=master)
|
||||
[![Sauce Test Status](https://saucelabs.com/browser-matrix/adler32.svg)](https://saucelabs.com/u/adler32)
|
||||
|
||||
[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/8827aa40b3fdbca7c7ad0f51c68b3379 "githalytics.com")](http://githalytics.com/SheetJS/js-adler32)
|
||||
[![Build Status](https://img.shields.io/github/workflow/status/sheetjs/js-adler32/Tests:%20node.js)](https://github.com/SheetJS/js-adler32/actions)
|
||||
|
||||
[![Coverage Status](http://img.shields.io/coveralls/SheetJS/js-adler32/master.svg)](https://coveralls.io/r/SheetJS/js-adler32?branch=master)
|
||||
|
||||
[![Analytics](https://ga-beacon.appspot.com/UA-36810333-1/SheetJS/js-adler32?pixel)](https://github.com/SheetJS/js-adler32)
|
||||
|
101
adler32.flow.js
Normal file
101
adler32.flow.js
Normal file
@ -0,0 +1,101 @@
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
/*exported ADLER32 */
|
||||
/*:: declare var DO_NOT_EXPORT_ADLER:?boolean; */
|
||||
/*:: declare function define(cb:()=>any):void; */
|
||||
var ADLER32/*:ADLER32Module*/;
|
||||
(function (factory/*:(a:any)=>void*/)/*:void*/ {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
} else if ('function' === typeof define && /*::(*/define/*:: :any)*/.amd) {
|
||||
define(function () {
|
||||
var module/*:ADLER32Module*/ = /*::(*/{}/*:: :any)*/;
|
||||
factory(module);
|
||||
return module;
|
||||
});
|
||||
} else {
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
} else {
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32/*:ADLER32Module*/) {
|
||||
ADLER32.version = '1.3.1';
|
||||
/*::
|
||||
type ADLER32Type = number;
|
||||
type ABuf = Array<number> | Buffer | Uint8Array;
|
||||
*/
|
||||
/*# consult README.md for the magic number */
|
||||
/*# charCodeAt is the best approach for binary strings */
|
||||
function adler32_bstr(bstr/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf/*:ABuf*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/*# much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
}));
|
99
adler32.js
99
adler32.js
@ -1,69 +1,92 @@
|
||||
/* adler32.js (C) 2014 SheetJS -- http://sheetjs.com */
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
var ADLER32 = {};
|
||||
(function(ADLER32) {
|
||||
ADLER32.version = '0.2.0';
|
||||
/* consult README.md for the magic number */
|
||||
/* charCodeAt is the best approach for binary strings */
|
||||
var use_buffer = typeof Buffer !== 'undefined';
|
||||
function adler32_bstr(bstr) {
|
||||
if(bstr.length > 32768) if(use_buffer) return adler32_buf(Buffer(bstr));
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
/*exported ADLER32 */
|
||||
var ADLER32;
|
||||
(function (factory) {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
} else if ('function' === typeof define && define.amd) {
|
||||
define(function () {
|
||||
var module = {};
|
||||
factory(module);
|
||||
return module;
|
||||
});
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
}
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
}
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32) {
|
||||
ADLER32.version = '1.3.1';
|
||||
function adler32_bstr(bstr, seed) {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i);
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535))
|
||||
b = (15*(b>>>16)+(b&65535))
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf) {
|
||||
var a = 1, b = 0, L = buf.length, M;
|
||||
function adler32_buf(buf, seed) {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i];
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535))
|
||||
b = (15*(b>>>16)+(b&65535))
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/* much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str) {
|
||||
var a = 1, b = 0, L = str.length, M, c, d;
|
||||
function adler32_str(str, seed) {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; b += a; --M; }
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|(c&3); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return (b << 16) | a;
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
})(typeof exports !== "undefined" && typeof DO_NOT_EXPORT_ADLER === 'undefined' ? exports : ADLER32);
|
||||
}));
|
||||
|
101
adler32.mjs
Normal file
101
adler32.mjs
Normal file
@ -0,0 +1,101 @@
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
/*exported ADLER32 */
|
||||
/*:: declare var DO_NOT_EXPORT_ADLER:?boolean; */
|
||||
/*:: declare function define(cb:()=>any):void; */
|
||||
var ADLER32/*:ADLER32Module*/;
|
||||
(function (factory/*:(a:any)=>void*/)/*:void*/ {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
} else if ('function' === typeof define && /*::(*/define/*:: :any)*/.amd) {
|
||||
define(function () {
|
||||
var module/*:ADLER32Module*/ = /*::(*/{}/*:: :any)*/;
|
||||
factory(module);
|
||||
return module;
|
||||
});
|
||||
} else {
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
} else {
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32/*:ADLER32Module*/) {
|
||||
ADLER32.version = '1.3.0';
|
||||
/*::
|
||||
type ADLER32Type = number;
|
||||
type ABuf = Array<number> | Buffer | Uint8Array;
|
||||
*/
|
||||
/*# consult README.md for the magic number */
|
||||
/*# charCodeAt is the best approach for binary strings */
|
||||
function adler32_bstr(bstr/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf/*:ABuf*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/*# much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
}));
|
@ -1,4 +1,27 @@
|
||||
/* adler32.js (C) 2014 SheetJS -- http://sheetjs.com */
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
var ADLER32 = {};
|
||||
(function(ADLER32) {
|
||||
/*exported ADLER32 */
|
||||
/*:: declare var DO_NOT_EXPORT_ADLER:?boolean; */
|
||||
/*:: declare function define(cb:()=>any):void; */
|
||||
var ADLER32/*:ADLER32Module*/;
|
||||
(function (factory/*:(a:any)=>void*/)/*:void*/ {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
} else if ('function' === typeof define && /*::(*/define/*:: :any)*/.amd) {
|
||||
define(function () {
|
||||
var module/*:ADLER32Module*/ = /*::(*/{}/*:: :any)*/;
|
||||
factory(module);
|
||||
return module;
|
||||
});
|
||||
} else {
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
} else {
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32/*:ADLER32Module*/) {
|
||||
|
@ -1 +1 @@
|
||||
ADLER32.version = '0.2.0';
|
||||
ADLER32.version = '1.3.1';
|
||||
|
4
bits/10_types.js
Normal file
4
bits/10_types.js
Normal file
@ -0,0 +1,4 @@
|
||||
/*::
|
||||
type ADLER32Type = number;
|
||||
type ABuf = Array<number> | Buffer | Uint8Array;
|
||||
*/
|
@ -1,60 +1,62 @@
|
||||
/* consult README.md for the magic number */
|
||||
/* charCodeAt is the best approach for binary strings */
|
||||
var use_buffer = typeof Buffer !== 'undefined';
|
||||
function adler32_bstr(bstr) {
|
||||
if(bstr.length > 32768) if(use_buffer) return adler32_buf(Buffer(bstr));
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
/*# consult README.md for the magic number */
|
||||
/*# charCodeAt is the best approach for binary strings */
|
||||
function adler32_bstr(bstr/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i);
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535))
|
||||
b = (15*(b>>>16)+(b&65535))
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf) {
|
||||
var a = 1, b = 0, L = buf.length, M;
|
||||
function adler32_buf(buf/*:ABuf*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i];
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535))
|
||||
b = (15*(b>>>16)+(b&65535))
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/* much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str) {
|
||||
var a = 1, b = 0, L = str.length, M, c, d;
|
||||
/*# much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; b += a; --M; }
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|(c&3); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return (b << 16) | a;
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
@ -1,3 +1,6 @@
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
|
@ -1 +1 @@
|
||||
})(typeof exports !== "undefined" && typeof DO_NOT_EXPORT_ADLER === 'undefined' ? exports : ADLER32);
|
||||
}));
|
||||
|
@ -1,69 +1,92 @@
|
||||
/* adler32.js (C) 2014 SheetJS -- http://sheetjs.com */
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
var ADLER32 = {};
|
||||
(function(ADLER32) {
|
||||
ADLER32.version = '0.2.0';
|
||||
/* consult README.md for the magic number */
|
||||
/* charCodeAt is the best approach for binary strings */
|
||||
var use_buffer = typeof Buffer !== 'undefined';
|
||||
function adler32_bstr(bstr) {
|
||||
if(bstr.length > 32768) if(use_buffer) return adler32_buf(Buffer(bstr));
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
/*exported ADLER32 */
|
||||
var ADLER32;
|
||||
(function (factory) {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
} else if ('function' === typeof define && define.amd) {
|
||||
define(function () {
|
||||
var module = {};
|
||||
factory(module);
|
||||
return module;
|
||||
});
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
}
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
}
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32) {
|
||||
ADLER32.version = '1.3.0';
|
||||
function adler32_bstr(bstr, seed) {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i);
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535))
|
||||
b = (15*(b>>>16)+(b&65535))
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf) {
|
||||
var a = 1, b = 0, L = buf.length, M;
|
||||
function adler32_buf(buf, seed) {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i];
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535))
|
||||
b = (15*(b>>>16)+(b&65535))
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/* much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str) {
|
||||
var a = 1, b = 0, L = str.length, M, c, d;
|
||||
function adler32_str(str, seed) {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; b += a; --M; }
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|(c&3); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return (b << 16) | a;
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
})(typeof exports !== "undefined" && typeof DO_NOT_EXPORT_ADLER === 'undefined' ? exports : ADLER32);
|
||||
}));
|
||||
|
@ -1,2 +1,2 @@
|
||||
var assert = {};
|
||||
assert.equal = function(x,y) { if(x !== y) throw x + " !== " + y; };
|
||||
assert.equal = function(x,y) { if(x !== y) throw new Error(x + " !== " + y); };
|
||||
|
@ -1,11 +1,43 @@
|
||||
var o = "foo bar baz٪☃🍣";
|
||||
var m = "foobar"; for(var i = 0; i != 11; ++i) m+=m;
|
||||
var m1 = m + m, m2 = m1 + m1, m3 = m2 + m2, m4 = m3 + m3;
|
||||
var M1 = m + "𝑹" + m, M2 = M1 + "𝐀" + M1, M3 = M2 + "𝓜" + M2, M4 = M3 + "𝙖" + M3;
|
||||
var bits = [
|
||||
[ "Wikipedia", 300286872, 1 ],
|
||||
[ "foo bar baz", 398066679, 1 ],
|
||||
[ "foo bar baz٪", 570688890 ],
|
||||
[ "foo bar baz٪☃", 919275383],
|
||||
[ "foo bar baz٪☃🍣", 1543572022],
|
||||
[ "foo bar baz٪☃", 919275383 ],
|
||||
[ m, -747910882, 1 ],
|
||||
[ m1, 1286443594, 1],
|
||||
[ m2, 812328098, 1 ],
|
||||
[ m3, -1124316861, 1 ],
|
||||
[ m4, -357657979, 1 ],
|
||||
[ M1, -792947423 ],
|
||||
[ M2, -1841877779 ],
|
||||
[ M3, 869751957 ],
|
||||
[ M4, -1344947227 ],
|
||||
[ o, 1543572022 ],
|
||||
[ o+o, -2076896149 ],
|
||||
[ o+o+o, 2023497376 ]
|
||||
];
|
||||
if(typeof module !== "undefined") module.exports = bits;
|
||||
/*::
|
||||
declare class ADLER32Module {
|
||||
bstr(s:string, seed?:ADLER32Type):ADLER32Type;
|
||||
buf(b:ABuf, seed?:ADLER32Type):ADLER32Type;
|
||||
str(s:string, seed?:ADLER32Type):ADLER32Type;
|
||||
version:string;
|
||||
};
|
||||
*/
|
||||
/*::
|
||||
type _CB = {(data:Buffer):void;};
|
||||
declare module 'concat-stream' {declare function exports(f:_CB):stream$Duplex;};
|
||||
declare module 'exit-on-epipe' {};
|
||||
|
||||
declare module 'adler-32' { declare module.exports:ADLER32Module; };
|
||||
declare module '../' { declare module.exports:ADLER32Module; };
|
||||
|
||||
declare module 'printj' {
|
||||
declare function sprintf(fmt:string, ...args:any):string;
|
||||
};
|
||||
*/
|
||||
|
@ -8,6 +8,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="mocha"></div>
|
||||
<script src="shim.js"></script>
|
||||
<script src="adler32.js"></script>
|
||||
<script src="fakeassert.js"></script>
|
||||
<script src="mocha.js"></script>
|
||||
|
237
ctest/shim.js
Normal file
237
ctest/shim.js
Normal file
@ -0,0 +1,237 @@
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
|
||||
if (!Object.keys) {
|
||||
Object.keys = (function () {
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
||||
hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
|
||||
dontEnums = [
|
||||
'toString',
|
||||
'toLocaleString',
|
||||
'valueOf',
|
||||
'hasOwnProperty',
|
||||
'isPrototypeOf',
|
||||
'propertyIsEnumerable',
|
||||
'constructor'
|
||||
],
|
||||
dontEnumsLength = dontEnums.length;
|
||||
|
||||
return function (obj) {
|
||||
if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object');
|
||||
|
||||
var result = [];
|
||||
|
||||
for (var prop in obj) {
|
||||
if (hasOwnProperty.call(obj, prop)) result.push(prop);
|
||||
}
|
||||
|
||||
if (hasDontEnumBug) {
|
||||
for (var i=0; i < dontEnumsLength; i++) {
|
||||
if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
|
||||
if (!Array.prototype.filter)
|
||||
{
|
||||
Array.prototype.filter = function(fun /*, thisp */)
|
||||
{
|
||||
"use strict";
|
||||
|
||||
if (this == null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun != "function")
|
||||
throw new TypeError();
|
||||
|
||||
var res = [];
|
||||
var thisp = arguments[1];
|
||||
for (var i = 0; i < len; i++)
|
||||
{
|
||||
if (i in t)
|
||||
{
|
||||
var val = t[i]; // in case fun mutates this
|
||||
if (fun.call(thisp, val, i, t))
|
||||
res.push(val);
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
|
||||
if (!String.prototype.trim) {
|
||||
String.prototype.trim = function () {
|
||||
return this.replace(/^\s+|\s+$/g, '');
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
|
||||
if (!Array.prototype.forEach)
|
||||
{
|
||||
Array.prototype.forEach = function(fun /*, thisArg */)
|
||||
{
|
||||
"use strict";
|
||||
|
||||
if (this === void 0 || this === null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun !== "function")
|
||||
throw new TypeError();
|
||||
|
||||
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
|
||||
for (var i = 0; i < len; i++)
|
||||
{
|
||||
if (i in t)
|
||||
fun.call(thisArg, t[i], i, t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Production steps of ECMA-262, Edition 5, 15.4.4.19
|
||||
// Reference: http://es5.github.com/#x15.4.4.19
|
||||
if (!Array.prototype.map) {
|
||||
Array.prototype.map = function(callback, thisArg) {
|
||||
|
||||
var T, A, k;
|
||||
|
||||
if (this == null) {
|
||||
throw new TypeError(" this is null or not defined");
|
||||
}
|
||||
|
||||
// 1. Let O be the result of calling ToObject passing the |this| value as the argument.
|
||||
var O = Object(this);
|
||||
|
||||
// 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
|
||||
// 3. Let len be ToUint32(lenValue).
|
||||
var len = O.length >>> 0;
|
||||
|
||||
// 4. If IsCallable(callback) is false, throw a TypeError exception.
|
||||
// See: http://es5.github.com/#x9.11
|
||||
if (typeof callback !== "function") {
|
||||
throw new TypeError(callback + " is not a function");
|
||||
}
|
||||
|
||||
// 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
|
||||
if (thisArg) {
|
||||
T = thisArg;
|
||||
}
|
||||
|
||||
// 6. Let A be a new array created as if by the expression new Array(len) where Array is
|
||||
// the standard built-in constructor with that name and len is the value of len.
|
||||
A = new Array(len);
|
||||
|
||||
// 7. Let k be 0
|
||||
k = 0;
|
||||
|
||||
// 8. Repeat, while k < len
|
||||
while(k < len) {
|
||||
|
||||
var kValue, mappedValue;
|
||||
|
||||
// a. Let Pk be ToString(k).
|
||||
// This is implicit for LHS operands of the in operator
|
||||
// b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
|
||||
// This step can be combined with c
|
||||
// c. If kPresent is true, then
|
||||
if (k in O) {
|
||||
|
||||
// i. Let kValue be the result of calling the Get internal method of O with argument Pk.
|
||||
kValue = O[ k ];
|
||||
|
||||
// ii. Let mappedValue be the result of calling the Call internal method of callback
|
||||
// with T as the this value and argument list containing kValue, k, and O.
|
||||
mappedValue = callback.call(T, kValue, k, O);
|
||||
|
||||
// iii. Call the DefineOwnProperty internal method of A with arguments
|
||||
// Pk, Property Descriptor {Value: mappedValue, : true, Enumerable: true, Configurable: true},
|
||||
// and false.
|
||||
|
||||
// In browsers that support Object.defineProperty, use the following:
|
||||
// Object.defineProperty(A, Pk, { value: mappedValue, writable: true, enumerable: true, configurable: true });
|
||||
|
||||
// For best browser support, use the following:
|
||||
A[ k ] = mappedValue;
|
||||
}
|
||||
// d. Increase k by 1.
|
||||
k++;
|
||||
}
|
||||
|
||||
// 9. return A
|
||||
return A;
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
|
||||
if (!Array.prototype.indexOf) {
|
||||
Array.prototype.indexOf = function (searchElement, fromIndex) {
|
||||
if ( this === undefined || this === null ) {
|
||||
throw new TypeError( '"this" is null or not defined' );
|
||||
}
|
||||
|
||||
var length = this.length >>> 0; // Hack to convert object.length to a UInt32
|
||||
|
||||
fromIndex = +fromIndex || 0;
|
||||
|
||||
if (Math.abs(fromIndex) === Infinity) {
|
||||
fromIndex = 0;
|
||||
}
|
||||
|
||||
if (fromIndex < 0) {
|
||||
fromIndex += length;
|
||||
if (fromIndex < 0) {
|
||||
fromIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (;fromIndex < length; fromIndex++) {
|
||||
if (this[fromIndex] === searchElement) {
|
||||
return fromIndex;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
|
||||
|
||||
if (! Array.isArray) {
|
||||
Array.isArray = function(obj) {
|
||||
return Object.prototype.toString.call(obj) === "[object Array]";
|
||||
};
|
||||
}
|
||||
|
||||
// https://github.com/ttaubert/node-arraybuffer-slice
|
||||
// (c) 2013 Tim Taubert <tim@timtaubert.de>
|
||||
// arraybuffer-slice may be freely distributed under the MIT license.
|
||||
|
||||
"use strict";
|
||||
|
||||
if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {
|
||||
ArrayBuffer.prototype.slice = function (begin, end) {
|
||||
begin = (begin|0) || 0;
|
||||
var num = this.byteLength;
|
||||
end = end === (void 0) ? num : (end|0);
|
||||
|
||||
// Handle negative values.
|
||||
if (begin < 0) begin += num;
|
||||
if (end < 0) end += num;
|
||||
|
||||
if (num === 0 || begin >= num || begin >= end) {
|
||||
return new ArrayBuffer(0);
|
||||
}
|
||||
|
||||
var length = Math.min(num - begin, end - begin);
|
||||
var target = new ArrayBuffer(length);
|
||||
var targetArray = new Uint8Array(target);
|
||||
targetArray.set(new Uint8Array(this, begin, length));
|
||||
return target;
|
||||
};
|
||||
}
|
@ -4,18 +4,86 @@ if(typeof require !== 'undefined') {
|
||||
assert = require('assert');
|
||||
describe('source',function(){it('should load',function(){X=require('./');});});
|
||||
bits = require('./misc/bits.js');
|
||||
fs = require("fs");
|
||||
} else { X = ADLER32; }
|
||||
|
||||
function readlines(f) { return fs.readFileSync(f, "ascii").split("\n"); }
|
||||
|
||||
function msieversion()
|
||||
{
|
||||
if(typeof window == 'undefined') return Infinity;
|
||||
if(typeof window.navigator == 'undefined') return Infinity;
|
||||
var ua = window.navigator.userAgent
|
||||
var msie = ua.indexOf ( "MSIE " )
|
||||
if(msie < 0) return Infinity;
|
||||
return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )));
|
||||
}
|
||||
|
||||
var Buffer_from = function(){};
|
||||
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var nbfs = !Buffer.from;
|
||||
if(!nbfs) try { Buffer.from("foo", "utf8"); } catch(e) { nbfs = true; }
|
||||
Buffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);
|
||||
}
|
||||
|
||||
describe('adler32 bits', function() {
|
||||
bits.forEach(function(i) {
|
||||
var l = i[0].length;
|
||||
var msg = i[0];
|
||||
if(l > 20) i[0].substr(0,5) + "...(" + l + ")..." + i[0].substr(-5);
|
||||
var msg = i[0], l = i[0].length, L = i[1]|0;
|
||||
if(l > 20) msg = i[0].substr(0,5) + "...(" + l + ")..." + i[0].substr(-5);
|
||||
if(l > 100 && msieversion() < 9) return;
|
||||
if(l > 20000 && typeof Buffer === 'undefined') return;
|
||||
it(msg, function() {
|
||||
if(i[2] === 1) assert.equal(X.bstr(i[0]), i[1]|0);
|
||||
if(i[2] === 1) assert.equal(X.bstr(i[0]), L);
|
||||
assert.equal(X.str(i[0]), i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') assert.equal(X.buf(new Buffer(i[0])), i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') assert.equal(X.buf(Buffer_from(i[0])), L);
|
||||
var len = i[0].length, step = len < 20000 ? 1 : len < 50000 ? Math.ceil(len / 20000) : Math.ceil(len / 2000);
|
||||
for(var x = 0; x < len; x += step) {
|
||||
if(i[0].charCodeAt(x) >= 0xD800 && i[0].charCodeAt(x) < 0xE000) continue;
|
||||
if(i[2] === 1) {
|
||||
var bstradl = X.bstr(i[0].substr(x), X.bstr(i[0].substr(0, x)));
|
||||
assert.equal(bstradl, L);
|
||||
}
|
||||
var stradl = X.str(i[0].substr(x), X.str(i[0].substr(0, x)));
|
||||
assert.equal(stradl, i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var buf = Buffer_from(i[0]);
|
||||
var bufadl = X.buf(buf.slice(x), X.buf(buf.slice(0, x)));
|
||||
assert.equal(bufadl, L);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
if(typeof require !== 'undefined') describe("unicode", function() {
|
||||
if(!fs.existsSync("./test_files/uccat.txt")) return;
|
||||
var uccat = readlines("./test_files/uccat.txt");
|
||||
uccat.forEach(function(cat) {
|
||||
it("Category " + cat, function() {
|
||||
if(!fs.existsSync("./test_files/baseline." + cat + ".txt")) return;
|
||||
var corpus = readlines("./test_files/baseline." + cat + ".txt");
|
||||
var uctable = require("./test_files/uctable." + cat + ".js");
|
||||
for(var ucidx = 0; ucidx < uctable.length; ++ucidx) {
|
||||
var c = uctable[ucidx];
|
||||
/* since the baselines are passed via utf8, discard invalid codes */
|
||||
if(c.charCodeAt(0) >= 0xD800 && c.charCodeAt(0) < 0xE000) continue;
|
||||
var cc = corpus[ucidx], dd = X.str(c);
|
||||
assert.equal(dd, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + dd);
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var ee = X.buf(Buffer_from(c, "utf8"));
|
||||
assert.equal(ee, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + ee);
|
||||
var ff = X.bstr(String.fromCharCode.apply(null, Buffer_from(c, "utf8")));
|
||||
assert.equal(ff, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + ff);
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
});
|
||||
if(typeof require !== 'undefined') describe("corpora", function() {
|
||||
require("./test_files/corpus.json").forEach(function(text) {
|
||||
if(!fs.existsSync(text[1])) return;
|
||||
it("should match '" + text[0] + "' (" + text[2] + ")", function() {
|
||||
assert.equal(text[2], X.buf(fs.readFileSync(text[1])));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
122
demo/browser.flow.js
Normal file
122
demo/browser.flow.js
Normal file
@ -0,0 +1,122 @@
|
||||
/*jshint browser:true */
|
||||
/*eslint-env browser */
|
||||
/*global ADLER32, Uint8Array */
|
||||
/*:: declare var ADLER32: ADLER32Module; */
|
||||
var X = ADLER32;
|
||||
|
||||
function console_log(/*:: ...args:Array<any> */) { if(typeof console !== 'undefined') console.log.apply(console, [].slice.call(arguments)); }
|
||||
|
||||
function lpad(s/*:string*/, len/*:number*/, chr/*:?string*/)/*:string*/{
|
||||
var L/*:number*/ = len - s.length, C/*:string*/ = chr || " ";
|
||||
if(L <= 0) return s;
|
||||
return new Array(L+1).join(C) + s;
|
||||
}
|
||||
|
||||
function is_defined(val/*:any*/, keys/*:Array<string>*/)/*:boolean*/ {
|
||||
if(typeof val === "undefined") return false;
|
||||
return keys.length === 0 || is_defined(val[keys[0]], keys.slice(1));
|
||||
}
|
||||
|
||||
/*# buffer to string; IE String.fromCharCode.apply limit, manual chunk */
|
||||
/*::
|
||||
type ArrayLike = any;
|
||||
type Stringifier = {(d:ArrayLike):string};
|
||||
*/
|
||||
function make_chunk_buf_to_str(BType/*:function*/)/*:Stringifier*/ {
|
||||
return function(data/*:any*/)/*:string*/ {
|
||||
var o = "", l = 0, w = 10240, L = data.byteLength/w;
|
||||
for(; l<L; ++l) o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w,l*w+w)))/*:any*/));
|
||||
o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w)))/*:any*/));
|
||||
return o;
|
||||
};
|
||||
}
|
||||
/*# buffer to binary string */
|
||||
var bstrify/*:Stringifier*/ = make_chunk_buf_to_str(typeof Uint8Array !== 'undefined' ? Uint8Array : Array);
|
||||
|
||||
/*# readAsBinaryString support */
|
||||
var rABS/*:boolean*/ = typeof FileReader !== 'undefined' && is_defined(FileReader, ['prototype', 'readAsBinaryString']);
|
||||
var userABS/*:HTMLInputElement*/ = (document.getElementsByName("userabs")[0]/*:any*/);
|
||||
if(!rABS) {
|
||||
userABS.disabled = true;
|
||||
userABS.checked = false;
|
||||
}
|
||||
|
||||
/*## Process Result */
|
||||
/*:: declare class HTMLPreElement extends HTMLElement { innerText?:string; } */
|
||||
function process_value(val/*:ADLER32Type*/) {
|
||||
var output = [];
|
||||
output[0] = "Signed : " + val;
|
||||
output[1] = "Unsigned : " + (val>>>0);
|
||||
output[2] = "Hex value : " + lpad((val>>>0).toString(16),8,'0');
|
||||
|
||||
var out/*:HTMLPreElement*/ = (document.getElementById('out')/*:any*/);
|
||||
var o = output.join("\n");
|
||||
if(typeof out.innerText == "undefined") out.textContent = o;
|
||||
else out.innerText = o;
|
||||
console_log("output", new Date());
|
||||
}
|
||||
|
||||
/*## Raw Text */
|
||||
var dotxt/*:HTMLInputElement*/ = (document.getElementById('dotext')/*:any*/);
|
||||
dotxt.onclick = function() {
|
||||
var txt/*:HTMLTextAreaElement*/=(document.getElementById('rawdata')/*:any*/);
|
||||
console_log("onload", new Date());
|
||||
var wb/*:ADLER32Type*/ = X.str(txt.value);
|
||||
process_value(wb);
|
||||
};
|
||||
|
||||
/*# HTML5 */
|
||||
|
||||
var readcb = function(e/*:Event*/) {
|
||||
console_log("onload", new Date(), rABS, false);
|
||||
var target/*:FileReader*/ = (e.target/*:any*/);
|
||||
var data = target.result;
|
||||
var val/*:ADLER32Type*/ = rABS ? X.bstr(/*::(*/data/*:: :any)*/) : X.str(bstrify(data));
|
||||
process_value(val);
|
||||
};
|
||||
|
||||
/*## File Input */
|
||||
var handle_file = function(e/*:Event*/) {
|
||||
rABS = userABS.checked;
|
||||
var otarget/*:HTMLInputElement*/ = (e.target/*:any*/);
|
||||
var files/*:FileList*/ = otarget.files;
|
||||
var f/*:File*/ = files[0];
|
||||
|
||||
var reader/*:FileReader*/ = new FileReader();
|
||||
reader.onload = readcb;
|
||||
|
||||
if(rABS) (reader/*:any*/).readAsBinaryString(f);
|
||||
else reader.readAsArrayBuffer(f);
|
||||
};
|
||||
|
||||
var xlf/*:HTMLInputElement*/ = (document.getElementById('xlf')/*:any*/);
|
||||
if(xlf.addEventListener) xlf.addEventListener('change', handle_file, false);
|
||||
|
||||
/*## Drag and Drop File */
|
||||
var handle_drop/*:EventHandler*/ = (function(e/*:DragEvent*/) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
rABS = userABS.checked;
|
||||
if(!e.dataTransfer) return;
|
||||
var files/*:FileList*/ = e.dataTransfer.files;
|
||||
var f/*:File*/ = files[0];
|
||||
|
||||
var reader/*:FileReader*/ = new FileReader();
|
||||
reader.onload = readcb;
|
||||
|
||||
if(rABS) (reader/*:any*/).readAsBinaryString(f);
|
||||
else reader.readAsArrayBuffer(f);
|
||||
}/*:any*/);
|
||||
|
||||
var handle_drag/*:EventHandler*/ = (function (e/*:DragEvent*/) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if(e.dataTransfer) e.dataTransfer.dropEffect = 'copy';
|
||||
}/*:any*/);
|
||||
|
||||
var drop/*:HTMLDivElement*/ = (document.getElementById('drop')/*:any*/);
|
||||
if(drop.addEventListener) {
|
||||
drop.addEventListener('dragenter', handle_drag, false);
|
||||
drop.addEventListener('dragover', handle_drag, false);
|
||||
drop.addEventListener('drop', handle_drop, false);
|
||||
}
|
107
demo/browser.js
Normal file
107
demo/browser.js
Normal file
@ -0,0 +1,107 @@
|
||||
/*jshint browser:true */
|
||||
/*eslint-env browser */
|
||||
/*global ADLER32, Uint8Array */
|
||||
var X = ADLER32;
|
||||
|
||||
function console_log() { if(typeof console !== 'undefined') console.log.apply(console, [].slice.call(arguments)); }
|
||||
|
||||
function lpad(s, len, chr){
|
||||
var L = len - s.length, C = chr || " ";
|
||||
if(L <= 0) return s;
|
||||
return new Array(L+1).join(C) + s;
|
||||
}
|
||||
|
||||
function is_defined(val, keys) {
|
||||
if(typeof val === "undefined") return false;
|
||||
return keys.length === 0 || is_defined(val[keys[0]], keys.slice(1));
|
||||
}
|
||||
|
||||
function make_chunk_buf_to_str(BType) {
|
||||
return function(data) {
|
||||
var o = "", l = 0, w = 10240, L = data.byteLength/w;
|
||||
for(; l<L; ++l) o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w,l*w+w)))));
|
||||
o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w)))));
|
||||
return o;
|
||||
};
|
||||
}
|
||||
var bstrify = make_chunk_buf_to_str(typeof Uint8Array !== 'undefined' ? Uint8Array : Array);
|
||||
|
||||
var rABS = typeof FileReader !== 'undefined' && is_defined(FileReader, ['prototype', 'readAsBinaryString']);
|
||||
var userABS = (document.getElementsByName("userabs")[0]);
|
||||
if(!rABS) {
|
||||
userABS.disabled = true;
|
||||
userABS.checked = false;
|
||||
}
|
||||
|
||||
function process_value(val) {
|
||||
var output = [];
|
||||
output[0] = "Signed : " + val;
|
||||
output[1] = "Unsigned : " + (val>>>0);
|
||||
output[2] = "Hex value : " + lpad((val>>>0).toString(16),8,'0');
|
||||
|
||||
var out = (document.getElementById('out'));
|
||||
var o = output.join("\n");
|
||||
if(typeof out.innerText == "undefined") out.textContent = o;
|
||||
else out.innerText = o;
|
||||
console_log("output", new Date());
|
||||
}
|
||||
|
||||
var dotxt = (document.getElementById('dotext'));
|
||||
dotxt.onclick = function() {
|
||||
var txt=(document.getElementById('rawdata'));
|
||||
console_log("onload", new Date());
|
||||
var wb = X.str(txt.value);
|
||||
process_value(wb);
|
||||
};
|
||||
|
||||
var readcb = function(e) {
|
||||
console_log("onload", new Date(), rABS, false);
|
||||
var target = (e.target);
|
||||
var data = target.result;
|
||||
var val = rABS ? X.bstr(data) : X.str(bstrify(data));
|
||||
process_value(val);
|
||||
};
|
||||
|
||||
var handle_file = function(e) {
|
||||
rABS = userABS.checked;
|
||||
var otarget = (e.target);
|
||||
var files = otarget.files;
|
||||
var f = files[0];
|
||||
|
||||
var reader = new FileReader();
|
||||
reader.onload = readcb;
|
||||
|
||||
if(rABS) (reader).readAsBinaryString(f);
|
||||
else reader.readAsArrayBuffer(f);
|
||||
};
|
||||
|
||||
var xlf = (document.getElementById('xlf'));
|
||||
if(xlf.addEventListener) xlf.addEventListener('change', handle_file, false);
|
||||
|
||||
var handle_drop = (function(e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
rABS = userABS.checked;
|
||||
if(!e.dataTransfer) return;
|
||||
var files = e.dataTransfer.files;
|
||||
var f = files[0];
|
||||
|
||||
var reader = new FileReader();
|
||||
reader.onload = readcb;
|
||||
|
||||
if(rABS) (reader).readAsBinaryString(f);
|
||||
else reader.readAsArrayBuffer(f);
|
||||
});
|
||||
|
||||
var handle_drag = (function (e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if(e.dataTransfer) e.dataTransfer.dropEffect = 'copy';
|
||||
});
|
||||
|
||||
var drop = (document.getElementById('drop'));
|
||||
if(drop.addEventListener) {
|
||||
drop.addEventListener('dragenter', handle_drag, false);
|
||||
drop.addEventListener('dragover', handle_drag, false);
|
||||
drop.addEventListener('drop', handle_drop, false);
|
||||
}
|
28
demo/work.js
Normal file
28
demo/work.js
Normal file
@ -0,0 +1,28 @@
|
||||
/* js-adler32 (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/*:: declare var ADLER32: ADLER32Module; */
|
||||
/*:: declare var self: DedicatedWorkerGlobalScope; */
|
||||
importScripts('../adler32.js');
|
||||
/*::self.*/postMessage({t:"ready"});
|
||||
|
||||
var readler = function(f, adler, l) {
|
||||
/*::self.*/postMessage({t:"iter", f:f, adler:adler, l:l, sz:f.size});
|
||||
if(l >= f.size) return /*::self.*/postMessage({t:"done"});
|
||||
var sz = 0x100000; if(l + sz > f.size) sz = f.size - l;
|
||||
var d = f.slice(l, l + sz);
|
||||
var r = new FileReader();
|
||||
r.onload = function(e) {
|
||||
var b = new Uint8Array((e.target/*:any*/).result);
|
||||
var newadler = ADLER32.buf(b, adler);
|
||||
/*::self.*/postMessage({t:"data", adler:newadler, bytes:l+sz});
|
||||
readler(f, newadler, l + sz);
|
||||
};
|
||||
r.readAsArrayBuffer(d);
|
||||
};
|
||||
|
||||
onmessage = function (oEvent) {
|
||||
/*::self.*/postMessage({t:"start"});
|
||||
var f/*:File*/ = oEvent.data;
|
||||
var seed = 1;
|
||||
readler(f, seed, 0);
|
||||
};
|
||||
|
69
demo/worker.flow.js
Normal file
69
demo/worker.flow.js
Normal file
@ -0,0 +1,69 @@
|
||||
/*jshint browser:true */
|
||||
|
||||
function lpad(s/*:string*/, len/*:number*/, chr/*:?string*/)/*:string*/{
|
||||
var L/*:number*/ = len - s.length, C/*:string*/ = chr || " ";
|
||||
if(L <= 0) return s;
|
||||
return new Array(L+1).join(C) + s;
|
||||
}
|
||||
|
||||
function is_defined(val/*:any*/, keys/*:Array<string>*/)/*:boolean*/ {
|
||||
if(typeof val === "undefined") return false;
|
||||
return keys.length === 0 || is_defined(val[keys[0]], keys.slice(1));
|
||||
}
|
||||
|
||||
/*## Process Result */
|
||||
/*:: declare class HTMLPreElement extends HTMLElement { innerText?:string; } */
|
||||
function process_value(val/*:ADLER32Type*/, progress/*:number*/) {
|
||||
var output = [];
|
||||
output[0] = "Progress : %" + lpad(progress.toFixed(2), 6, " ");
|
||||
output[1] = "Signed : " + val;
|
||||
output[2] = "Unsigned : " + (val>>>0);
|
||||
output[3] = "Hex value : " + lpad((val>>>0).toString(16),8,'0');
|
||||
|
||||
var out/*:HTMLPreElement*/ = (document.getElementById('out')/*:any*/);
|
||||
var o = output.join("\n");
|
||||
if(typeof out.innerText == "undefined") out.textContent = o;
|
||||
else out.innerText = o;
|
||||
}
|
||||
|
||||
/*::
|
||||
type WMessage = {
|
||||
t:string;
|
||||
f:File;
|
||||
adler:ADLER32Type;
|
||||
l:number;
|
||||
sz:number;
|
||||
bytes:number;
|
||||
};
|
||||
*/
|
||||
|
||||
/*# Drag and Drop File */
|
||||
var handle_drop/*:EventHandler*/ = (function(e/*:DragEvent*/) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if(!e.dataTransfer) return;
|
||||
var files/*:FileList*/ = e.dataTransfer.files;
|
||||
var f/*:File*/ = files[0];
|
||||
|
||||
var worker = new Worker("demo/work.js");
|
||||
worker.postMessage(f);
|
||||
worker.onmessage = function(M) { var m/*:WMessage*/ = (M.data/*:any*/); switch(m.t) {
|
||||
case 'ready': break;
|
||||
case 'start': break;
|
||||
case 'data': process_value(m.adler, 100 * m.bytes / f.size); break;
|
||||
case 'done': break;
|
||||
} };
|
||||
}/*:any*/);
|
||||
|
||||
var handle_drag/*:EventHandler*/ = (function (e/*:DragEvent*/) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if(e.dataTransfer) e.dataTransfer.dropEffect = 'copy';
|
||||
}/*:any*/);
|
||||
|
||||
var drop/*:HTMLDivElement*/ = (document.getElementById('drop')/*:any*/);
|
||||
if(drop.addEventListener) {
|
||||
drop.addEventListener('dragenter', handle_drag, false);
|
||||
drop.addEventListener('dragover', handle_drag, false);
|
||||
drop.addEventListener('drop', handle_drop, false);
|
||||
}
|
60
index.html
Normal file
60
index.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- adler32.js (C) 2014-present SheetJS http://sheetjs.com -->
|
||||
<!-- vim: set ts=2: -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>JS-ADLER32 Live Demo</title>
|
||||
<style>
|
||||
#drop{
|
||||
border:2px dashed #bbb;
|
||||
-moz-border-radius:5px;
|
||||
-webkit-border-radius:5px;
|
||||
border-radius:5px;
|
||||
padding:25px;
|
||||
text-align:center;
|
||||
font:20pt bold,"Vollkorn";color:#bbb
|
||||
}
|
||||
#rawdata{
|
||||
width:100%;
|
||||
}
|
||||
a { text-decoration: none }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<pre>
|
||||
<b><a href="http://sheetjs.com/bits">SheetJS JS-ADLER32 Live Demo</a></b>
|
||||
(text works back to IE6; drag and drop works back to IE10)
|
||||
(<b>This demo loads the entire file at once!</b> For newer browsers, <a href="large.html">try the large file demo</a>)
|
||||
|
||||
<a href="https://github.com/SheetJS/js-adler32">Source Code Repo</a>
|
||||
<a href="https://github.com/SheetJS/js-adler32/issues">Issues? Something look weird? Click here and report an issue</a>
|
||||
<br />
|
||||
<div id="drop">Drop a text file to compute the ADLER-32 checksum</div>
|
||||
<input type="file" name="xlfile" id="xlf" /> ... or click here to select a file
|
||||
|
||||
<textarea id="rawdata">... or paste text here</textarea>
|
||||
<input type="button" id="dotext" value="Click here to process the text"/><br />
|
||||
<b>Advanced Demo Options:</b>
|
||||
Use readAsBinaryString: (when available) <input type="checkbox" name="userabs" checked><br />
|
||||
</pre>
|
||||
<pre id="out"></pre>
|
||||
<br />
|
||||
<script type="text/javascript">/* jshint browser: true */</script>
|
||||
<script src="shim.js"></script>
|
||||
<script src="adler32.js"></script>
|
||||
<script src="demo/browser.flow.js"></script>
|
||||
<script type="text/javascript">
|
||||
/*eslint-env browser */
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-36810333-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
52
large.html
Normal file
52
large.html
Normal file
@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- adler32.js (C) 2014-present SheetJS http://sheetjs.com -->
|
||||
<!-- vim: set ts=2: -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>JS-ADLER32 Live Demo</title>
|
||||
<style>
|
||||
#drop{
|
||||
border:2px dashed #bbb;
|
||||
-moz-border-radius:5px;
|
||||
-webkit-border-radius:5px;
|
||||
border-radius:5px;
|
||||
padding:25px;
|
||||
text-align:center;
|
||||
font:20pt bold,"Vollkorn";color:#bbb
|
||||
}
|
||||
#rawdata{
|
||||
width:100%;
|
||||
}
|
||||
a { text-decoration: none }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<pre>
|
||||
<b><a href="http://sheetjs.com/bits">SheetJS JS-ADLER32 Live Demo</a></b>
|
||||
(text works back to IE6; drag and drop works back to IE10)
|
||||
|
||||
<a href="https://github.com/SheetJS/js-adler32">Source Code Repo</a>
|
||||
<a href="https://github.com/SheetJS/js-adler32/issues">Issues? Something look weird? Click here and report an issue</a>
|
||||
<br />
|
||||
<div id="drop">Drop a text file to compute the ADLER-32 checksum</div>
|
||||
|
||||
<pre id="out"></pre>
|
||||
<br />
|
||||
<script type="text/javascript">/* jshint browser: true */</script>
|
||||
<script src="shim.js"></script>
|
||||
<script src="adler32.js"></script>
|
||||
<script src="demo/worker.flow.js"></script>
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-36810333-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
16
misc/bits.js
16
misc/bits.js
@ -1,10 +1,22 @@
|
||||
var o = "foo bar baz٪☃🍣";
|
||||
var m = "foobar"; for(var i = 0; i != 11; ++i) m+=m;
|
||||
var m1 = m + m, m2 = m1 + m1, m3 = m2 + m2, m4 = m3 + m3;
|
||||
var M1 = m + "𝑹" + m, M2 = M1 + "𝐀" + M1, M3 = M2 + "𝓜" + M2, M4 = M3 + "𝙖" + M3;
|
||||
var bits = [
|
||||
[ "Wikipedia", 300286872, 1 ],
|
||||
[ "foo bar baz", 398066679, 1 ],
|
||||
[ "foo bar baz٪", 570688890 ],
|
||||
[ "foo bar baz٪☃", 919275383],
|
||||
[ "foo bar baz٪☃🍣", 1543572022],
|
||||
[ "foo bar baz٪☃", 919275383 ],
|
||||
[ m, -747910882, 1 ],
|
||||
[ m1, 1286443594, 1],
|
||||
[ m2, 812328098, 1 ],
|
||||
[ m3, -1124316861, 1 ],
|
||||
[ m4, -357657979, 1 ],
|
||||
[ M1, -792947423 ],
|
||||
[ M2, -1841877779 ],
|
||||
[ M3, 869751957 ],
|
||||
[ M4, -1344947227 ],
|
||||
[ o, 1543572022 ],
|
||||
[ o+o, -2076896149 ],
|
||||
[ o+o+o, 2023497376 ]
|
||||
];
|
||||
|
8
misc/flow.js
Normal file
8
misc/flow.js
Normal file
@ -0,0 +1,8 @@
|
||||
/*::
|
||||
declare class ADLER32Module {
|
||||
bstr(s:string, seed?:ADLER32Type):ADLER32Type;
|
||||
buf(b:ABuf, seed?:ADLER32Type):ADLER32Type;
|
||||
str(s:string, seed?:ADLER32Type):ADLER32Type;
|
||||
version:string;
|
||||
};
|
||||
*/
|
12
misc/flowdeps.js
Normal file
12
misc/flowdeps.js
Normal file
@ -0,0 +1,12 @@
|
||||
/*::
|
||||
type _CB = {(data:Buffer):void;};
|
||||
declare module 'concat-stream' {declare function exports(f:_CB):stream$Duplex;};
|
||||
declare module 'exit-on-epipe' {};
|
||||
|
||||
declare module 'adler-32' { declare module.exports:ADLER32Module; };
|
||||
declare module '../' { declare module.exports:ADLER32Module; };
|
||||
|
||||
declare module 'printj' {
|
||||
declare function sprintf(fmt:string, ...args:any):string;
|
||||
};
|
||||
*/
|
42
misc/help.sh
Executable file
42
misc/help.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
# make_help.sh -- process listing of targets and special items in Makefile
|
||||
# Copyright (C) 2016-present SheetJS
|
||||
#
|
||||
# usage in makefile: pipe the output of the following command:
|
||||
# @grep -hE '(^[a-zA-Z_-][ a-zA-Z_-]*:.*?|^#[#*])' $(MAKEFILE_LIST)
|
||||
#
|
||||
# lines starting with "## " are treated as subtitles
|
||||
# lines starting with "#* " are treated as plaintext comments
|
||||
# multiple targets with "## " after the ":" are rendered as separate targets
|
||||
# if the presumed default target is labeled, it will be assigned a unique color
|
||||
|
||||
awk '
|
||||
BEGIN{recipes=0;}
|
||||
!/#[#*] .*$/ {next;}
|
||||
{multi=0; isrecipe=0;}
|
||||
/^[^#]*:/ {isrecipe=1; ++recipes;}
|
||||
/^[^ :]* .*:/ {multi=1}
|
||||
multi==0 && isrecipe>0 { if(recipes > 1) print; else print $0, "[default]"; next}
|
||||
isrecipe == 0 {print; next}
|
||||
multi>0 {
|
||||
k=split($0, msg, "##"); m=split($0, a, ":"); n=split(a[1], b, " ");
|
||||
for(i=1; i<=n; ++i) print b[i] ":", "##" msg[2], (recipes==1 && i==1 ? "[default]" : "")
|
||||
}
|
||||
END {}
|
||||
' | if [[ -t 1 ]]; then
|
||||
awk '
|
||||
BEGIN {FS = ":.*?## "}
|
||||
{color=36}
|
||||
/\[default\]/ {color=35}
|
||||
NF==1 && /^##/ {color=34}
|
||||
NF==1 && /^#\*/ {color=20; $1 = substr($1, 4)}
|
||||
{printf "\033[" color "m%-20s\033[0m %s\n", $1, $2;}
|
||||
END{}' -
|
||||
else
|
||||
awk '
|
||||
BEGIN {FS = ":.*?## "}
|
||||
/^#\* / {$1 = substr($1, 4)}
|
||||
{printf "%-20s %s\n", $1, $2;}
|
||||
END{}' -
|
||||
fi
|
||||
|
48
misc/make_baseline.sh
Executable file
48
misc/make_baseline.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# make_baseline.sh -- generate baselines for tests
|
||||
# Copyright (C) 2016-present SheetJS
|
||||
OUTD=../test_files
|
||||
CATURL=https://mathias.html5.org/data/unicode/8.0.0/categories/
|
||||
CATF=$OUTD/uccat.txt
|
||||
|
||||
ECHORED() { echo -ne '\x1B[0;31m'; echo -n "$1"; echo -ne '\x1B[0m'; echo; }
|
||||
|
||||
if [[ "$1" == "clean" ]]; then
|
||||
if [ ! -d test_files ]; then cd ..; fi
|
||||
if [ -d test_files ]; then cd test_files; fi
|
||||
rm -f uccat.txt baseline.*.txt uctable.*.js uctable_*.py
|
||||
exit
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2164
|
||||
if [ -d misc ]; then cd misc; fi
|
||||
mkdir -p $OUTD
|
||||
if [ ! -e $CATF ]; then curl "$CATURL" | grep "code-points" | sed 's/.*="//g;s/-.*//g' > $CATF; fi
|
||||
|
||||
while read -r line; do
|
||||
JSF=uctable.${line}.js
|
||||
PYF=uctable_${line}.py
|
||||
BLF=baseline.${line}.txt
|
||||
JSURL="https://mathias.html5.org/data/unicode/format?version=8.0.0&category=${line}&type=symbols&prepend=var+unicode%20%3D%20&append=%3Bif(typeof%20module%20!%3D%3D%20'undefined')%20module.exports%20%3D%20unicode%3B"
|
||||
if [[ ! -e $OUTD/$JSF || ! -e $OUTD/$PYF || ! -e $OUTD/$BLF ]]; then
|
||||
ECHORED "Processing ${line}"
|
||||
for i in $JSF $PYF $BLF; do if [[ ! -e $i && -e $OUTD/$i ]]; then mv $OUTD/"$i" .; fi done
|
||||
if [ ! -e "$JSF" ]; then
|
||||
rm -f "$PYF" "$BLF" "${PYF}c"
|
||||
echo "Downloading JS"
|
||||
</dev/null curl -o "$JSF" "$JSURL"
|
||||
fi
|
||||
if [ ! -e "$PYF" ]; then
|
||||
echo "Building Python script"
|
||||
rm -f "$BLF" "${PYF}c"
|
||||
</dev/null node make_unicode.njs "${line}" | sed 's/\[ \[/uctable = \[ \[/' > "$PYF"
|
||||
fi
|
||||
if [ ! -e "$BLF" ]; then
|
||||
echo "Building Baseline text"
|
||||
python make_unicode_adler.py "${line}" > "baseline.${line}.txt"
|
||||
fi
|
||||
for i in $JSF $PYF $BLF; do if [ -e "$i" ]; then mv "$i" $OUTD/; fi; done
|
||||
rm -f "uctable_${line}.pyc"
|
||||
fi
|
||||
done < $CATF
|
||||
|
14
misc/make_unicode.njs
Normal file
14
misc/make_unicode.njs
Normal file
@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env node
|
||||
/* make_unicode.njs -- generate baselines for tests
|
||||
* Copyright (C) 2016-present SheetJS
|
||||
* vim: set ft=javascript: */
|
||||
|
||||
var argv = process.argv.slice(2);
|
||||
var enc = require('codepage').utils.encode;
|
||||
function arr(x) { return [].slice.call(enc(65001, x)); }
|
||||
var o = require('./uctable.' + argv[0]).map(arr);
|
||||
|
||||
/* node 6 changed default behavior for arrays */
|
||||
if(+process.version.replace(/v(\d)+\..*/,"$1") >= 6) o = require("util").inspect(o, {maxArrayLength: null});
|
||||
|
||||
console.log(o);
|
19
misc/make_unicode_adler.py
Normal file
19
misc/make_unicode_adler.py
Normal file
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env python
|
||||
# make_unicode_adler.py -- generate baselines for tests
|
||||
# Copyright (C) 2016-present SheetJS
|
||||
|
||||
from zlib import adler32
|
||||
from array import array
|
||||
from sys import argv, stderr, exit
|
||||
from importlib import import_module
|
||||
|
||||
args = argv[1:]
|
||||
|
||||
if len(args) < 1:
|
||||
print >>stderr, "usage: " + argv[0] + " <category>"
|
||||
exit(1)
|
||||
|
||||
uctable = import_module("uctable_" + args[0]).uctable
|
||||
|
||||
for z in uctable:
|
||||
print adler32(array('B', z));
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
# spin.sh -- show a spinner (for coverage test)
|
||||
# Copyright (C) 2014 SheetJS
|
||||
# Copyright (C) 2014-present SheetJS
|
||||
|
||||
wpid=$1
|
||||
delay=1
|
||||
|
25
package.json
25
package.json
@ -1,27 +1,34 @@
|
||||
{
|
||||
"name": "adler-32",
|
||||
"version": "0.2.1",
|
||||
"version": "1.3.1",
|
||||
"author": "sheetjs",
|
||||
"description": "Pure-JS ADLER-32",
|
||||
"keywords": [ "adler32", "checksum" ],
|
||||
"main": "./adler32",
|
||||
"types": "types/index.d.ts",
|
||||
"devDependencies": {
|
||||
"mocha":"",
|
||||
"xlsjs":"",
|
||||
"uglify-js":"",
|
||||
"codepage":""
|
||||
"mocha": "~2.5.3",
|
||||
"blanket": "~1.2.3",
|
||||
"codepage": "~1.10.0",
|
||||
"@sheetjs/uglify-js": "~2.7.3",
|
||||
"@types/node": "^8.0.7",
|
||||
"dtslint": "^0.1.2",
|
||||
"typescript": "2.2.0"
|
||||
},
|
||||
"repository": { "type":"git", "url":"git://github.com/SheetJS/js-adler32.git" },
|
||||
"repository": { "type": "git", "url": "git://github.com/SheetJS/js-adler32.git" },
|
||||
"scripts": {
|
||||
"pretest": "git submodule init && git submodule update",
|
||||
"test": "make test"
|
||||
"test": "make test",
|
||||
"build": "make",
|
||||
"lint": "make fullint",
|
||||
"dtslint": "dtslint types"
|
||||
},
|
||||
"config": {
|
||||
"blanket": {
|
||||
"pattern": "adler32.js"
|
||||
}
|
||||
},
|
||||
"files": ["adler32.js", "LICENSE", "README.md"],
|
||||
"homepage": "http://sheetjs.com/opensource",
|
||||
"files": ["adler32.js", "LICENSE", "README.md", "types/index.d.ts", "types/*.json"],
|
||||
"bugs": { "url": "https://github.com/SheetJS/js-adler32/issues" },
|
||||
"license": "Apache-2.0",
|
||||
"engines": { "node": ">=0.8" }
|
||||
|
2
packages/adler32-cli/.npmignore
Normal file
2
packages/adler32-cli/.npmignore
Normal file
@ -0,0 +1,2 @@
|
||||
*.tgz
|
||||
*.py
|
9
packages/adler32-cli/bin/adler32.njs
Executable file
9
packages/adler32-cli/bin/adler32.njs
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env node
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* eslint-env node */
|
||||
/* vim: set ts=2 ft=javascript: */
|
||||
/*jshint node:true */
|
||||
|
||||
var cli = require('../');
|
||||
|
||||
cli();
|
15
packages/adler32-cli/bin/adler32.py
Executable file
15
packages/adler32-cli/bin/adler32.py
Executable file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env python
|
||||
# adler32.py -- calculate adler32 checksum of data
|
||||
# Copyright (C) 2016-present SheetJS
|
||||
from zlib import adler32
|
||||
from sys import argv, stdin
|
||||
|
||||
args=argv[1:]
|
||||
payload=""
|
||||
if len(args) == 0 or args[0] == "-":
|
||||
payload = stdin.read()
|
||||
else:
|
||||
payload = open(args[0],"rb").read()
|
||||
|
||||
# NOTE: python 2 returns a signed value; python3 is unsigned
|
||||
print adler32(payload)
|
90
packages/adler32-cli/index.js
Normal file
90
packages/adler32-cli/index.js
Normal file
@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env node
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* eslint-env node */
|
||||
/* vim: set ts=2 ft=javascript: */
|
||||
/*jshint node:true */
|
||||
|
||||
var X/*:ADLER32Module*/ = require('adler-32');
|
||||
|
||||
function help()/*:number*/ {
|
||||
[
|
||||
"usage: adler32 [options] [filename]",
|
||||
"",
|
||||
"Options:",
|
||||
" -h, --help output usage information",
|
||||
" -V, --version output the version number",
|
||||
" -S, --seed=<n> use integer seed as starting value (default 1)",
|
||||
" -H, --hex-seed=<h> use hex seed as starting value (default 1)",
|
||||
" -d, --signed print result with format `%d` (default)",
|
||||
" -u, --unsigned print result with format `%u`",
|
||||
" -x, --hex print result with format `%0.8x`",
|
||||
" -X, --HEX print result with format `%0.8X`",
|
||||
" -F, --format=<s> use specified printf format",
|
||||
"",
|
||||
"Set filename = '-' or pipe data into adler32 to read from stdin",
|
||||
"Default output mode is signed (-d)",
|
||||
""
|
||||
].forEach(function (l) { console.log(l); });
|
||||
return 0;
|
||||
}
|
||||
|
||||
function version()/*:number*/ { console.log(X.version); return 0; }
|
||||
|
||||
var fs = require('fs');
|
||||
require('exit-on-epipe');
|
||||
|
||||
function die(msg/*:string*/, ec/*:?number*/)/*:void*/ { console.error(msg); process.exit(ec || 0); }
|
||||
|
||||
function run() {
|
||||
var args/*:Array<string>*/ = process.argv.slice(2);
|
||||
var filename/*:string*/ = "";
|
||||
var fmt/*:string*/ = "";
|
||||
var seed = 1, r = 10;
|
||||
|
||||
for (var i = 0; i < args.length; ++i) {
|
||||
var arg = args[i];
|
||||
if (arg.charCodeAt(0) != 45) { if (filename === "") filename = arg; continue; }
|
||||
var m = arg.indexOf("=") == -1 ? arg : arg.substr(0, arg.indexOf("="));
|
||||
switch (m) {
|
||||
case "-": filename = "-"; break;
|
||||
|
||||
case "--help": case "-h": process.exit(help()); break;
|
||||
case "--version": case "-V": process.exit(version()); break;
|
||||
|
||||
case "--signed": case "-d": fmt = "%d"; break;
|
||||
case "--unsigned": case "-u": fmt = "%u"; break;
|
||||
case "--hex": case "-x": fmt = "%0.8x"; break;
|
||||
case "--HEX": case "-X": fmt = "%0.8X"; break;
|
||||
case "--format": case "-F":
|
||||
fmt = ((m != arg) ? arg.substr(m.length + 1) : args[++i]) || ""; break;
|
||||
|
||||
case "--hex-seed": case "-H": r = 16;
|
||||
/* falls through */
|
||||
case "--seed": case "-S":
|
||||
seed = parseInt((m != arg) ? arg.substr(m.length + 1) : args[++i], r) || 1; break;
|
||||
|
||||
default: die("adler32: unrecognized option `" + arg + "'", 22);
|
||||
}
|
||||
}
|
||||
|
||||
if (!process.stdin.isTTY) filename = filename || "-";
|
||||
if (filename.length === 0) die("adler32: must specify a filename ('-' for stdin)", 1);
|
||||
|
||||
var adler32 = seed;
|
||||
// $FlowIgnore -- Writable is callable but type sig disagrees
|
||||
var writable = require('stream').Writable();
|
||||
writable._write = function (chunk, e, cb) { adler32 = X.buf(chunk, adler32); cb(); };
|
||||
writable._writev = function (chunks, cb) {
|
||||
chunks.forEach(function (c) { adler32 = X.buf(c.chunk, adler32); });
|
||||
cb();
|
||||
};
|
||||
writable.on('finish', function () {
|
||||
console.log(fmt === "" ? adler32 : require("printj").sprintf(fmt, adler32));
|
||||
});
|
||||
|
||||
if (filename === "-") process.stdin.pipe(writable);
|
||||
else if (fs.existsSync(filename)) fs.createReadStream(filename).pipe(writable);
|
||||
else die("adler32: " + filename + ": No such file or directory", 2);
|
||||
}
|
||||
|
||||
module.exports = run;
|
15
packages/adler32-cli/package.json
Normal file
15
packages/adler32-cli/package.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "adler32-cli",
|
||||
"version": "1.0.3",
|
||||
"description": "Command-line interface for adler32",
|
||||
"main": "index.js",
|
||||
"bin": {
|
||||
"adler32-cli": "./bin/adler32.njs"
|
||||
},
|
||||
"author": "Garrett Luu",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"adler-32": "^1.3.0",
|
||||
"printj": "~1.2.2"
|
||||
}
|
||||
}
|
12
perf/bm.js
12
perf/bm.js
@ -1,10 +1,14 @@
|
||||
/* bm.js (C) 2014 SheetJS -- http://sheetjs.com */
|
||||
/* bm.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
var Benchmark = require('benchmark');
|
||||
var c = require('ansi')(process.stdout);
|
||||
|
||||
function test_end() { c.horizontalAbsolute(0).write("✓"); c.write('\n'); }
|
||||
|
||||
function suite_end() { console.log('Fastest is ' + this.filter('fastest').pluck('name')); }
|
||||
function suite_end() {
|
||||
var o = this.filter('fastest');
|
||||
var m = typeof o.pluck === 'undefined' ? o.map('name') : o.pluck('name');
|
||||
console.log('Fastest is ' + m);
|
||||
}
|
||||
|
||||
function test_cycle(e) { c.horizontalAbsolute(0); c.eraseLine(); c.write("→ "+e.target); }
|
||||
|
||||
@ -24,9 +28,9 @@ BM.prototype.run = function() {
|
||||
|
||||
BM.prototype.add = function(msg, test) {
|
||||
this.suites.push([msg, {
|
||||
onCycle: test_cycle,
|
||||
onCycle: test_cycle,
|
||||
onComplete: test_end,
|
||||
defer: false,
|
||||
defer: false,
|
||||
fn: test
|
||||
}]);
|
||||
this.maxlen = Math.max(this.maxlen, msg.length);
|
||||
|
50
perf/bstr.js
50
perf/bstr.js
@ -1,3 +1,6 @@
|
||||
var old = require('adler-32').bstr;
|
||||
var cur = require('../').bstr;
|
||||
|
||||
function sheetjs1(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length;
|
||||
for(var i = 0; i < L;) {
|
||||
@ -10,7 +13,21 @@ function sheetjs1(bstr) {
|
||||
}
|
||||
|
||||
function sheetjs2(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i);
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535))
|
||||
b = (15*(b>>>16)+(b&65535))
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function sheetjs3(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
for(;i<M;i++) {
|
||||
@ -23,8 +40,8 @@ function sheetjs2(bstr) {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function sheetjs3(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
function sheetjs4(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 5552);
|
||||
for(;M>0;--M) {
|
||||
@ -37,28 +54,33 @@ function sheetjs3(bstr) {
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
var w = 6;
|
||||
var foobar = [255,255,255,255,255,255].map(function(x) { return String.fromCharCode(x); }).join("");
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
for(var ff = 0; ff < w; ++ff) foobar += foobar;
|
||||
foobar.charCodeAt(0);
|
||||
var m = 2048;
|
||||
|
||||
var assert = require('assert');
|
||||
var BM = require('./bm');
|
||||
for(var i = 0; i != 14; ++i) {
|
||||
for(var i = 0; i != 6; ++i) foobar += foobar;
|
||||
for(var i = 6; i != 14; ++i) {
|
||||
foobar += foobar;
|
||||
foobar.charCodeAt(0);
|
||||
assert.equal(sheetjs1(foobar), sheetjs3(foobar));
|
||||
assert.equal(sheetjs1(foobar), sheetjs2(foobar));
|
||||
//for(var j = 0; j != 200; ++j) assert.equal(sheetjs2(foobar), sheetjs3(foobar));
|
||||
var suite = new BM('binary string (' + foobar.length + ')');
|
||||
|
||||
var res = old(foobar);
|
||||
assert.equal(res, cur(foobar));
|
||||
assert.equal(res, sheetjs1(foobar));
|
||||
assert.equal(res, sheetjs2(foobar));
|
||||
assert.equal(res, sheetjs3(foobar));
|
||||
assert.equal(res, sheetjs4(foobar));
|
||||
|
||||
var suite = new BM('binary string (' + foobar.length + ')');
|
||||
if(i<3) suite.add('sheetjs 1', function() { for(var j = 0; j != m; ++j) sheetjs1(foobar); });
|
||||
suite.add('sheetjs 2', function() { for(var j = 0; j != m; ++j) sheetjs2(foobar); });
|
||||
suite.add('sheetjs 3', function() { for(var j = 0; j != m; ++j) sheetjs3(foobar); });
|
||||
suite.add('sheetjs 4', function() { for(var j = 0; j != m; ++j) sheetjs4(foobar); });
|
||||
suite.add('last vers', function() { for(var j = 0; j != m; ++j) old(foobar); });
|
||||
suite.add('current v', function() { for(var j = 0; j != m; ++j) cur(foobar); });
|
||||
suite.run();
|
||||
m>>>=1; if(m < 10) m = 10;
|
||||
}
|
||||
|
107
perf/utf8.js
107
perf/utf8.js
@ -1,7 +1,8 @@
|
||||
var table = require('../').table;
|
||||
var old = require('adler-32').str;
|
||||
var cur = require('../').str;
|
||||
|
||||
function sheetjs1(utf8) {
|
||||
var buf = Buffer(utf8);
|
||||
var buf = new Buffer(utf8);
|
||||
var a = 1, b = 0, L = buf.length, M;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3854);
|
||||
@ -12,46 +13,114 @@ function sheetjs1(utf8) {
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
}
|
||||
return b > 32767 ? (((b - 65536) * 65536) | a) : ((b * 65536) | a);
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
function sheetjs2(utf8) {
|
||||
var a = 1, b = 0, L = utf8.length, M, c, d;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
M = Math.min(L-i, 2654);
|
||||
while(M>0) {
|
||||
c = utf8.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; b += a; --M; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
if(c < 0x80) {
|
||||
a += c; b += a; --M;
|
||||
} else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = utf8.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|(c&3); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
}
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
}
|
||||
return b > 32767 ? (((b - 65536) * 65536) | a) : ((b * 65536) | a);
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
function sheetjs3(utf8) {
|
||||
var a = 1, b = 0, L = utf8.length, M, c, d;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = utf8.charCodeAt(i++);
|
||||
if(c < 0x80) {
|
||||
a += c; b += a; --M;
|
||||
} else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = utf8.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
}
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
}
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
function sheetjs4(utf8) {
|
||||
var a = 1, b = 0, L = utf8.length, M, c, d;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
while(M>0) {
|
||||
c = utf8.charCodeAt(i++);
|
||||
if(c < 0x80) {
|
||||
a += c; b += a; --M;
|
||||
} else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = utf8.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
}
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
}
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
var foobar = "foo bar baz٪☃🍣";
|
||||
for(var i = 0; i != 11; ++i) foobar += " " + foobar;
|
||||
var assert = require('assert');
|
||||
sheetjs1(foobar); sheetjs2(foobar);
|
||||
assert.equal(sheetjs1(foobar), sheetjs2(foobar));
|
||||
|
||||
var res = old(foobar);
|
||||
assert.equal(res, cur(foobar));
|
||||
assert.equal(res, sheetjs1(foobar));
|
||||
assert.equal(res, sheetjs2(foobar));
|
||||
assert.equal(res, sheetjs3(foobar));
|
||||
assert.equal(res, sheetjs4(foobar));
|
||||
|
||||
|
||||
var BM = require('./bm');
|
||||
var suite = new BM('unicode string');
|
||||
|
||||
suite.add('sheetjs 1', function() { for(var j = 0; j != 1000; ++j) sheetjs1(foobar); });
|
||||
suite.add('sheetjs 2', function() { for(var j = 0; j != 1000; ++j) sheetjs2(foobar); });
|
||||
suite.add('sheetjs 3', function() { for(var j = 0; j != 1000; ++j) sheetjs3(foobar); });
|
||||
suite.add('sheetjs 4', function() { for(var j = 0; j != 1000; ++j) sheetjs4(foobar); });
|
||||
suite.add('last vers', function() { for(var j = 0; j != 1000; ++j) old(foobar); });
|
||||
suite.add('current v', function() { for(var j = 0; j != 1000; ++j) cur(foobar); });
|
||||
suite.run();
|
||||
|
237
shim.js
Normal file
237
shim.js
Normal file
@ -0,0 +1,237 @@
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
|
||||
if (!Object.keys) {
|
||||
Object.keys = (function () {
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
||||
hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
|
||||
dontEnums = [
|
||||
'toString',
|
||||
'toLocaleString',
|
||||
'valueOf',
|
||||
'hasOwnProperty',
|
||||
'isPrototypeOf',
|
||||
'propertyIsEnumerable',
|
||||
'constructor'
|
||||
],
|
||||
dontEnumsLength = dontEnums.length;
|
||||
|
||||
return function (obj) {
|
||||
if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object');
|
||||
|
||||
var result = [];
|
||||
|
||||
for (var prop in obj) {
|
||||
if (hasOwnProperty.call(obj, prop)) result.push(prop);
|
||||
}
|
||||
|
||||
if (hasDontEnumBug) {
|
||||
for (var i=0; i < dontEnumsLength; i++) {
|
||||
if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
|
||||
if (!Array.prototype.filter)
|
||||
{
|
||||
Array.prototype.filter = function(fun /*, thisp */)
|
||||
{
|
||||
"use strict";
|
||||
|
||||
if (this == null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun != "function")
|
||||
throw new TypeError();
|
||||
|
||||
var res = [];
|
||||
var thisp = arguments[1];
|
||||
for (var i = 0; i < len; i++)
|
||||
{
|
||||
if (i in t)
|
||||
{
|
||||
var val = t[i]; // in case fun mutates this
|
||||
if (fun.call(thisp, val, i, t))
|
||||
res.push(val);
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
|
||||
if (!String.prototype.trim) {
|
||||
String.prototype.trim = function () {
|
||||
return this.replace(/^\s+|\s+$/g, '');
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
|
||||
if (!Array.prototype.forEach)
|
||||
{
|
||||
Array.prototype.forEach = function(fun /*, thisArg */)
|
||||
{
|
||||
"use strict";
|
||||
|
||||
if (this === void 0 || this === null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun !== "function")
|
||||
throw new TypeError();
|
||||
|
||||
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
|
||||
for (var i = 0; i < len; i++)
|
||||
{
|
||||
if (i in t)
|
||||
fun.call(thisArg, t[i], i, t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Production steps of ECMA-262, Edition 5, 15.4.4.19
|
||||
// Reference: http://es5.github.com/#x15.4.4.19
|
||||
if (!Array.prototype.map) {
|
||||
Array.prototype.map = function(callback, thisArg) {
|
||||
|
||||
var T, A, k;
|
||||
|
||||
if (this == null) {
|
||||
throw new TypeError(" this is null or not defined");
|
||||
}
|
||||
|
||||
// 1. Let O be the result of calling ToObject passing the |this| value as the argument.
|
||||
var O = Object(this);
|
||||
|
||||
// 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
|
||||
// 3. Let len be ToUint32(lenValue).
|
||||
var len = O.length >>> 0;
|
||||
|
||||
// 4. If IsCallable(callback) is false, throw a TypeError exception.
|
||||
// See: http://es5.github.com/#x9.11
|
||||
if (typeof callback !== "function") {
|
||||
throw new TypeError(callback + " is not a function");
|
||||
}
|
||||
|
||||
// 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
|
||||
if (thisArg) {
|
||||
T = thisArg;
|
||||
}
|
||||
|
||||
// 6. Let A be a new array created as if by the expression new Array(len) where Array is
|
||||
// the standard built-in constructor with that name and len is the value of len.
|
||||
A = new Array(len);
|
||||
|
||||
// 7. Let k be 0
|
||||
k = 0;
|
||||
|
||||
// 8. Repeat, while k < len
|
||||
while(k < len) {
|
||||
|
||||
var kValue, mappedValue;
|
||||
|
||||
// a. Let Pk be ToString(k).
|
||||
// This is implicit for LHS operands of the in operator
|
||||
// b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
|
||||
// This step can be combined with c
|
||||
// c. If kPresent is true, then
|
||||
if (k in O) {
|
||||
|
||||
// i. Let kValue be the result of calling the Get internal method of O with argument Pk.
|
||||
kValue = O[ k ];
|
||||
|
||||
// ii. Let mappedValue be the result of calling the Call internal method of callback
|
||||
// with T as the this value and argument list containing kValue, k, and O.
|
||||
mappedValue = callback.call(T, kValue, k, O);
|
||||
|
||||
// iii. Call the DefineOwnProperty internal method of A with arguments
|
||||
// Pk, Property Descriptor {Value: mappedValue, : true, Enumerable: true, Configurable: true},
|
||||
// and false.
|
||||
|
||||
// In browsers that support Object.defineProperty, use the following:
|
||||
// Object.defineProperty(A, Pk, { value: mappedValue, writable: true, enumerable: true, configurable: true });
|
||||
|
||||
// For best browser support, use the following:
|
||||
A[ k ] = mappedValue;
|
||||
}
|
||||
// d. Increase k by 1.
|
||||
k++;
|
||||
}
|
||||
|
||||
// 9. return A
|
||||
return A;
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
|
||||
if (!Array.prototype.indexOf) {
|
||||
Array.prototype.indexOf = function (searchElement, fromIndex) {
|
||||
if ( this === undefined || this === null ) {
|
||||
throw new TypeError( '"this" is null or not defined' );
|
||||
}
|
||||
|
||||
var length = this.length >>> 0; // Hack to convert object.length to a UInt32
|
||||
|
||||
fromIndex = +fromIndex || 0;
|
||||
|
||||
if (Math.abs(fromIndex) === Infinity) {
|
||||
fromIndex = 0;
|
||||
}
|
||||
|
||||
if (fromIndex < 0) {
|
||||
fromIndex += length;
|
||||
if (fromIndex < 0) {
|
||||
fromIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (;fromIndex < length; fromIndex++) {
|
||||
if (this[fromIndex] === searchElement) {
|
||||
return fromIndex;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
|
||||
|
||||
if (! Array.isArray) {
|
||||
Array.isArray = function(obj) {
|
||||
return Object.prototype.toString.call(obj) === "[object Array]";
|
||||
};
|
||||
}
|
||||
|
||||
// https://github.com/ttaubert/node-arraybuffer-slice
|
||||
// (c) 2013 Tim Taubert <tim@timtaubert.de>
|
||||
// arraybuffer-slice may be freely distributed under the MIT license.
|
||||
|
||||
"use strict";
|
||||
|
||||
if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {
|
||||
ArrayBuffer.prototype.slice = function (begin, end) {
|
||||
begin = (begin|0) || 0;
|
||||
var num = this.byteLength;
|
||||
end = end === (void 0) ? num : (end|0);
|
||||
|
||||
// Handle negative values.
|
||||
if (begin < 0) begin += num;
|
||||
if (end < 0) end += num;
|
||||
|
||||
if (num === 0 || begin >= num || begin >= end) {
|
||||
return new ArrayBuffer(0);
|
||||
}
|
||||
|
||||
var length = Math.min(num - begin, end - begin);
|
||||
var target = new ArrayBuffer(length);
|
||||
var targetArray = new Uint8Array(target);
|
||||
targetArray.set(new Uint8Array(this, begin, length));
|
||||
return target;
|
||||
};
|
||||
}
|
80
test.js
80
test.js
@ -4,18 +4,86 @@ if(typeof require !== 'undefined') {
|
||||
assert = require('assert');
|
||||
describe('source',function(){it('should load',function(){X=require('./');});});
|
||||
bits = require('./misc/bits.js');
|
||||
fs = require("fs");
|
||||
} else { X = ADLER32; }
|
||||
|
||||
function readlines(f) { return fs.readFileSync(f, "ascii").split("\n"); }
|
||||
|
||||
function msieversion()
|
||||
{
|
||||
if(typeof window == 'undefined') return Infinity;
|
||||
if(typeof window.navigator == 'undefined') return Infinity;
|
||||
var ua = window.navigator.userAgent
|
||||
var msie = ua.indexOf ( "MSIE " )
|
||||
if(msie < 0) return Infinity;
|
||||
return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )));
|
||||
}
|
||||
|
||||
var Buffer_from = function(){};
|
||||
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var nbfs = !Buffer.from;
|
||||
if(!nbfs) try { Buffer.from("foo", "utf8"); } catch(e) { nbfs = true; }
|
||||
Buffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);
|
||||
}
|
||||
|
||||
describe('adler32 bits', function() {
|
||||
bits.forEach(function(i) {
|
||||
var l = i[0].length;
|
||||
var msg = i[0];
|
||||
if(l > 20) i[0].substr(0,5) + "...(" + l + ")..." + i[0].substr(-5);
|
||||
var msg = i[0], l = i[0].length, L = i[1]|0;
|
||||
if(l > 20) msg = i[0].substr(0,5) + "...(" + l + ")..." + i[0].substr(-5);
|
||||
if(l > 100 && msieversion() < 9) return;
|
||||
if(l > 20000 && typeof Buffer === 'undefined') return;
|
||||
it(msg, function() {
|
||||
if(i[2] === 1) assert.equal(X.bstr(i[0]), i[1]|0);
|
||||
if(i[2] === 1) assert.equal(X.bstr(i[0]), L);
|
||||
assert.equal(X.str(i[0]), i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') assert.equal(X.buf(new Buffer(i[0])), i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') assert.equal(X.buf(Buffer_from(i[0])), L);
|
||||
var len = i[0].length, step = len < 20000 ? 1 : len < 50000 ? Math.ceil(len / 20000) : Math.ceil(len / 2000);
|
||||
for(var x = 0; x < len; x += step) {
|
||||
if(i[0].charCodeAt(x) >= 0xD800 && i[0].charCodeAt(x) < 0xE000) continue;
|
||||
if(i[2] === 1) {
|
||||
var bstradl = X.bstr(i[0].substr(x), X.bstr(i[0].substr(0, x)));
|
||||
assert.equal(bstradl, L);
|
||||
}
|
||||
var stradl = X.str(i[0].substr(x), X.str(i[0].substr(0, x)));
|
||||
assert.equal(stradl, i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var buf = Buffer_from(i[0]);
|
||||
var bufadl = X.buf(buf.slice(x), X.buf(buf.slice(0, x)));
|
||||
assert.equal(bufadl, L);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
if(typeof require !== 'undefined') describe("unicode", function() {
|
||||
if(!fs.existsSync("./test_files/uccat.txt")) return;
|
||||
var uccat = readlines("./test_files/uccat.txt");
|
||||
uccat.forEach(function(cat) {
|
||||
it("Category " + cat, function() {
|
||||
if(!fs.existsSync("./test_files/baseline." + cat + ".txt")) return;
|
||||
var corpus = readlines("./test_files/baseline." + cat + ".txt");
|
||||
var uctable = require("./test_files/uctable." + cat + ".js");
|
||||
for(var ucidx = 0; ucidx < uctable.length; ++ucidx) {
|
||||
var c = uctable[ucidx];
|
||||
/* since the baselines are passed via utf8, discard invalid codes */
|
||||
if(c.charCodeAt(0) >= 0xD800 && c.charCodeAt(0) < 0xE000) continue;
|
||||
var cc = corpus[ucidx], dd = X.str(c);
|
||||
assert.equal(dd, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + dd);
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var ee = X.buf(Buffer_from(c, "utf8"));
|
||||
assert.equal(ee, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + ee);
|
||||
var ff = X.bstr(String.fromCharCode.apply(null, Buffer_from(c, "utf8")));
|
||||
assert.equal(ff, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + ff);
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
});
|
||||
if(typeof require !== 'undefined') describe("corpora", function() {
|
||||
require("./test_files/corpus.json").forEach(function(text) {
|
||||
if(!fs.existsSync(text[1])) return;
|
||||
it("should match '" + text[0] + "' (" + text[2] + ")", function() {
|
||||
assert.equal(text[2], X.buf(fs.readFileSync(text[1])));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
993590
test_files/baseline.C.txt
Normal file
993590
test_files/baseline.C.txt
Normal file
File diff suppressed because it is too large
Load Diff
65
test_files/baseline.Cc.txt
Normal file
65
test_files/baseline.Cc.txt
Normal file
@ -0,0 +1,65 @@
|
||||
65537
|
||||
131074
|
||||
196611
|
||||
262148
|
||||
327685
|
||||
393222
|
||||
458759
|
||||
524296
|
||||
589833
|
||||
655370
|
||||
720907
|
||||
786444
|
||||
851981
|
||||
917518
|
||||
983055
|
||||
1048592
|
||||
1114129
|
||||
1179666
|
||||
1245203
|
||||
1310740
|
||||
1376277
|
||||
1441814
|
||||
1507351
|
||||
1572888
|
||||
1638425
|
||||
1703962
|
||||
1769499
|
||||
1835036
|
||||
1900573
|
||||
1966110
|
||||
2031647
|
||||
2097184
|
||||
8388736
|
||||
33947971
|
||||
34013508
|
||||
34079045
|
||||
34144582
|
||||
34210119
|
||||
34275656
|
||||
34341193
|
||||
34406730
|
||||
34472267
|
||||
34537804
|
||||
34603341
|
||||
34668878
|
||||
34734415
|
||||
34799952
|
||||
34865489
|
||||
34931026
|
||||
34996563
|
||||
35062100
|
||||
35127637
|
||||
35193174
|
||||
35258711
|
||||
35324248
|
||||
35389785
|
||||
35455322
|
||||
35520859
|
||||
35586396
|
||||
35651933
|
||||
35717470
|
||||
35783007
|
||||
35848544
|
||||
35914081
|
||||
35979618
|
150
test_files/baseline.Cf.txt
Normal file
150
test_files/baseline.Cf.txt
Normal file
@ -0,0 +1,150 @@
|
||||
36897136
|
||||
36831577
|
||||
36897114
|
||||
36962651
|
||||
37028188
|
||||
37093725
|
||||
37159262
|
||||
38666613
|
||||
39125369
|
||||
38338924
|
||||
74711568
|
||||
70517230
|
||||
70582767
|
||||
70648304
|
||||
70713841
|
||||
70779378
|
||||
72548877
|
||||
72614414
|
||||
72679951
|
||||
72745488
|
||||
72811025
|
||||
72024580
|
||||
72090117
|
||||
72155654
|
||||
72221191
|
||||
72286728
|
||||
72417802
|
||||
72483339
|
||||
72548876
|
||||
72614413
|
||||
72679950
|
||||
72745487
|
||||
72811024
|
||||
72876561
|
||||
72942098
|
||||
73007635
|
||||
84214378
|
||||
84345448
|
||||
84410985
|
||||
84476522
|
||||
121111233
|
||||
127468254
|
||||
127533791
|
||||
127599328
|
||||
127664865
|
||||
123208390
|
||||
123273927
|
||||
123339464
|
||||
123405001
|
||||
123470538
|
||||
123536075
|
||||
123601612
|
||||
123667149
|
||||
120652437
|
||||
122684084
|
||||
122749621
|
||||
122815158
|
||||
122880695
|
||||
122946232
|
||||
123011769
|
||||
123077306
|
||||
123142843
|
||||
123208380
|
||||
123273917
|
||||
123339454
|
||||
123404991
|
||||
123470528
|
||||
123536065
|
||||
123601602
|
||||
123667139
|
||||
123732676
|
||||
123798213
|
||||
123863750
|
||||
123929287
|
||||
123994824
|
||||
124060361
|
||||
124125898
|
||||
124191435
|
||||
124256972
|
||||
124322509
|
||||
124388046
|
||||
124453583
|
||||
124519120
|
||||
124584657
|
||||
124650194
|
||||
124715731
|
||||
120717973
|
||||
120783510
|
||||
120849047
|
||||
120914584
|
||||
120980121
|
||||
121045658
|
||||
121111195
|
||||
121176732
|
||||
121242269
|
||||
121307806
|
||||
121373343
|
||||
121438880
|
||||
121504417
|
||||
121569954
|
||||
121635491
|
||||
121701028
|
||||
121766565
|
||||
121832102
|
||||
121897639
|
||||
121963176
|
||||
122028713
|
||||
122094250
|
||||
122159787
|
||||
122225324
|
||||
122290861
|
||||
122356398
|
||||
122421935
|
||||
122487472
|
||||
122553009
|
||||
122618546
|
||||
122684083
|
||||
122749620
|
||||
122815157
|
||||
122880694
|
||||
122946231
|
||||
123011768
|
||||
123077305
|
||||
123142842
|
||||
123208379
|
||||
123273916
|
||||
123339453
|
||||
123404990
|
||||
123470527
|
||||
123536064
|
||||
123601601
|
||||
123667138
|
||||
123732675
|
||||
123798212
|
||||
123863749
|
||||
123929286
|
||||
123994823
|
||||
124060360
|
||||
124125897
|
||||
124191434
|
||||
124256971
|
||||
124322508
|
||||
124388045
|
||||
124453582
|
||||
124519119
|
||||
124584656
|
||||
124650193
|
||||
124715730
|
||||
124781267
|
||||
124846804
|
853859
test_files/baseline.Cn.txt
Normal file
853859
test_files/baseline.Cn.txt
Normal file
File diff suppressed because it is too large
Load Diff
137468
test_files/baseline.Co.txt
Normal file
137468
test_files/baseline.Co.txt
Normal file
File diff suppressed because it is too large
Load Diff
2048
test_files/baseline.Cs.txt
Normal file
2048
test_files/baseline.Cs.txt
Normal file
File diff suppressed because it is too large
Load Diff
109591
test_files/baseline.L.txt
Normal file
109591
test_files/baseline.L.txt
Normal file
File diff suppressed because it is too large
Load Diff
3646
test_files/baseline.LC.txt
Normal file
3646
test_files/baseline.LC.txt
Normal file
File diff suppressed because it is too large
Load Diff
1984
test_files/baseline.Ll.txt
Normal file
1984
test_files/baseline.Ll.txt
Normal file
File diff suppressed because it is too large
Load Diff
248
test_files/baseline.Lm.txt
Normal file
248
test_files/baseline.Lm.txt
Normal file
@ -0,0 +1,248 @@
|
||||
38142331
|
||||
38207868
|
||||
38273405
|
||||
38338942
|
||||
38404479
|
||||
38470016
|
||||
38535553
|
||||
38601090
|
||||
38666627
|
||||
38732164
|
||||
38797701
|
||||
38863238
|
||||
38928775
|
||||
38994312
|
||||
39059849
|
||||
39125386
|
||||
35127628
|
||||
35193165
|
||||
35520850
|
||||
35586387
|
||||
35651924
|
||||
35717461
|
||||
35782998
|
||||
35848535
|
||||
35914072
|
||||
35979609
|
||||
36045146
|
||||
36110683
|
||||
36176220
|
||||
36241757
|
||||
37224812
|
||||
37290349
|
||||
37355886
|
||||
37421423
|
||||
37486960
|
||||
38011256
|
||||
38142330
|
||||
38797698
|
||||
39190920
|
||||
38076783
|
||||
36962650
|
||||
39649665
|
||||
39715202
|
||||
41157012
|
||||
41222549
|
||||
41550234
|
||||
75301403
|
||||
75956773
|
||||
76218921
|
||||
77464119
|
||||
77267488
|
||||
77529634
|
||||
73925153
|
||||
75170328
|
||||
74121734
|
||||
77660723
|
||||
79692363
|
||||
79757900
|
||||
79823437
|
||||
79888974
|
||||
79954511
|
||||
80020048
|
||||
79299138
|
||||
79364675
|
||||
79430212
|
||||
79495749
|
||||
79561286
|
||||
79626823
|
||||
79692360
|
||||
79757897
|
||||
79823434
|
||||
79888971
|
||||
79954508
|
||||
80020045
|
||||
80085582
|
||||
80151119
|
||||
80216656
|
||||
80282193
|
||||
80347730
|
||||
80413267
|
||||
80478804
|
||||
80544341
|
||||
76546583
|
||||
76612120
|
||||
76677657
|
||||
76743194
|
||||
76808731
|
||||
76874268
|
||||
76939805
|
||||
77005342
|
||||
77070879
|
||||
77136416
|
||||
77201953
|
||||
77267490
|
||||
77333027
|
||||
77398564
|
||||
77464101
|
||||
77529638
|
||||
77595175
|
||||
77660712
|
||||
77726249
|
||||
77791786
|
||||
77857323
|
||||
77922860
|
||||
77988397
|
||||
78053934
|
||||
78119471
|
||||
78185008
|
||||
78250545
|
||||
78316082
|
||||
78381619
|
||||
78447156
|
||||
78512693
|
||||
78578230
|
||||
78643767
|
||||
78709304
|
||||
78774841
|
||||
78840378
|
||||
78905915
|
||||
78971452
|
||||
79036989
|
||||
79102526
|
||||
79168063
|
||||
79233600
|
||||
79299137
|
||||
80216655
|
||||
78447155
|
||||
78512692
|
||||
78578229
|
||||
78643766
|
||||
78709303
|
||||
78774840
|
||||
78840377
|
||||
78905914
|
||||
78971451
|
||||
79036988
|
||||
79102525
|
||||
79168062
|
||||
79233599
|
||||
79299136
|
||||
79364673
|
||||
79430210
|
||||
79495747
|
||||
79561284
|
||||
79626821
|
||||
79692358
|
||||
79757895
|
||||
79823432
|
||||
79888969
|
||||
79954506
|
||||
80020043
|
||||
80085580
|
||||
80151117
|
||||
80216654
|
||||
80282191
|
||||
80347728
|
||||
80413265
|
||||
80478802
|
||||
80544339
|
||||
80609876
|
||||
80675413
|
||||
80740950
|
||||
80806487
|
||||
73138709
|
||||
74056227
|
||||
71107061
|
||||
71172598
|
||||
71238135
|
||||
71303672
|
||||
71369209
|
||||
71434746
|
||||
71500283
|
||||
71565820
|
||||
71631357
|
||||
71696894
|
||||
71762431
|
||||
71827968
|
||||
71893505
|
||||
80151120
|
||||
80216657
|
||||
79823431
|
||||
80216650
|
||||
70320617
|
||||
73204245
|
||||
73269782
|
||||
73335319
|
||||
73400856
|
||||
73466393
|
||||
73859615
|
||||
72155651
|
||||
72221188
|
||||
74318371
|
||||
74383908
|
||||
74449445
|
||||
72745472
|
||||
77529654
|
||||
77595191
|
||||
77660728
|
||||
77726265
|
||||
77791802
|
||||
77857339
|
||||
75301391
|
||||
78774851
|
||||
76612129
|
||||
76677666
|
||||
76546590
|
||||
76612127
|
||||
76677664
|
||||
76743201
|
||||
76808738
|
||||
76874275
|
||||
76939812
|
||||
77005349
|
||||
77070886
|
||||
78316088
|
||||
75825681
|
||||
79102530
|
||||
79168067
|
||||
77464097
|
||||
78971448
|
||||
79888964
|
||||
78905907
|
||||
80347721
|
||||
80413258
|
||||
79102516
|
||||
79168053
|
||||
79233590
|
||||
79299127
|
||||
83493469
|
||||
82444876
|
||||
82510413
|
||||
123732660
|
||||
123798197
|
||||
123863734
|
||||
123929271
|
||||
127206104
|
||||
127271641
|
||||
127337178
|
||||
127402715
|
||||
127468252
|
||||
127533789
|
||||
127599326
|
||||
127664863
|
||||
127730400
|
||||
127795937
|
||||
127861474
|
||||
127927011
|
||||
127992548
|
105697
test_files/baseline.Lo.txt
Normal file
105697
test_files/baseline.Lo.txt
Normal file
File diff suppressed because it is too large
Load Diff
31
test_files/baseline.Lt.txt
Normal file
31
test_files/baseline.Lt.txt
Normal file
@ -0,0 +1,31 @@
|
||||
34931021
|
||||
35127632
|
||||
35324243
|
||||
37880186
|
||||
78250536
|
||||
78316073
|
||||
78381610
|
||||
78447147
|
||||
78512684
|
||||
78578221
|
||||
78643758
|
||||
78709295
|
||||
79299128
|
||||
79364665
|
||||
79430202
|
||||
79495739
|
||||
79561276
|
||||
79626813
|
||||
79692350
|
||||
79757887
|
||||
80347720
|
||||
80413257
|
||||
80478794
|
||||
80544331
|
||||
80609868
|
||||
80675405
|
||||
80740942
|
||||
80806479
|
||||
81658460
|
||||
78643757
|
||||
81789533
|
1631
test_files/baseline.Lu.txt
Normal file
1631
test_files/baseline.Lu.txt
Normal file
File diff suppressed because it is too large
Load Diff
1963
test_files/baseline.M.txt
Normal file
1963
test_files/baseline.M.txt
Normal file
File diff suppressed because it is too large
Load Diff
383
test_files/baseline.Mc.txt
Normal file
383
test_files/baseline.Mc.txt
Normal file
@ -0,0 +1,383 @@
|
||||
74318344
|
||||
77988416
|
||||
78185027
|
||||
78250564
|
||||
74252806
|
||||
74842639
|
||||
74908176
|
||||
74973713
|
||||
75039250
|
||||
75170324
|
||||
75235861
|
||||
74514953
|
||||
74580490
|
||||
78447173
|
||||
78512710
|
||||
74514952
|
||||
74973711
|
||||
75039248
|
||||
75235859
|
||||
75301396
|
||||
76022303
|
||||
74842636
|
||||
78709319
|
||||
78774856
|
||||
74777098
|
||||
75104782
|
||||
78971465
|
||||
79037002
|
||||
75039244
|
||||
75629077
|
||||
75760151
|
||||
75825688
|
||||
75301391
|
||||
75366928
|
||||
79233611
|
||||
75301390
|
||||
75760149
|
||||
75825686
|
||||
76022297
|
||||
76087834
|
||||
76808741
|
||||
79495757
|
||||
79561294
|
||||
75629073
|
||||
75694610
|
||||
75956758
|
||||
76022295
|
||||
76087832
|
||||
76218906
|
||||
76284443
|
||||
76349980
|
||||
77070887
|
||||
75760146
|
||||
75825683
|
||||
75891220
|
||||
75891219
|
||||
75956756
|
||||
76022293
|
||||
76087830
|
||||
76087829
|
||||
76153366
|
||||
80020049
|
||||
76087828
|
||||
76153365
|
||||
76218902
|
||||
76284439
|
||||
76349976
|
||||
76546587
|
||||
76612124
|
||||
76743198
|
||||
76808735
|
||||
77464105
|
||||
77529642
|
||||
76349975
|
||||
76415512
|
||||
80282195
|
||||
80347732
|
||||
76349974
|
||||
76743196
|
||||
76808733
|
||||
76874270
|
||||
77005344
|
||||
77070881
|
||||
77136418
|
||||
77857325
|
||||
76612121
|
||||
76677658
|
||||
77595175
|
||||
77660712
|
||||
77726249
|
||||
78185008
|
||||
78250545
|
||||
78316082
|
||||
78381619
|
||||
78447156
|
||||
78512693
|
||||
78578230
|
||||
78643767
|
||||
79888970
|
||||
79954507
|
||||
81330779
|
||||
81396316
|
||||
81527389
|
||||
72417805
|
||||
72483342
|
||||
72811027
|
||||
73269786
|
||||
73466397
|
||||
73531934
|
||||
71172601
|
||||
71238138
|
||||
71959045
|
||||
72024582
|
||||
72090119
|
||||
72286730
|
||||
72352267
|
||||
72417804
|
||||
72483341
|
||||
72548878
|
||||
72614415
|
||||
72679952
|
||||
70058471
|
||||
70124008
|
||||
70320619
|
||||
70386156
|
||||
70451693
|
||||
70517230
|
||||
70582767
|
||||
70648304
|
||||
70844915
|
||||
71565822
|
||||
71631359
|
||||
71696896
|
||||
77070902
|
||||
77595198
|
||||
77660735
|
||||
73662977
|
||||
73728514
|
||||
73794051
|
||||
73859588
|
||||
73925125
|
||||
73990662
|
||||
74121736
|
||||
74187273
|
||||
76612137
|
||||
76677674
|
||||
76743211
|
||||
76808748
|
||||
77005359
|
||||
77070896
|
||||
77136433
|
||||
77464118
|
||||
77529655
|
||||
77660729
|
||||
77726266
|
||||
77791803
|
||||
77857340
|
||||
77922877
|
||||
77988414
|
||||
76481059
|
||||
76546596
|
||||
76349984
|
||||
76481058
|
||||
77136428
|
||||
77267502
|
||||
77333039
|
||||
77922872
|
||||
77988409
|
||||
78053946
|
||||
78119483
|
||||
78185020
|
||||
78250557
|
||||
75629074
|
||||
78840387
|
||||
79233609
|
||||
79364683
|
||||
79430220
|
||||
79495757
|
||||
75497999
|
||||
75563536
|
||||
75694610
|
||||
75760147
|
||||
75760146
|
||||
77791793
|
||||
78119478
|
||||
78185015
|
||||
78381626
|
||||
78316088
|
||||
78512699
|
||||
78578236
|
||||
78643773
|
||||
78774847
|
||||
79036995
|
||||
79102532
|
||||
78250550
|
||||
78316087
|
||||
78381624
|
||||
78447161
|
||||
78512698
|
||||
78578235
|
||||
78643772
|
||||
78709309
|
||||
79299142
|
||||
79364679
|
||||
78447158
|
||||
79561287
|
||||
79626824
|
||||
73007634
|
||||
73073171
|
||||
77857326
|
||||
77922863
|
||||
78119474
|
||||
75825677
|
||||
75891214
|
||||
79233601
|
||||
79299138
|
||||
79364675
|
||||
79430212
|
||||
79495749
|
||||
79561286
|
||||
79626823
|
||||
79692360
|
||||
79757897
|
||||
79823434
|
||||
79888971
|
||||
79954508
|
||||
75956750
|
||||
76022287
|
||||
76087824
|
||||
76153361
|
||||
77398562
|
||||
77464099
|
||||
76546580
|
||||
79757893
|
||||
79823430
|
||||
80151115
|
||||
80216652
|
||||
80347726
|
||||
80413263
|
||||
80478800
|
||||
76481042
|
||||
79692354
|
||||
79757891
|
||||
79954502
|
||||
80020039
|
||||
77595169
|
||||
80609871
|
||||
80740945
|
||||
79823425
|
||||
80020036
|
||||
80085573
|
||||
80478795
|
||||
79823421
|
||||
79888958
|
||||
80020032
|
||||
80085569
|
||||
80216643
|
||||
80282180
|
||||
80413254
|
||||
116851330
|
||||
116982404
|
||||
117244550
|
||||
120259252
|
||||
120324789
|
||||
120390326
|
||||
120718011
|
||||
120783548
|
||||
120259250
|
||||
117768842
|
||||
120980155
|
||||
121045692
|
||||
121111229
|
||||
121766599
|
||||
117768841
|
||||
120783542
|
||||
120849079
|
||||
120914616
|
||||
121176764
|
||||
121242301
|
||||
121373375
|
||||
120390317
|
||||
120455854
|
||||
120521391
|
||||
118555280
|
||||
118620817
|
||||
122487500
|
||||
122553037
|
||||
118620816
|
||||
118686353
|
||||
118751890
|
||||
118817427
|
||||
119014038
|
||||
119079575
|
||||
119276186
|
||||
119341723
|
||||
119407260
|
||||
120062630
|
||||
120783537
|
||||
120849074
|
||||
122356420
|
||||
122421957
|
||||
122487494
|
||||
122946253
|
||||
123077327
|
||||
123142864
|
||||
123208401
|
||||
123273938
|
||||
119407254
|
||||
122815175
|
||||
122880712
|
||||
122946249
|
||||
123405008
|
||||
123470545
|
||||
123536082
|
||||
123601619
|
||||
123798230
|
||||
123142858
|
||||
123208395
|
||||
123273932
|
||||
123863765
|
||||
123929302
|
||||
124060376
|
||||
123142856
|
||||
123273930
|
||||
123339467
|
||||
123798226
|
||||
122618558
|
||||
122684095
|
||||
123011780
|
||||
126943957
|
||||
127009494
|
||||
127075031
|
||||
127140568
|
||||
127206105
|
||||
127271642
|
||||
127337179
|
||||
127402716
|
||||
127468253
|
||||
127533790
|
||||
127599327
|
||||
127664864
|
||||
127730401
|
||||
127795938
|
||||
127861475
|
||||
127927012
|
||||
127992549
|
||||
128058086
|
||||
128123623
|
||||
128189160
|
||||
128254697
|
||||
128320234
|
||||
128385771
|
||||
128451308
|
||||
128516845
|
||||
128582382
|
||||
128647919
|
||||
128713456
|
||||
128778993
|
||||
128844530
|
||||
128910067
|
||||
128975604
|
||||
129041141
|
||||
129106678
|
||||
129172215
|
||||
129237752
|
||||
129303289
|
||||
129368826
|
||||
129434363
|
||||
129499900
|
||||
129565437
|
||||
129630974
|
||||
129696511
|
||||
129762048
|
||||
129827585
|
||||
129893122
|
||||
122290872
|
||||
122356409
|
||||
122815168
|
||||
122880705
|
||||
122946242
|
||||
123011779
|
||||
123077316
|
||||
123142853
|
13
test_files/baseline.Me.txt
Normal file
13
test_files/baseline.Me.txt
Normal file
@ -0,0 +1,13 @@
|
||||
36569435
|
||||
36634972
|
||||
79168074
|
||||
72090115
|
||||
72155652
|
||||
72221189
|
||||
72286726
|
||||
72417800
|
||||
72483337
|
||||
72548874
|
||||
77791796
|
||||
77857333
|
||||
77922870
|
1567
test_files/baseline.Mn.txt
Normal file
1567
test_files/baseline.Mn.txt
Normal file
File diff suppressed because it is too large
Load Diff
1433
test_files/baseline.N.txt
Normal file
1433
test_files/baseline.N.txt
Normal file
File diff suppressed because it is too large
Load Diff
550
test_files/baseline.Nd.txt
Normal file
550
test_files/baseline.Nd.txt
Normal file
@ -0,0 +1,550 @@
|
||||
3211313
|
||||
3276850
|
||||
3342387
|
||||
3407924
|
||||
3473461
|
||||
3538998
|
||||
3604535
|
||||
3670072
|
||||
3735609
|
||||
3801146
|
||||
39059834
|
||||
39125371
|
||||
39190908
|
||||
39256445
|
||||
39321982
|
||||
39387519
|
||||
39453056
|
||||
39518593
|
||||
39584130
|
||||
39649667
|
||||
40370572
|
||||
40436109
|
||||
40501646
|
||||
40567183
|
||||
40632720
|
||||
40698257
|
||||
40763794
|
||||
40829331
|
||||
40894868
|
||||
40960405
|
||||
37749088
|
||||
37814625
|
||||
37880162
|
||||
37945699
|
||||
38011236
|
||||
38076773
|
||||
38142310
|
||||
38207847
|
||||
38273384
|
||||
38338921
|
||||
76743212
|
||||
76808749
|
||||
76874286
|
||||
76939823
|
||||
77005360
|
||||
77070897
|
||||
77136434
|
||||
77201971
|
||||
77267508
|
||||
77333045
|
||||
77005358
|
||||
77070895
|
||||
77136432
|
||||
77201969
|
||||
77267506
|
||||
77333043
|
||||
77398580
|
||||
77464117
|
||||
77529654
|
||||
77595191
|
||||
77267504
|
||||
77333041
|
||||
77398578
|
||||
77464115
|
||||
77529652
|
||||
77595189
|
||||
77660726
|
||||
77726263
|
||||
77791800
|
||||
77857337
|
||||
77529650
|
||||
77595187
|
||||
77660724
|
||||
77726261
|
||||
77791798
|
||||
77857335
|
||||
77922872
|
||||
77988409
|
||||
78053946
|
||||
78119483
|
||||
77791796
|
||||
77857333
|
||||
77922870
|
||||
77988407
|
||||
78053944
|
||||
78119481
|
||||
78185018
|
||||
78250555
|
||||
78316092
|
||||
78381629
|
||||
78053942
|
||||
78119479
|
||||
78185016
|
||||
78250553
|
||||
78316090
|
||||
78381627
|
||||
78447164
|
||||
78512701
|
||||
78578238
|
||||
78643775
|
||||
78316088
|
||||
78381625
|
||||
78447162
|
||||
78512699
|
||||
78578236
|
||||
78643773
|
||||
78709310
|
||||
78774847
|
||||
78840384
|
||||
78905921
|
||||
78578234
|
||||
78643771
|
||||
78709308
|
||||
78774845
|
||||
78840382
|
||||
78905919
|
||||
78971456
|
||||
79036993
|
||||
79102530
|
||||
79168067
|
||||
78840380
|
||||
78905917
|
||||
78971454
|
||||
79036991
|
||||
79102528
|
||||
79168065
|
||||
79233602
|
||||
79299139
|
||||
79364676
|
||||
79430213
|
||||
79102526
|
||||
79168063
|
||||
79233600
|
||||
79299137
|
||||
79364674
|
||||
79430211
|
||||
79495748
|
||||
79561285
|
||||
79626822
|
||||
79692359
|
||||
77922858
|
||||
77988395
|
||||
78053932
|
||||
78119469
|
||||
78185006
|
||||
78250543
|
||||
78316080
|
||||
78381617
|
||||
78447154
|
||||
78512691
|
||||
78185004
|
||||
78250541
|
||||
78316078
|
||||
78381615
|
||||
78447152
|
||||
78512689
|
||||
78578226
|
||||
78643763
|
||||
78709300
|
||||
78774837
|
||||
79364669
|
||||
79430206
|
||||
79495743
|
||||
79561280
|
||||
79626817
|
||||
79692354
|
||||
79757891
|
||||
79823428
|
||||
79888965
|
||||
79954502
|
||||
69730787
|
||||
69796324
|
||||
69861861
|
||||
69927398
|
||||
69992935
|
||||
70058472
|
||||
70124009
|
||||
70189546
|
||||
70255083
|
||||
70320620
|
||||
70910452
|
||||
70975989
|
||||
71041526
|
||||
71107063
|
||||
71172600
|
||||
71238137
|
||||
71303674
|
||||
71369211
|
||||
71434748
|
||||
71500285
|
||||
75760161
|
||||
75825698
|
||||
75891235
|
||||
75956772
|
||||
76022309
|
||||
76087846
|
||||
76153383
|
||||
76218920
|
||||
76284457
|
||||
76349994
|
||||
74842642
|
||||
74908179
|
||||
74973716
|
||||
75039253
|
||||
75104790
|
||||
75170327
|
||||
75235864
|
||||
75301401
|
||||
75366938
|
||||
75432475
|
||||
74842637
|
||||
74908174
|
||||
74973711
|
||||
75039248
|
||||
75104785
|
||||
75170322
|
||||
75235859
|
||||
75301396
|
||||
75366933
|
||||
75432470
|
||||
75760153
|
||||
75825690
|
||||
75891227
|
||||
75956764
|
||||
76022301
|
||||
76087838
|
||||
76153375
|
||||
76218912
|
||||
76284449
|
||||
76349986
|
||||
75104780
|
||||
75170317
|
||||
75235854
|
||||
75301391
|
||||
75366928
|
||||
75432465
|
||||
75498002
|
||||
75563539
|
||||
75629076
|
||||
75694613
|
||||
76153372
|
||||
76218909
|
||||
76284446
|
||||
76349983
|
||||
76415520
|
||||
76481057
|
||||
76546594
|
||||
76612131
|
||||
76677668
|
||||
76743205
|
||||
76546591
|
||||
76612128
|
||||
76677665
|
||||
76743202
|
||||
76808739
|
||||
76874276
|
||||
76939813
|
||||
77005350
|
||||
77070887
|
||||
77136424
|
||||
78774848
|
||||
78840385
|
||||
78905922
|
||||
78971459
|
||||
79036996
|
||||
79102533
|
||||
79168070
|
||||
79233607
|
||||
79299144
|
||||
79364681
|
||||
76022291
|
||||
76087828
|
||||
76153365
|
||||
76218902
|
||||
76284439
|
||||
76349976
|
||||
76415513
|
||||
76481050
|
||||
76546587
|
||||
76612124
|
||||
77070883
|
||||
77136420
|
||||
77201957
|
||||
77267494
|
||||
77333031
|
||||
77398568
|
||||
77464105
|
||||
77529642
|
||||
77595179
|
||||
77660716
|
||||
76612131
|
||||
76677668
|
||||
76743205
|
||||
76808742
|
||||
76874279
|
||||
76939816
|
||||
77005353
|
||||
77070890
|
||||
77136427
|
||||
77201964
|
||||
77005342
|
||||
77070879
|
||||
77136416
|
||||
77201953
|
||||
77267490
|
||||
77333027
|
||||
77398564
|
||||
77464101
|
||||
77529638
|
||||
77595175
|
||||
76087823
|
||||
76153360
|
||||
76218897
|
||||
76284434
|
||||
76349971
|
||||
76415508
|
||||
76481045
|
||||
76546582
|
||||
76612119
|
||||
76677656
|
||||
77529634
|
||||
77595171
|
||||
77660708
|
||||
77726245
|
||||
77791782
|
||||
77857319
|
||||
77922856
|
||||
77988393
|
||||
78053930
|
||||
78119467
|
||||
79626818
|
||||
79692355
|
||||
79757892
|
||||
79823429
|
||||
79888966
|
||||
79954503
|
||||
80020040
|
||||
80085577
|
||||
80151114
|
||||
80216651
|
||||
77791780
|
||||
77857317
|
||||
77922854
|
||||
77988391
|
||||
78053928
|
||||
78119465
|
||||
78185002
|
||||
78250539
|
||||
78316076
|
||||
78381613
|
||||
80675402
|
||||
80740939
|
||||
80806476
|
||||
80872013
|
||||
80937550
|
||||
81003087
|
||||
81068624
|
||||
81134161
|
||||
81199698
|
||||
81265235
|
||||
81265212
|
||||
81330749
|
||||
81396286
|
||||
81461823
|
||||
81527360
|
||||
81592897
|
||||
81658434
|
||||
81723971
|
||||
81789508
|
||||
81855045
|
||||
121111219
|
||||
121176756
|
||||
121242293
|
||||
121307830
|
||||
121373367
|
||||
121438904
|
||||
121504441
|
||||
121569978
|
||||
121635515
|
||||
121701052
|
||||
119472809
|
||||
119538346
|
||||
119603883
|
||||
119669420
|
||||
119734957
|
||||
119800494
|
||||
119866031
|
||||
119931568
|
||||
119997105
|
||||
120062642
|
||||
120390325
|
||||
120455862
|
||||
120521399
|
||||
120586936
|
||||
120652473
|
||||
120718010
|
||||
120783547
|
||||
120849084
|
||||
120914621
|
||||
120980158
|
||||
120914620
|
||||
120980157
|
||||
121045694
|
||||
121111231
|
||||
121176768
|
||||
121242305
|
||||
121307842
|
||||
121373379
|
||||
121438916
|
||||
121504453
|
||||
118817433
|
||||
118882970
|
||||
118948507
|
||||
119014044
|
||||
119079581
|
||||
119145118
|
||||
119210655
|
||||
119276192
|
||||
119341729
|
||||
119407266
|
||||
121438909
|
||||
121504446
|
||||
121569983
|
||||
121635520
|
||||
121701057
|
||||
121766594
|
||||
121832131
|
||||
121897668
|
||||
121963205
|
||||
122028742
|
||||
120390309
|
||||
120455846
|
||||
120521383
|
||||
120586920
|
||||
120652457
|
||||
120717994
|
||||
120783531
|
||||
120849068
|
||||
120914605
|
||||
120980142
|
||||
121176747
|
||||
121242284
|
||||
121307821
|
||||
121373358
|
||||
121438895
|
||||
121504432
|
||||
121569969
|
||||
121635506
|
||||
121701043
|
||||
121766580
|
||||
120390301
|
||||
120455838
|
||||
120521375
|
||||
120586912
|
||||
120652449
|
||||
120717986
|
||||
120783523
|
||||
120849060
|
||||
120914597
|
||||
120980134
|
||||
123667150
|
||||
123732687
|
||||
123798224
|
||||
123863761
|
||||
123929298
|
||||
123994835
|
||||
124060372
|
||||
124125909
|
||||
124191446
|
||||
124256983
|
||||
123536069
|
||||
123601606
|
||||
123667143
|
||||
123732680
|
||||
123798217
|
||||
123863754
|
||||
123929291
|
||||
123994828
|
||||
124060365
|
||||
124125902
|
||||
125305552
|
||||
125371089
|
||||
125436626
|
||||
125502163
|
||||
125567700
|
||||
125633237
|
||||
125698774
|
||||
125764311
|
||||
125829848
|
||||
125895385
|
||||
124781252
|
||||
124846789
|
||||
124912326
|
||||
124977863
|
||||
125043400
|
||||
125108937
|
||||
125174474
|
||||
125240011
|
||||
125305548
|
||||
125371085
|
||||
124191419
|
||||
124256956
|
||||
124322493
|
||||
124388030
|
||||
124453567
|
||||
124519104
|
||||
124584641
|
||||
124650178
|
||||
124715715
|
||||
124781252
|
||||
124846789
|
||||
124912326
|
||||
124977863
|
||||
125043400
|
||||
125108937
|
||||
125174474
|
||||
125240011
|
||||
125305548
|
||||
125371085
|
||||
125436622
|
||||
125502159
|
||||
125567696
|
||||
125633233
|
||||
125698770
|
||||
125764307
|
||||
125829844
|
||||
125895381
|
||||
125960918
|
||||
126026455
|
||||
126091992
|
||||
126157529
|
||||
126223066
|
||||
126288603
|
||||
126354140
|
||||
126419677
|
||||
126485214
|
||||
126550751
|
||||
126616288
|
||||
126681825
|
||||
126747362
|
||||
126812899
|
||||
126878436
|
||||
126943973
|
||||
127009510
|
||||
127075047
|
||||
127140584
|
||||
127206121
|
||||
127271658
|
||||
127337195
|
||||
127402732
|
236
test_files/baseline.Nl.txt
Normal file
236
test_files/baseline.Nl.txt
Normal file
@ -0,0 +1,236 @@
|
||||
76153387
|
||||
76218924
|
||||
76284461
|
||||
72548872
|
||||
72614409
|
||||
72679946
|
||||
72745483
|
||||
72811020
|
||||
72876557
|
||||
72942094
|
||||
73007631
|
||||
73073168
|
||||
73138705
|
||||
73204242
|
||||
73269779
|
||||
73335316
|
||||
73400853
|
||||
73466390
|
||||
73531927
|
||||
73597464
|
||||
73663001
|
||||
73728538
|
||||
73794075
|
||||
73859612
|
||||
73925149
|
||||
73990686
|
||||
74056223
|
||||
74121760
|
||||
74187297
|
||||
74252834
|
||||
74318371
|
||||
74383908
|
||||
74449445
|
||||
74514982
|
||||
74580519
|
||||
70582761
|
||||
70648298
|
||||
70713835
|
||||
70910446
|
||||
70975983
|
||||
71041520
|
||||
71107057
|
||||
70451691
|
||||
72155653
|
||||
72221190
|
||||
72286727
|
||||
72352264
|
||||
72417801
|
||||
72483338
|
||||
72548875
|
||||
72614412
|
||||
72679949
|
||||
73663004
|
||||
73728541
|
||||
73794078
|
||||
77398572
|
||||
77464109
|
||||
77529646
|
||||
77595183
|
||||
77660720
|
||||
77726257
|
||||
77791794
|
||||
77857331
|
||||
77922868
|
||||
77988405
|
||||
117310086
|
||||
117375623
|
||||
117441160
|
||||
117506697
|
||||
117572234
|
||||
117637771
|
||||
117703308
|
||||
117768845
|
||||
117834382
|
||||
117899919
|
||||
117965456
|
||||
118030993
|
||||
118096530
|
||||
118162067
|
||||
118227604
|
||||
118293141
|
||||
118358678
|
||||
118424215
|
||||
118489752
|
||||
118555289
|
||||
118620826
|
||||
118686363
|
||||
118751900
|
||||
118817437
|
||||
118882974
|
||||
118948511
|
||||
119014048
|
||||
119079585
|
||||
119145122
|
||||
119210659
|
||||
119276196
|
||||
119341733
|
||||
119407270
|
||||
119472807
|
||||
119538344
|
||||
119603881
|
||||
119669418
|
||||
119734955
|
||||
119800492
|
||||
119866029
|
||||
119931566
|
||||
119997103
|
||||
120062640
|
||||
120128177
|
||||
120193714
|
||||
120259251
|
||||
120324788
|
||||
120390325
|
||||
120455862
|
||||
120521399
|
||||
120586936
|
||||
120652473
|
||||
120718010
|
||||
118424207
|
||||
119014040
|
||||
119734945
|
||||
119800482
|
||||
119866019
|
||||
119931556
|
||||
119997093
|
||||
119145107
|
||||
119210644
|
||||
119276181
|
||||
119341718
|
||||
119407255
|
||||
119472792
|
||||
119538329
|
||||
119603866
|
||||
119669403
|
||||
119734940
|
||||
119800477
|
||||
119866014
|
||||
119931551
|
||||
119997088
|
||||
120062625
|
||||
120128162
|
||||
120193699
|
||||
120259236
|
||||
120324773
|
||||
120390310
|
||||
120455847
|
||||
120521384
|
||||
120586921
|
||||
120652458
|
||||
120717995
|
||||
120783532
|
||||
120849069
|
||||
120914606
|
||||
120980143
|
||||
121045680
|
||||
121111217
|
||||
121176754
|
||||
121242291
|
||||
121307828
|
||||
121373365
|
||||
121438902
|
||||
121504439
|
||||
121569976
|
||||
121635513
|
||||
121701050
|
||||
121766587
|
||||
121832124
|
||||
121897661
|
||||
121963198
|
||||
122028735
|
||||
122094272
|
||||
122159809
|
||||
122225346
|
||||
122290883
|
||||
122356420
|
||||
122421957
|
||||
122487494
|
||||
122553031
|
||||
122618568
|
||||
122684105
|
||||
122749642
|
||||
122815179
|
||||
122880716
|
||||
122946253
|
||||
123011790
|
||||
123077327
|
||||
123142864
|
||||
123208401
|
||||
123273938
|
||||
119276180
|
||||
119341717
|
||||
119407254
|
||||
119472791
|
||||
119538328
|
||||
119603865
|
||||
119669402
|
||||
119734939
|
||||
119800476
|
||||
119866013
|
||||
119931550
|
||||
119997087
|
||||
120062624
|
||||
120128161
|
||||
120193698
|
||||
120259235
|
||||
120324772
|
||||
120390309
|
||||
120455846
|
||||
120521383
|
||||
120586920
|
||||
120652457
|
||||
120717994
|
||||
120783531
|
||||
120849068
|
||||
120914605
|
||||
120980142
|
||||
121045679
|
||||
121111216
|
||||
121176753
|
||||
121242290
|
||||
121307827
|
||||
121373364
|
||||
121438901
|
||||
121504438
|
||||
121569975
|
||||
121635512
|
||||
121701049
|
||||
121766586
|
||||
121832123
|
||||
121897660
|
||||
121963197
|
||||
122028734
|
||||
122094271
|
||||
122159808
|
||||
122225345
|
||||
122290882
|
647
test_files/baseline.No.txt
Normal file
647
test_files/baseline.No.txt
Normal file
@ -0,0 +1,647 @@
|
||||
37224821
|
||||
37290358
|
||||
37683580
|
||||
37880191
|
||||
37945728
|
||||
38011265
|
||||
77922876
|
||||
77988413
|
||||
78053950
|
||||
78119487
|
||||
78185024
|
||||
78250561
|
||||
78578240
|
||||
78643777
|
||||
78709314
|
||||
78774851
|
||||
78840388
|
||||
78905925
|
||||
78709312
|
||||
78774849
|
||||
78840386
|
||||
79495754
|
||||
79561291
|
||||
79626828
|
||||
79692365
|
||||
79757902
|
||||
79823439
|
||||
79888976
|
||||
79495750
|
||||
79561287
|
||||
79626824
|
||||
79692361
|
||||
79757898
|
||||
79823435
|
||||
80020039
|
||||
80085576
|
||||
80151113
|
||||
80216650
|
||||
80282187
|
||||
80347724
|
||||
80413261
|
||||
80478798
|
||||
80544335
|
||||
80609872
|
||||
73990680
|
||||
74056217
|
||||
74121754
|
||||
74187291
|
||||
74252828
|
||||
74318365
|
||||
74383902
|
||||
74449439
|
||||
74514976
|
||||
74580513
|
||||
74646050
|
||||
74711587
|
||||
74777124
|
||||
74842661
|
||||
74908198
|
||||
74973735
|
||||
75039272
|
||||
75104809
|
||||
75170346
|
||||
75235883
|
||||
76808753
|
||||
76874290
|
||||
76939827
|
||||
77005364
|
||||
77070901
|
||||
77136438
|
||||
77201975
|
||||
77267512
|
||||
77333049
|
||||
77398586
|
||||
76415523
|
||||
73073172
|
||||
73335320
|
||||
73400857
|
||||
73466394
|
||||
73531931
|
||||
73597468
|
||||
73663005
|
||||
70058469
|
||||
70124006
|
||||
70189543
|
||||
70255080
|
||||
70320617
|
||||
70386154
|
||||
70451691
|
||||
70517228
|
||||
70582765
|
||||
70648302
|
||||
71500280
|
||||
71565817
|
||||
71631354
|
||||
71696891
|
||||
71762428
|
||||
71827965
|
||||
71893502
|
||||
71959039
|
||||
72024576
|
||||
72090113
|
||||
72155650
|
||||
72221187
|
||||
72286724
|
||||
72352261
|
||||
72417798
|
||||
72483335
|
||||
71172594
|
||||
74121748
|
||||
74187285
|
||||
74252822
|
||||
74318359
|
||||
74383896
|
||||
74449433
|
||||
74514970
|
||||
74580507
|
||||
74646044
|
||||
74711581
|
||||
74777118
|
||||
74842655
|
||||
74908192
|
||||
74973729
|
||||
75039266
|
||||
75104803
|
||||
75170340
|
||||
75235877
|
||||
75301414
|
||||
75366951
|
||||
75432488
|
||||
75498025
|
||||
75563562
|
||||
75629099
|
||||
75694636
|
||||
75760173
|
||||
75825710
|
||||
75891247
|
||||
75956784
|
||||
76022321
|
||||
76087858
|
||||
76153395
|
||||
72155637
|
||||
72221174
|
||||
72286711
|
||||
72352248
|
||||
72417785
|
||||
72483322
|
||||
72548859
|
||||
72614396
|
||||
72679933
|
||||
72745470
|
||||
72811007
|
||||
72876544
|
||||
72942081
|
||||
73007618
|
||||
73073155
|
||||
73138692
|
||||
73204229
|
||||
73269766
|
||||
73335303
|
||||
73400840
|
||||
73466377
|
||||
73531914
|
||||
73597451
|
||||
73662988
|
||||
73728525
|
||||
73794062
|
||||
73859599
|
||||
73925136
|
||||
75039264
|
||||
75104801
|
||||
75170338
|
||||
75235875
|
||||
75301412
|
||||
75366949
|
||||
75432486
|
||||
75498023
|
||||
75563560
|
||||
75629097
|
||||
75694634
|
||||
75760171
|
||||
75825708
|
||||
75891245
|
||||
75956782
|
||||
76022319
|
||||
76087856
|
||||
76153393
|
||||
76218930
|
||||
76284467
|
||||
76350004
|
||||
76415541
|
||||
77136438
|
||||
77201975
|
||||
77267512
|
||||
77333049
|
||||
77398586
|
||||
77464123
|
||||
77529660
|
||||
77595197
|
||||
77660734
|
||||
77726271
|
||||
73728513
|
||||
73794050
|
||||
73859587
|
||||
73925124
|
||||
73990661
|
||||
74056198
|
||||
74121735
|
||||
74187272
|
||||
74252809
|
||||
74318346
|
||||
74383883
|
||||
74449420
|
||||
74514957
|
||||
74580494
|
||||
74646031
|
||||
74711568
|
||||
74777105
|
||||
74842642
|
||||
74908179
|
||||
74973716
|
||||
80478803
|
||||
71959036
|
||||
72024573
|
||||
72090110
|
||||
72155647
|
||||
73138700
|
||||
73204237
|
||||
73269774
|
||||
73335311
|
||||
73400848
|
||||
73466385
|
||||
73531922
|
||||
73597459
|
||||
73662996
|
||||
73728533
|
||||
71696885
|
||||
71762422
|
||||
71827959
|
||||
71893496
|
||||
71959033
|
||||
72024570
|
||||
72090107
|
||||
72155644
|
||||
72286718
|
||||
72352255
|
||||
72417792
|
||||
72483329
|
||||
72548866
|
||||
72614403
|
||||
72679940
|
||||
72745477
|
||||
72811014
|
||||
72876551
|
||||
72942088
|
||||
73007625
|
||||
73073162
|
||||
73138699
|
||||
73204236
|
||||
71303662
|
||||
71369199
|
||||
71434736
|
||||
71500273
|
||||
71565810
|
||||
71631347
|
||||
71696884
|
||||
71762421
|
||||
71827958
|
||||
71893495
|
||||
74514975
|
||||
74580512
|
||||
74646049
|
||||
74711586
|
||||
74777123
|
||||
74842660
|
||||
74908197
|
||||
74973734
|
||||
75039271
|
||||
75104808
|
||||
75170345
|
||||
75235882
|
||||
75301419
|
||||
75366956
|
||||
75432493
|
||||
78709307
|
||||
78774844
|
||||
78840381
|
||||
78905918
|
||||
78971455
|
||||
79036992
|
||||
117637772
|
||||
117703309
|
||||
117768846
|
||||
117834383
|
||||
117899920
|
||||
117965457
|
||||
118030994
|
||||
118096531
|
||||
118162068
|
||||
118227605
|
||||
118293142
|
||||
118358679
|
||||
118424216
|
||||
118489753
|
||||
118555290
|
||||
118620827
|
||||
118686364
|
||||
118751901
|
||||
118817438
|
||||
118882975
|
||||
118948512
|
||||
119014049
|
||||
119079586
|
||||
119145123
|
||||
119210660
|
||||
119276197
|
||||
119341734
|
||||
119407271
|
||||
119472808
|
||||
119538345
|
||||
119603882
|
||||
119669419
|
||||
119734956
|
||||
119800493
|
||||
119866030
|
||||
119931567
|
||||
119997104
|
||||
120062641
|
||||
120128178
|
||||
120193715
|
||||
120259252
|
||||
120324789
|
||||
120390326
|
||||
120455863
|
||||
120521400
|
||||
120783547
|
||||
120849084
|
||||
120914621
|
||||
120980158
|
||||
118096529
|
||||
118162066
|
||||
120259245
|
||||
120324782
|
||||
120390319
|
||||
120455856
|
||||
120521393
|
||||
120586930
|
||||
120652467
|
||||
120718004
|
||||
120783541
|
||||
120849078
|
||||
120914615
|
||||
120980152
|
||||
121045689
|
||||
121111226
|
||||
121176763
|
||||
121242300
|
||||
121307837
|
||||
121373374
|
||||
121438911
|
||||
121504448
|
||||
121569985
|
||||
121635522
|
||||
121701059
|
||||
121766596
|
||||
121832133
|
||||
121897670
|
||||
121963207
|
||||
120324781
|
||||
120390318
|
||||
120455855
|
||||
120521392
|
||||
122553018
|
||||
122618555
|
||||
122684092
|
||||
122749629
|
||||
122815166
|
||||
122880703
|
||||
122946240
|
||||
123011777
|
||||
124715739
|
||||
124781276
|
||||
124846813
|
||||
124912350
|
||||
124977887
|
||||
125043424
|
||||
125108961
|
||||
123667146
|
||||
123732683
|
||||
123798220
|
||||
123863757
|
||||
123929294
|
||||
123994831
|
||||
124060368
|
||||
124125905
|
||||
124191442
|
||||
125108959
|
||||
125174496
|
||||
125240033
|
||||
125305570
|
||||
125371107
|
||||
122815163
|
||||
122880700
|
||||
122946237
|
||||
123011774
|
||||
123077311
|
||||
123142848
|
||||
125567715
|
||||
125633252
|
||||
121766568
|
||||
121832105
|
||||
121897642
|
||||
121963179
|
||||
122028716
|
||||
122094253
|
||||
122159790
|
||||
122225327
|
||||
122290864
|
||||
122356401
|
||||
122421938
|
||||
122487475
|
||||
122553012
|
||||
122618549
|
||||
122684086
|
||||
122749623
|
||||
122946234
|
||||
123011771
|
||||
123077308
|
||||
123142845
|
||||
123208382
|
||||
123273919
|
||||
123339456
|
||||
123404993
|
||||
123470530
|
||||
123536067
|
||||
123601604
|
||||
123667141
|
||||
123732678
|
||||
123798215
|
||||
123863752
|
||||
123929289
|
||||
123994826
|
||||
124060363
|
||||
124125900
|
||||
124191437
|
||||
124256974
|
||||
124322511
|
||||
124388048
|
||||
124453585
|
||||
124519122
|
||||
124584659
|
||||
124650196
|
||||
124715733
|
||||
124781270
|
||||
124846807
|
||||
124912344
|
||||
124977881
|
||||
125043418
|
||||
125108955
|
||||
125174492
|
||||
125240029
|
||||
125305566
|
||||
125371103
|
||||
125436640
|
||||
125502177
|
||||
125567714
|
||||
125633251
|
||||
125698788
|
||||
125764325
|
||||
125829862
|
||||
125895399
|
||||
122028714
|
||||
122094251
|
||||
122159788
|
||||
122225325
|
||||
122290862
|
||||
122356399
|
||||
122421936
|
||||
122487473
|
||||
126026471
|
||||
126092008
|
||||
124060360
|
||||
124125897
|
||||
124191434
|
||||
125108951
|
||||
125174488
|
||||
125240025
|
||||
125305562
|
||||
125371099
|
||||
124125894
|
||||
124191431
|
||||
124256968
|
||||
124322505
|
||||
124388042
|
||||
124453579
|
||||
124519116
|
||||
124584653
|
||||
126223078
|
||||
126288615
|
||||
126354152
|
||||
126419689
|
||||
126485226
|
||||
126550763
|
||||
126616300
|
||||
126681837
|
||||
125371096
|
||||
125436633
|
||||
125502170
|
||||
125567707
|
||||
125633244
|
||||
125698781
|
||||
125764318
|
||||
127140590
|
||||
127206127
|
||||
127271664
|
||||
127337201
|
||||
127402738
|
||||
127468275
|
||||
126223066
|
||||
126288603
|
||||
126354140
|
||||
126419677
|
||||
126485214
|
||||
126550751
|
||||
126616288
|
||||
126681825
|
||||
126747362
|
||||
126812899
|
||||
126878436
|
||||
126943973
|
||||
127009510
|
||||
127075047
|
||||
127140584
|
||||
127206121
|
||||
127271658
|
||||
127337195
|
||||
127402732
|
||||
127468269
|
||||
127533806
|
||||
127599343
|
||||
127664880
|
||||
127730417
|
||||
127795954
|
||||
127861491
|
||||
127927028
|
||||
127992565
|
||||
128058102
|
||||
128123639
|
||||
128189176
|
||||
118162069
|
||||
118227606
|
||||
118293143
|
||||
118358680
|
||||
118424217
|
||||
118489754
|
||||
118555291
|
||||
118620828
|
||||
118686365
|
||||
118751902
|
||||
118817439
|
||||
118882976
|
||||
118948513
|
||||
119014050
|
||||
119079587
|
||||
119145124
|
||||
119210661
|
||||
119276198
|
||||
119341735
|
||||
119407272
|
||||
119931562
|
||||
119997099
|
||||
120062636
|
||||
120128173
|
||||
120193710
|
||||
120259247
|
||||
120324784
|
||||
120390321
|
||||
120455858
|
||||
120521395
|
||||
120586932
|
||||
120652469
|
||||
120718006
|
||||
120783543
|
||||
120849080
|
||||
120914617
|
||||
120980154
|
||||
121045691
|
||||
121111228
|
||||
121176765
|
||||
124322520
|
||||
124388057
|
||||
124191439
|
||||
124256976
|
||||
124322513
|
||||
124388050
|
||||
124453587
|
||||
124519124
|
||||
124584661
|
||||
124650198
|
||||
124715735
|
||||
125502159
|
||||
125567696
|
||||
125633233
|
||||
125698770
|
||||
125764307
|
||||
125829844
|
||||
125895381
|
||||
123011771
|
||||
123077308
|
||||
123142845
|
||||
123208382
|
||||
123273919
|
||||
123339456
|
||||
123404993
|
||||
123470530
|
||||
123536067
|
||||
123601604
|
||||
123667141
|
||||
123732678
|
||||
123798215
|
||||
123863752
|
||||
123929289
|
||||
123994826
|
||||
124060363
|
||||
124125900
|
||||
124453561
|
||||
124519098
|
||||
124584635
|
||||
124650172
|
||||
124715709
|
||||
124781246
|
||||
124846783
|
||||
124912320
|
||||
124977857
|
||||
120128148
|
||||
120193685
|
||||
120259222
|
||||
120324759
|
||||
120390296
|
||||
120455833
|
||||
120521370
|
||||
120586907
|
||||
120652444
|
||||
120717981
|
||||
120783518
|
||||
120849055
|
||||
120914592
|
717
test_files/baseline.P.txt
Normal file
717
test_files/baseline.P.txt
Normal file
@ -0,0 +1,717 @@
|
||||
2228258
|
||||
2293795
|
||||
2359332
|
||||
2490406
|
||||
2555943
|
||||
2621480
|
||||
2687017
|
||||
2752554
|
||||
2818091
|
||||
2949165
|
||||
3014702
|
||||
3080239
|
||||
3145776
|
||||
3866683
|
||||
3932220
|
||||
4194368
|
||||
4259905
|
||||
6029404
|
||||
6094941
|
||||
6160478
|
||||
6291552
|
||||
8126588
|
||||
8257662
|
||||
36110692
|
||||
36503914
|
||||
36766062
|
||||
37486969
|
||||
37552506
|
||||
37814654
|
||||
38076802
|
||||
39453068
|
||||
35979606
|
||||
38142320
|
||||
38207857
|
||||
38273394
|
||||
38338931
|
||||
38404468
|
||||
38470005
|
||||
37159264
|
||||
37224801
|
||||
40632725
|
||||
36700504
|
||||
36897115
|
||||
37093726
|
||||
40042891
|
||||
40108428
|
||||
37421410
|
||||
37486947
|
||||
37618021
|
||||
37683558
|
||||
38601076
|
||||
38797687
|
||||
38863224
|
||||
39715204
|
||||
39780741
|
||||
39846278
|
||||
39911815
|
||||
38535536
|
||||
37355869
|
||||
37421406
|
||||
37486943
|
||||
37552480
|
||||
37618017
|
||||
37683554
|
||||
37749091
|
||||
37814628
|
||||
37880165
|
||||
37945702
|
||||
38011239
|
||||
38076776
|
||||
38142313
|
||||
38207850
|
||||
41353623
|
||||
41419160
|
||||
41484697
|
||||
76743217
|
||||
76808754
|
||||
76874291
|
||||
76939828
|
||||
77005365
|
||||
77070902
|
||||
77136439
|
||||
77201976
|
||||
77267513
|
||||
77333050
|
||||
77398587
|
||||
77464124
|
||||
77529661
|
||||
77595198
|
||||
77660735
|
||||
75694624
|
||||
76612138
|
||||
76677675
|
||||
77398582
|
||||
78185020
|
||||
80020044
|
||||
77857321
|
||||
78578228
|
||||
78643765
|
||||
77529633
|
||||
77595170
|
||||
77660707
|
||||
77726244
|
||||
77791781
|
||||
77857318
|
||||
77922855
|
||||
77988392
|
||||
78053929
|
||||
78119466
|
||||
78185003
|
||||
78250540
|
||||
78316077
|
||||
78381614
|
||||
78447151
|
||||
78578225
|
||||
81068631
|
||||
81134168
|
||||
81199705
|
||||
81265242
|
||||
77857316
|
||||
78709296
|
||||
78774833
|
||||
78840370
|
||||
78905907
|
||||
78971444
|
||||
79299129
|
||||
79364666
|
||||
70386157
|
||||
70451694
|
||||
70517231
|
||||
70582768
|
||||
70648305
|
||||
70713842
|
||||
73859616
|
||||
73400847
|
||||
73466384
|
||||
73531921
|
||||
73597458
|
||||
73662995
|
||||
73728532
|
||||
73794069
|
||||
73859606
|
||||
73925143
|
||||
71696882
|
||||
75825704
|
||||
75891241
|
||||
74777111
|
||||
74842648
|
||||
75956776
|
||||
76022313
|
||||
76087850
|
||||
76743219
|
||||
76808756
|
||||
74973717
|
||||
75039254
|
||||
75104791
|
||||
75235865
|
||||
75301402
|
||||
75366939
|
||||
73794050
|
||||
73859587
|
||||
73925124
|
||||
73990661
|
||||
74056198
|
||||
74121735
|
||||
74187272
|
||||
74252809
|
||||
74318346
|
||||
74383883
|
||||
74449420
|
||||
74711563
|
||||
74777100
|
||||
76808744
|
||||
76874281
|
||||
77201964
|
||||
77267501
|
||||
77333038
|
||||
77398575
|
||||
77464112
|
||||
77529649
|
||||
77595186
|
||||
77726260
|
||||
77791797
|
||||
77857334
|
||||
77922871
|
||||
77988408
|
||||
78053945
|
||||
77201961
|
||||
77267498
|
||||
77333035
|
||||
77398572
|
||||
77464109
|
||||
77529646
|
||||
77595183
|
||||
79692365
|
||||
79757902
|
||||
79823439
|
||||
79888976
|
||||
79757901
|
||||
79823438
|
||||
79888975
|
||||
79954512
|
||||
80020049
|
||||
80085585
|
||||
80151122
|
||||
76284437
|
||||
76349974
|
||||
76415511
|
||||
76481048
|
||||
76546585
|
||||
76612122
|
||||
76677659
|
||||
76743196
|
||||
77529640
|
||||
70844915
|
||||
70910452
|
||||
70975989
|
||||
71041526
|
||||
71107063
|
||||
71172600
|
||||
71238137
|
||||
71303674
|
||||
71369211
|
||||
71434748
|
||||
71500285
|
||||
71565822
|
||||
71631359
|
||||
71696896
|
||||
71762433
|
||||
71827970
|
||||
71893507
|
||||
71959044
|
||||
72024581
|
||||
72090118
|
||||
72155655
|
||||
72221192
|
||||
72286729
|
||||
72352266
|
||||
72942099
|
||||
73007636
|
||||
73073173
|
||||
73138710
|
||||
73204247
|
||||
73269784
|
||||
73335321
|
||||
73400858
|
||||
73466395
|
||||
73531932
|
||||
73597469
|
||||
73663006
|
||||
73728543
|
||||
73794080
|
||||
73859617
|
||||
73925154
|
||||
69927396
|
||||
69992933
|
||||
70058470
|
||||
70124007
|
||||
70255081
|
||||
70320618
|
||||
70386155
|
||||
70451692
|
||||
70517229
|
||||
70582766
|
||||
70648303
|
||||
70713840
|
||||
70779377
|
||||
70844914
|
||||
70910451
|
||||
70975988
|
||||
71041525
|
||||
71172599
|
||||
71238136
|
||||
71303673
|
||||
71369210
|
||||
71434747
|
||||
71500284
|
||||
71565821
|
||||
71631358
|
||||
71696895
|
||||
71762432
|
||||
71827969
|
||||
71893506
|
||||
73925153
|
||||
73990690
|
||||
70910450
|
||||
70975987
|
||||
71893495
|
||||
71959032
|
||||
72024569
|
||||
72090106
|
||||
74056216
|
||||
74121753
|
||||
76218920
|
||||
76284457
|
||||
76349994
|
||||
76415531
|
||||
76481068
|
||||
76546605
|
||||
76612142
|
||||
76677679
|
||||
76743216
|
||||
76808753
|
||||
76874290
|
||||
76939827
|
||||
77005364
|
||||
77070901
|
||||
74187271
|
||||
74252808
|
||||
76349992
|
||||
76415529
|
||||
76481066
|
||||
76546603
|
||||
76612140
|
||||
76677677
|
||||
76743214
|
||||
76808751
|
||||
76874288
|
||||
76939825
|
||||
74973708
|
||||
75039245
|
||||
75104782
|
||||
75170319
|
||||
75235856
|
||||
75301393
|
||||
75366930
|
||||
75432467
|
||||
75498004
|
||||
75563541
|
||||
75629078
|
||||
75694615
|
||||
75760152
|
||||
75825689
|
||||
75891226
|
||||
75956763
|
||||
76022300
|
||||
76087837
|
||||
76153374
|
||||
76218911
|
||||
76284448
|
||||
76349985
|
||||
76481058
|
||||
76546595
|
||||
76612132
|
||||
76677669
|
||||
78840390
|
||||
78905927
|
||||
80216655
|
||||
80282192
|
||||
80347729
|
||||
80413266
|
||||
80544340
|
||||
80609877
|
||||
79888968
|
||||
77136411
|
||||
77201948
|
||||
77267485
|
||||
77333022
|
||||
77398559
|
||||
77464096
|
||||
77529633
|
||||
77595170
|
||||
77660707
|
||||
77726244
|
||||
77791781
|
||||
77857318
|
||||
77922855
|
||||
77988392
|
||||
78053929
|
||||
78119466
|
||||
78185003
|
||||
78250540
|
||||
78316077
|
||||
78381614
|
||||
78447151
|
||||
78512688
|
||||
78578225
|
||||
78643762
|
||||
78709299
|
||||
78774836
|
||||
78840373
|
||||
78905910
|
||||
78971447
|
||||
79036984
|
||||
79102521
|
||||
79168058
|
||||
79233595
|
||||
79299132
|
||||
79364669
|
||||
79430206
|
||||
79495743
|
||||
79561280
|
||||
79626817
|
||||
79692354
|
||||
79757891
|
||||
79823428
|
||||
79888965
|
||||
79954502
|
||||
80020039
|
||||
80085576
|
||||
80151113
|
||||
80282187
|
||||
80347724
|
||||
80413261
|
||||
80478798
|
||||
80544335
|
||||
80609872
|
||||
80675409
|
||||
80740946
|
||||
80806483
|
||||
80872020
|
||||
80937557
|
||||
81003094
|
||||
81068631
|
||||
81134168
|
||||
81199705
|
||||
81265242
|
||||
77267484
|
||||
77333021
|
||||
77398558
|
||||
70058469
|
||||
70124006
|
||||
70189543
|
||||
70517228
|
||||
70582765
|
||||
70648302
|
||||
70713839
|
||||
70779376
|
||||
70844913
|
||||
70910450
|
||||
70975987
|
||||
71041524
|
||||
71107061
|
||||
71303672
|
||||
71369209
|
||||
71434746
|
||||
71500283
|
||||
71565820
|
||||
71631357
|
||||
71696894
|
||||
71762431
|
||||
71827968
|
||||
71893505
|
||||
71959042
|
||||
72024579
|
||||
73138708
|
||||
73990689
|
||||
72352262
|
||||
74252834
|
||||
77922876
|
||||
77988413
|
||||
75366928
|
||||
75432465
|
||||
75498002
|
||||
77988407
|
||||
78709314
|
||||
78185016
|
||||
78250553
|
||||
78316090
|
||||
78381627
|
||||
78447164
|
||||
78512701
|
||||
79102528
|
||||
79168065
|
||||
79233602
|
||||
79299139
|
||||
76874268
|
||||
76939805
|
||||
79626822
|
||||
79692359
|
||||
79757896
|
||||
79888970
|
||||
79102525
|
||||
79168062
|
||||
78250543
|
||||
76546579
|
||||
76612116
|
||||
76677653
|
||||
76743190
|
||||
76808727
|
||||
76874264
|
||||
76939801
|
||||
77005338
|
||||
77070875
|
||||
77136412
|
||||
77201949
|
||||
77267486
|
||||
77333023
|
||||
78447152
|
||||
78512689
|
||||
78578224
|
||||
78643761
|
||||
78709298
|
||||
78774835
|
||||
78971444
|
||||
79036981
|
||||
80151110
|
||||
80216647
|
||||
80347717
|
||||
83231330
|
||||
83296867
|
||||
80740920
|
||||
80806457
|
||||
80871994
|
||||
80937531
|
||||
81003068
|
||||
81068605
|
||||
81134142
|
||||
81199679
|
||||
81265216
|
||||
81330753
|
||||
82838104
|
||||
82903641
|
||||
82969178
|
||||
83034715
|
||||
83100252
|
||||
83165789
|
||||
83231326
|
||||
83296863
|
||||
83362400
|
||||
83427937
|
||||
83493474
|
||||
83559011
|
||||
83624548
|
||||
83690085
|
||||
83755622
|
||||
83821159
|
||||
79823401
|
||||
79888938
|
||||
79954475
|
||||
80020012
|
||||
80085549
|
||||
80151086
|
||||
80216623
|
||||
80282160
|
||||
80347697
|
||||
80413234
|
||||
80478771
|
||||
80544308
|
||||
80609845
|
||||
80675382
|
||||
80740919
|
||||
80806456
|
||||
80871993
|
||||
80937530
|
||||
81003067
|
||||
81134141
|
||||
81199678
|
||||
81265215
|
||||
81330752
|
||||
81396289
|
||||
81461826
|
||||
81527363
|
||||
81592900
|
||||
81658437
|
||||
81723974
|
||||
81789511
|
||||
81855048
|
||||
81920585
|
||||
81986122
|
||||
82117196
|
||||
82444881
|
||||
82575955
|
||||
82641492
|
||||
80282157
|
||||
80347694
|
||||
80413231
|
||||
80544305
|
||||
80609842
|
||||
80675379
|
||||
80740916
|
||||
80806453
|
||||
80871990
|
||||
81003064
|
||||
81068601
|
||||
81134138
|
||||
81199675
|
||||
81920582
|
||||
81986119
|
||||
82248267
|
||||
82313804
|
||||
84083303
|
||||
84148840
|
||||
84214377
|
||||
84345451
|
||||
82117192
|
||||
82248266
|
||||
82379340
|
||||
82444877
|
||||
82510414
|
||||
82575951
|
||||
82641488
|
||||
82707025
|
||||
82772562
|
||||
117179013
|
||||
117244550
|
||||
117310087
|
||||
120521390
|
||||
119669408
|
||||
122487493
|
||||
122487481
|
||||
123404996
|
||||
125502180
|
||||
123077306
|
||||
123142843
|
||||
123208380
|
||||
123273917
|
||||
123339454
|
||||
123404991
|
||||
123470528
|
||||
123536065
|
||||
123601602
|
||||
126157545
|
||||
125436636
|
||||
125502173
|
||||
125567710
|
||||
125633247
|
||||
125698784
|
||||
125764321
|
||||
125829858
|
||||
126157542
|
||||
126223079
|
||||
126288616
|
||||
126354153
|
||||
126419690
|
||||
126485227
|
||||
126550764
|
||||
124322504
|
||||
124388041
|
||||
124453578
|
||||
124519115
|
||||
117441162
|
||||
117506699
|
||||
117572236
|
||||
117637773
|
||||
117703310
|
||||
117768847
|
||||
117834384
|
||||
120980159
|
||||
121045696
|
||||
121176770
|
||||
121242307
|
||||
117244549
|
||||
117310086
|
||||
117506695
|
||||
117572232
|
||||
117637769
|
||||
117703306
|
||||
120914619
|
||||
120980156
|
||||
118096526
|
||||
118162063
|
||||
118227600
|
||||
118293137
|
||||
118358674
|
||||
118620822
|
||||
119538340
|
||||
119669414
|
||||
119734951
|
||||
119800488
|
||||
121569986
|
||||
121635523
|
||||
121701060
|
||||
121766597
|
||||
121832134
|
||||
121897671
|
||||
120849077
|
||||
119734939
|
||||
119931546
|
||||
119997083
|
||||
120062620
|
||||
120128157
|
||||
120193694
|
||||
120259231
|
||||
120324768
|
||||
120390305
|
||||
120455842
|
||||
120521379
|
||||
120586916
|
||||
120652453
|
||||
120717990
|
||||
120783527
|
||||
120849064
|
||||
120914601
|
||||
120980138
|
||||
121045675
|
||||
121111212
|
||||
121176749
|
||||
121242286
|
||||
121307823
|
||||
121373360
|
||||
120193692
|
||||
120259229
|
||||
120324766
|
||||
124453594
|
||||
124519131
|
||||
124584668
|
||||
122421956
|
||||
122487493
|
||||
122553030
|
||||
122618567
|
||||
122684104
|
||||
126223070
|
||||
126288607
|
||||
126943975
|
||||
127206122
|
||||
127271659
|
||||
127337196
|
||||
127402733
|
||||
127468270
|
||||
123994808
|
||||
127402717
|
||||
125174463
|
||||
125240000
|
||||
125305537
|
||||
125371074
|
||||
125436611
|
10
test_files/baseline.Pc.txt
Normal file
10
test_files/baseline.Pc.txt
Normal file
@ -0,0 +1,10 @@
|
||||
6291552
|
||||
73925154
|
||||
69927396
|
||||
71238136
|
||||
83034715
|
||||
83100252
|
||||
80675382
|
||||
80740919
|
||||
80806456
|
||||
84345451
|
24
test_files/baseline.Pd.txt
Normal file
24
test_files/baseline.Pd.txt
Normal file
@ -0,0 +1,24 @@
|
||||
3014702
|
||||
37224801
|
||||
40632725
|
||||
71696882
|
||||
74187272
|
||||
70844915
|
||||
70910452
|
||||
70975989
|
||||
71041526
|
||||
71107063
|
||||
71172600
|
||||
78643762
|
||||
78840373
|
||||
80937557
|
||||
81003094
|
||||
77267484
|
||||
71827968
|
||||
73138708
|
||||
72352262
|
||||
82903641
|
||||
82969178
|
||||
81396289
|
||||
82117196
|
||||
81068601
|
73
test_files/baseline.Pe.txt
Normal file
73
test_files/baseline.Pe.txt
Normal file
@ -0,0 +1,73 @@
|
||||
2752554
|
||||
6160478
|
||||
8257662
|
||||
81134168
|
||||
81265242
|
||||
74842648
|
||||
70320618
|
||||
73990690
|
||||
70975987
|
||||
71959032
|
||||
72090106
|
||||
74121753
|
||||
76284457
|
||||
76415531
|
||||
76546605
|
||||
76677679
|
||||
76808753
|
||||
76939827
|
||||
77070901
|
||||
74252808
|
||||
76415529
|
||||
76546603
|
||||
76677677
|
||||
76808751
|
||||
76939825
|
||||
75039245
|
||||
75170319
|
||||
75301393
|
||||
75432467
|
||||
75563541
|
||||
75694615
|
||||
75825689
|
||||
75956763
|
||||
76087837
|
||||
76218911
|
||||
76349985
|
||||
76546595
|
||||
76677669
|
||||
78905927
|
||||
79430206
|
||||
79561280
|
||||
79692354
|
||||
79823428
|
||||
70582765
|
||||
70713839
|
||||
70844913
|
||||
70975987
|
||||
71107061
|
||||
71369209
|
||||
71500283
|
||||
71631357
|
||||
71762431
|
||||
71959042
|
||||
72024579
|
||||
83231330
|
||||
81265216
|
||||
83231326
|
||||
83362400
|
||||
83493474
|
||||
83624548
|
||||
83755622
|
||||
79823401
|
||||
79954475
|
||||
80085549
|
||||
80347697
|
||||
81527363
|
||||
81658437
|
||||
81789511
|
||||
80806453
|
||||
84214377
|
||||
82248266
|
||||
82444877
|
||||
82641488
|
10
test_files/baseline.Pf.txt
Normal file
10
test_files/baseline.Pf.txt
Normal file
@ -0,0 +1,10 @@
|
||||
37814654
|
||||
71434748
|
||||
71696896
|
||||
73597469
|
||||
77333022
|
||||
77464096
|
||||
77791781
|
||||
77988392
|
||||
79036984
|
||||
79299132
|
12
test_files/baseline.Pi.txt
Normal file
12
test_files/baseline.Pi.txt
Normal file
@ -0,0 +1,12 @@
|
||||
36766062
|
||||
71369211
|
||||
71565822
|
||||
71631359
|
||||
71827970
|
||||
73531932
|
||||
77267485
|
||||
77398559
|
||||
77726244
|
||||
77922855
|
||||
78971447
|
||||
79233595
|
513
test_files/baseline.Po.txt
Normal file
513
test_files/baseline.Po.txt
Normal file
@ -0,0 +1,513 @@
|
||||
2228258
|
||||
2293795
|
||||
2359332
|
||||
2490406
|
||||
2555943
|
||||
2621480
|
||||
2818091
|
||||
2949165
|
||||
3080239
|
||||
3145776
|
||||
3866683
|
||||
3932220
|
||||
4194368
|
||||
4259905
|
||||
6094941
|
||||
36110692
|
||||
36503914
|
||||
37486969
|
||||
37552506
|
||||
38076802
|
||||
39453068
|
||||
35979606
|
||||
38142320
|
||||
38207857
|
||||
38273394
|
||||
38338931
|
||||
38404468
|
||||
38470005
|
||||
37159264
|
||||
36700504
|
||||
36897115
|
||||
37093726
|
||||
40042891
|
||||
40108428
|
||||
37421410
|
||||
37486947
|
||||
37618021
|
||||
37683558
|
||||
38601076
|
||||
38797687
|
||||
38863224
|
||||
39715204
|
||||
39780741
|
||||
39846278
|
||||
39911815
|
||||
38535536
|
||||
37355869
|
||||
37421406
|
||||
37486943
|
||||
37552480
|
||||
37618017
|
||||
37683554
|
||||
37749091
|
||||
37814628
|
||||
37880165
|
||||
37945702
|
||||
38011239
|
||||
38076776
|
||||
38142313
|
||||
38207850
|
||||
41353623
|
||||
41419160
|
||||
41484697
|
||||
76743217
|
||||
76808754
|
||||
76874291
|
||||
76939828
|
||||
77005365
|
||||
77070902
|
||||
77136439
|
||||
77201976
|
||||
77267513
|
||||
77333050
|
||||
77398587
|
||||
77464124
|
||||
77529661
|
||||
77595198
|
||||
77660735
|
||||
75694624
|
||||
76612138
|
||||
76677675
|
||||
77398582
|
||||
78185020
|
||||
80020044
|
||||
77857321
|
||||
78578228
|
||||
78643765
|
||||
77529633
|
||||
77595170
|
||||
77660707
|
||||
77726244
|
||||
77791781
|
||||
77857318
|
||||
77922855
|
||||
77988392
|
||||
78053929
|
||||
78119466
|
||||
78185003
|
||||
78250540
|
||||
78316077
|
||||
78381614
|
||||
78447151
|
||||
78578225
|
||||
77857316
|
||||
78709296
|
||||
78774833
|
||||
78840370
|
||||
78905907
|
||||
78971444
|
||||
79299129
|
||||
79364666
|
||||
70386157
|
||||
70451694
|
||||
70517231
|
||||
70582768
|
||||
70648305
|
||||
70713842
|
||||
73859616
|
||||
73400847
|
||||
73466384
|
||||
73531921
|
||||
73597458
|
||||
73662995
|
||||
73728532
|
||||
73794069
|
||||
73859606
|
||||
73925143
|
||||
75825704
|
||||
75891241
|
||||
75956776
|
||||
76022313
|
||||
76087850
|
||||
76743219
|
||||
76808756
|
||||
74973717
|
||||
75039254
|
||||
75104791
|
||||
75235865
|
||||
75301402
|
||||
75366939
|
||||
73794050
|
||||
73859587
|
||||
73925124
|
||||
73990661
|
||||
74056198
|
||||
74121735
|
||||
74252809
|
||||
74318346
|
||||
74383883
|
||||
74449420
|
||||
74711563
|
||||
74777100
|
||||
76808744
|
||||
76874281
|
||||
77201964
|
||||
77267501
|
||||
77333038
|
||||
77398575
|
||||
77464112
|
||||
77529649
|
||||
77595186
|
||||
77726260
|
||||
77791797
|
||||
77857334
|
||||
77922871
|
||||
77988408
|
||||
78053945
|
||||
77201961
|
||||
77267498
|
||||
77333035
|
||||
77398572
|
||||
77464109
|
||||
77529646
|
||||
77595183
|
||||
79692365
|
||||
79757902
|
||||
79823439
|
||||
79888976
|
||||
79757901
|
||||
79823438
|
||||
79888975
|
||||
79954512
|
||||
80020049
|
||||
80085585
|
||||
80151122
|
||||
76284437
|
||||
76349974
|
||||
76415511
|
||||
76481048
|
||||
76546585
|
||||
76612122
|
||||
76677659
|
||||
76743196
|
||||
77529640
|
||||
71238137
|
||||
71303674
|
||||
71893507
|
||||
71959044
|
||||
72024581
|
||||
72090118
|
||||
72155655
|
||||
72221192
|
||||
72286729
|
||||
72352266
|
||||
72942099
|
||||
73007636
|
||||
73073173
|
||||
73138710
|
||||
73204247
|
||||
73269784
|
||||
73335321
|
||||
73400858
|
||||
73466395
|
||||
73663006
|
||||
73728543
|
||||
73794080
|
||||
73859617
|
||||
69992933
|
||||
70058470
|
||||
70124007
|
||||
70386155
|
||||
70451692
|
||||
70517229
|
||||
70582766
|
||||
70648303
|
||||
70713840
|
||||
70779377
|
||||
70844914
|
||||
70910451
|
||||
70975988
|
||||
71041525
|
||||
71172599
|
||||
71303673
|
||||
71369210
|
||||
71434747
|
||||
71500284
|
||||
71565821
|
||||
71631358
|
||||
71696895
|
||||
71762432
|
||||
71827969
|
||||
71893506
|
||||
80216655
|
||||
80282192
|
||||
80347729
|
||||
80413266
|
||||
80544340
|
||||
80609877
|
||||
79888968
|
||||
77136411
|
||||
77201948
|
||||
77529633
|
||||
77595170
|
||||
77660707
|
||||
77857318
|
||||
78053929
|
||||
78119466
|
||||
78185003
|
||||
78250540
|
||||
78316077
|
||||
78381614
|
||||
78447151
|
||||
78512688
|
||||
78578225
|
||||
78709299
|
||||
78774836
|
||||
78905910
|
||||
79102521
|
||||
79168058
|
||||
79888965
|
||||
79954502
|
||||
80020039
|
||||
80085576
|
||||
80151113
|
||||
80282187
|
||||
80347724
|
||||
80413261
|
||||
80478798
|
||||
80544335
|
||||
80609872
|
||||
80675409
|
||||
80740946
|
||||
80806483
|
||||
80872020
|
||||
81068631
|
||||
81134168
|
||||
81199705
|
||||
81265242
|
||||
77333021
|
||||
70058469
|
||||
70124006
|
||||
70189543
|
||||
73990689
|
||||
74252834
|
||||
77922876
|
||||
77988413
|
||||
75366928
|
||||
75432465
|
||||
75498002
|
||||
77988407
|
||||
78709314
|
||||
78185016
|
||||
78250553
|
||||
78316090
|
||||
78381627
|
||||
78447164
|
||||
78512701
|
||||
79102528
|
||||
79168065
|
||||
79233602
|
||||
79299139
|
||||
76874268
|
||||
76939805
|
||||
79626822
|
||||
79692359
|
||||
79757896
|
||||
79888970
|
||||
79102525
|
||||
79168062
|
||||
78250543
|
||||
76546579
|
||||
76612116
|
||||
76677653
|
||||
76743190
|
||||
76808727
|
||||
76874264
|
||||
76939801
|
||||
77005338
|
||||
77070875
|
||||
77136412
|
||||
77201949
|
||||
77267486
|
||||
77333023
|
||||
78447152
|
||||
78512689
|
||||
78578224
|
||||
78643761
|
||||
78709298
|
||||
78774835
|
||||
78971444
|
||||
79036981
|
||||
80151110
|
||||
80216647
|
||||
80347717
|
||||
80740920
|
||||
80806457
|
||||
80871994
|
||||
80937531
|
||||
81003068
|
||||
81068605
|
||||
81134142
|
||||
81330753
|
||||
82838104
|
||||
80151086
|
||||
80216623
|
||||
80413234
|
||||
80478771
|
||||
80544308
|
||||
80609845
|
||||
80871993
|
||||
80937530
|
||||
81003067
|
||||
81134141
|
||||
81199678
|
||||
81265215
|
||||
81330752
|
||||
81855048
|
||||
81920585
|
||||
81986122
|
||||
82444881
|
||||
82575955
|
||||
82641492
|
||||
80282157
|
||||
80347694
|
||||
80413231
|
||||
80544305
|
||||
80609842
|
||||
80675379
|
||||
80871990
|
||||
81003064
|
||||
81134138
|
||||
81199675
|
||||
81920582
|
||||
81986119
|
||||
82248267
|
||||
82313804
|
||||
84148840
|
||||
82510414
|
||||
82707025
|
||||
82772562
|
||||
117179013
|
||||
117244550
|
||||
117310087
|
||||
120521390
|
||||
119669408
|
||||
122487493
|
||||
122487481
|
||||
123404996
|
||||
125502180
|
||||
123077306
|
||||
123142843
|
||||
123208380
|
||||
123273917
|
||||
123339454
|
||||
123404991
|
||||
123470528
|
||||
123536065
|
||||
123601602
|
||||
126157545
|
||||
125436636
|
||||
125502173
|
||||
125567710
|
||||
125633247
|
||||
125698784
|
||||
125764321
|
||||
125829858
|
||||
126157542
|
||||
126223079
|
||||
126288616
|
||||
126354153
|
||||
126419690
|
||||
126485227
|
||||
126550764
|
||||
124322504
|
||||
124388041
|
||||
124453578
|
||||
124519115
|
||||
117441162
|
||||
117506699
|
||||
117572236
|
||||
117637773
|
||||
117703310
|
||||
117768847
|
||||
117834384
|
||||
120980159
|
||||
121045696
|
||||
121176770
|
||||
121242307
|
||||
117244549
|
||||
117310086
|
||||
117506695
|
||||
117572232
|
||||
117637769
|
||||
117703306
|
||||
120914619
|
||||
120980156
|
||||
118096526
|
||||
118162063
|
||||
118227600
|
||||
118293137
|
||||
118358674
|
||||
118620822
|
||||
119538340
|
||||
119669414
|
||||
119734951
|
||||
119800488
|
||||
121569986
|
||||
121635523
|
||||
121701060
|
||||
121766597
|
||||
121832134
|
||||
121897671
|
||||
120849077
|
||||
119734939
|
||||
119931546
|
||||
119997083
|
||||
120062620
|
||||
120128157
|
||||
120193694
|
||||
120259231
|
||||
120324768
|
||||
120390305
|
||||
120455842
|
||||
120521379
|
||||
120586916
|
||||
120652453
|
||||
120717990
|
||||
120783527
|
||||
120849064
|
||||
120914601
|
||||
120980138
|
||||
121045675
|
||||
121111212
|
||||
121176749
|
||||
121242286
|
||||
121307823
|
||||
121373360
|
||||
120193692
|
||||
120259229
|
||||
120324766
|
||||
124453594
|
||||
124519131
|
||||
124584668
|
||||
122421956
|
||||
122487493
|
||||
122553030
|
||||
122618567
|
||||
122684104
|
||||
126223070
|
||||
126288607
|
||||
126943975
|
||||
127206122
|
||||
127271659
|
||||
127337196
|
||||
127402733
|
||||
127468270
|
||||
123994808
|
||||
127402717
|
||||
125174463
|
||||
125240000
|
||||
125305537
|
||||
125371074
|
||||
125436611
|
75
test_files/baseline.Ps.txt
Normal file
75
test_files/baseline.Ps.txt
Normal file
@ -0,0 +1,75 @@
|
||||
2687017
|
||||
6029404
|
||||
8126588
|
||||
81068631
|
||||
81199705
|
||||
74777111
|
||||
71500285
|
||||
71762433
|
||||
70255081
|
||||
73925153
|
||||
70910450
|
||||
71893495
|
||||
72024569
|
||||
74056216
|
||||
76218920
|
||||
76349994
|
||||
76481068
|
||||
76612142
|
||||
76743216
|
||||
76874290
|
||||
77005364
|
||||
74187271
|
||||
76349992
|
||||
76481066
|
||||
76612140
|
||||
76743214
|
||||
76874288
|
||||
74973708
|
||||
75104782
|
||||
75235856
|
||||
75366930
|
||||
75498004
|
||||
75629078
|
||||
75760152
|
||||
75891226
|
||||
76022300
|
||||
76153374
|
||||
76284448
|
||||
76481058
|
||||
76612132
|
||||
78840390
|
||||
79364669
|
||||
79495743
|
||||
79626817
|
||||
79757891
|
||||
77398558
|
||||
70517228
|
||||
70648302
|
||||
70779376
|
||||
70910450
|
||||
71041524
|
||||
71303672
|
||||
71434746
|
||||
71565820
|
||||
71696894
|
||||
71893505
|
||||
83296867
|
||||
81199679
|
||||
83165789
|
||||
83296863
|
||||
83427937
|
||||
83559011
|
||||
83690085
|
||||
83821159
|
||||
79888938
|
||||
80020012
|
||||
80282160
|
||||
81461826
|
||||
81592900
|
||||
81723974
|
||||
80740916
|
||||
84083303
|
||||
82117192
|
||||
82379340
|
||||
82575951
|
6799
test_files/baseline.S.txt
Normal file
6799
test_files/baseline.S.txt
Normal file
File diff suppressed because it is too large
Load Diff
53
test_files/baseline.Sc.txt
Normal file
53
test_files/baseline.Sc.txt
Normal file
@ -0,0 +1,53 @@
|
||||
2424869
|
||||
36176229
|
||||
36241766
|
||||
36307303
|
||||
36372840
|
||||
37552486
|
||||
37552484
|
||||
77791802
|
||||
77857339
|
||||
78381635
|
||||
78250557
|
||||
79299145
|
||||
80872024
|
||||
75432476
|
||||
72155653
|
||||
72221190
|
||||
72286727
|
||||
72352264
|
||||
72417801
|
||||
72483338
|
||||
72548875
|
||||
72614412
|
||||
72679949
|
||||
72745486
|
||||
72811023
|
||||
72876560
|
||||
72942097
|
||||
73007634
|
||||
73073171
|
||||
73138708
|
||||
73204245
|
||||
73269782
|
||||
73335319
|
||||
73400856
|
||||
73466393
|
||||
73531930
|
||||
73597467
|
||||
73663004
|
||||
73728541
|
||||
73794078
|
||||
73859615
|
||||
73925152
|
||||
73990689
|
||||
74056226
|
||||
74121763
|
||||
79233603
|
||||
83493475
|
||||
82510418
|
||||
80478768
|
||||
82707023
|
||||
82772560
|
||||
83034708
|
||||
83100245
|
121
test_files/baseline.Sk.txt
Normal file
121
test_files/baseline.Sk.txt
Normal file
@ -0,0 +1,121 @@
|
||||
6226015
|
||||
6357089
|
||||
36569451
|
||||
37028210
|
||||
37355895
|
||||
37618043
|
||||
35258702
|
||||
35324239
|
||||
35389776
|
||||
35455313
|
||||
36307294
|
||||
36372831
|
||||
36438368
|
||||
36503905
|
||||
36569442
|
||||
36634979
|
||||
36700516
|
||||
36766053
|
||||
36831590
|
||||
36897127
|
||||
36962664
|
||||
37028201
|
||||
37093738
|
||||
37159275
|
||||
37552497
|
||||
37618034
|
||||
37683571
|
||||
37749108
|
||||
37814645
|
||||
37880182
|
||||
37945719
|
||||
38076793
|
||||
38207867
|
||||
38273404
|
||||
38338941
|
||||
38404478
|
||||
38470015
|
||||
38535552
|
||||
38601089
|
||||
38666626
|
||||
38732163
|
||||
38797700
|
||||
38863237
|
||||
38928774
|
||||
38994311
|
||||
39059848
|
||||
39125385
|
||||
39190922
|
||||
39256459
|
||||
38863235
|
||||
35782995
|
||||
35848532
|
||||
81723997
|
||||
81855071
|
||||
77857313
|
||||
77922850
|
||||
78709294
|
||||
78774831
|
||||
78840368
|
||||
79757886
|
||||
79823423
|
||||
79888960
|
||||
80806478
|
||||
80872015
|
||||
80937552
|
||||
81855070
|
||||
81920607
|
||||
72024577
|
||||
72090114
|
||||
75039239
|
||||
75104776
|
||||
75170313
|
||||
75235850
|
||||
75301387
|
||||
75366924
|
||||
75432461
|
||||
75497998
|
||||
75563535
|
||||
75629072
|
||||
75694609
|
||||
75760146
|
||||
75825683
|
||||
75891220
|
||||
75956757
|
||||
76022294
|
||||
76087831
|
||||
76153368
|
||||
76218905
|
||||
76284442
|
||||
76349979
|
||||
76415516
|
||||
76481053
|
||||
77136423
|
||||
77201960
|
||||
75891218
|
||||
75956755
|
||||
79036979
|
||||
81658448
|
||||
81723985
|
||||
81789522
|
||||
81855059
|
||||
81920596
|
||||
81986133
|
||||
82051670
|
||||
82117207
|
||||
82182744
|
||||
82248281
|
||||
82313818
|
||||
82379355
|
||||
82444892
|
||||
82510429
|
||||
78512671
|
||||
78578208
|
||||
84279914
|
||||
80347693
|
||||
82903634
|
||||
125436634
|
||||
125502171
|
||||
125567708
|
||||
125633245
|
||||
125698782
|
948
test_files/baseline.Sm.txt
Normal file
948
test_files/baseline.Sm.txt
Normal file
@ -0,0 +1,948 @@
|
||||
2883628
|
||||
3997757
|
||||
4063294
|
||||
4128831
|
||||
8192125
|
||||
8323199
|
||||
36831599
|
||||
37159284
|
||||
35586395
|
||||
37683579
|
||||
39190918
|
||||
37224799
|
||||
37290336
|
||||
37355873
|
||||
70189544
|
||||
71107062
|
||||
73728542
|
||||
73794079
|
||||
73859616
|
||||
70713839
|
||||
70779376
|
||||
70844913
|
||||
71893503
|
||||
70451688
|
||||
70517225
|
||||
70582762
|
||||
70648299
|
||||
70713836
|
||||
71172595
|
||||
71631353
|
||||
71696890
|
||||
71762427
|
||||
71827964
|
||||
71893501
|
||||
72286723
|
||||
72352260
|
||||
72679945
|
||||
72876556
|
||||
73073167
|
||||
73597463
|
||||
71631352
|
||||
71696889
|
||||
71893500
|
||||
72024574
|
||||
74121758
|
||||
74187295
|
||||
74252832
|
||||
74318369
|
||||
74383906
|
||||
74449443
|
||||
74514980
|
||||
74580517
|
||||
74646054
|
||||
74711591
|
||||
74777128
|
||||
74842665
|
||||
70844907
|
||||
70910444
|
||||
70975981
|
||||
71041518
|
||||
71107055
|
||||
71172592
|
||||
71238129
|
||||
71303666
|
||||
71369203
|
||||
71434740
|
||||
71500277
|
||||
71565814
|
||||
71631351
|
||||
71696888
|
||||
71762425
|
||||
71827962
|
||||
71893499
|
||||
71959036
|
||||
72024573
|
||||
72090110
|
||||
72155647
|
||||
72221184
|
||||
72286721
|
||||
72352258
|
||||
72417795
|
||||
72483332
|
||||
72548869
|
||||
72614406
|
||||
72679943
|
||||
72745480
|
||||
72811017
|
||||
72876554
|
||||
72942091
|
||||
73007628
|
||||
73073165
|
||||
73138702
|
||||
73204239
|
||||
73269776
|
||||
73335313
|
||||
73400850
|
||||
73466387
|
||||
73531924
|
||||
73597461
|
||||
73662998
|
||||
73728535
|
||||
73794072
|
||||
73859609
|
||||
73925146
|
||||
73990683
|
||||
74056220
|
||||
74121757
|
||||
74187294
|
||||
74252831
|
||||
74318368
|
||||
74383905
|
||||
74449442
|
||||
74514979
|
||||
74580516
|
||||
74646053
|
||||
74711590
|
||||
74777127
|
||||
74842664
|
||||
74908201
|
||||
74973738
|
||||
70975980
|
||||
71041517
|
||||
71107054
|
||||
71172591
|
||||
71238128
|
||||
71303665
|
||||
71369202
|
||||
71434739
|
||||
71500276
|
||||
71565813
|
||||
71631350
|
||||
71696887
|
||||
71762424
|
||||
71827961
|
||||
71893498
|
||||
71959035
|
||||
72024572
|
||||
72090109
|
||||
72155646
|
||||
72221183
|
||||
72286720
|
||||
72352257
|
||||
72417794
|
||||
72483331
|
||||
72548868
|
||||
72614405
|
||||
72679942
|
||||
72745479
|
||||
72811016
|
||||
72876553
|
||||
72942090
|
||||
73007627
|
||||
73073164
|
||||
73138701
|
||||
73204238
|
||||
73269775
|
||||
73335312
|
||||
73400849
|
||||
73466386
|
||||
73531923
|
||||
73597460
|
||||
73662997
|
||||
73728534
|
||||
73794071
|
||||
73859608
|
||||
73925145
|
||||
73990682
|
||||
74056219
|
||||
74121756
|
||||
74187293
|
||||
74252830
|
||||
74318367
|
||||
74383904
|
||||
74449441
|
||||
74514978
|
||||
74580515
|
||||
74646052
|
||||
74711589
|
||||
74777126
|
||||
74842663
|
||||
74908200
|
||||
74973737
|
||||
75039274
|
||||
75104811
|
||||
71107053
|
||||
71172590
|
||||
71238127
|
||||
71303664
|
||||
71369201
|
||||
71434738
|
||||
71500275
|
||||
71565812
|
||||
71631349
|
||||
71696886
|
||||
71762423
|
||||
71827960
|
||||
71893497
|
||||
71959034
|
||||
72024571
|
||||
72090108
|
||||
72155645
|
||||
72221182
|
||||
72286719
|
||||
72352256
|
||||
72417793
|
||||
72483330
|
||||
72548867
|
||||
72614404
|
||||
72679941
|
||||
72745478
|
||||
72811015
|
||||
72876552
|
||||
72942089
|
||||
73007626
|
||||
73073163
|
||||
73138700
|
||||
73204237
|
||||
73269774
|
||||
73335311
|
||||
73400848
|
||||
73466385
|
||||
73531922
|
||||
73597459
|
||||
73662996
|
||||
73728533
|
||||
73794070
|
||||
73859607
|
||||
73925144
|
||||
73990681
|
||||
74056218
|
||||
74121755
|
||||
74187292
|
||||
74252829
|
||||
74318366
|
||||
74383903
|
||||
74449440
|
||||
74514977
|
||||
74580514
|
||||
74646051
|
||||
74711588
|
||||
74777125
|
||||
74842662
|
||||
74908199
|
||||
74973736
|
||||
75039273
|
||||
75104810
|
||||
75170347
|
||||
75235884
|
||||
71238126
|
||||
71303663
|
||||
71369200
|
||||
71434737
|
||||
71500274
|
||||
71565811
|
||||
71631348
|
||||
71696885
|
||||
71762422
|
||||
71827959
|
||||
71893496
|
||||
71959033
|
||||
72024570
|
||||
72090107
|
||||
72155644
|
||||
72221181
|
||||
72286718
|
||||
72352255
|
||||
72417792
|
||||
72483329
|
||||
72548866
|
||||
72614403
|
||||
72679940
|
||||
72745477
|
||||
72811014
|
||||
72876551
|
||||
72942088
|
||||
73007625
|
||||
73073162
|
||||
73138699
|
||||
73204236
|
||||
73269773
|
||||
73335310
|
||||
73400847
|
||||
73466384
|
||||
73531921
|
||||
73597458
|
||||
73662995
|
||||
73728532
|
||||
73794069
|
||||
73859606
|
||||
73925143
|
||||
73990680
|
||||
74056217
|
||||
74121754
|
||||
74187291
|
||||
74252828
|
||||
74318365
|
||||
74383902
|
||||
74449439
|
||||
74514976
|
||||
74580513
|
||||
74646050
|
||||
74711587
|
||||
74777124
|
||||
74842661
|
||||
74908198
|
||||
74973735
|
||||
75039272
|
||||
75104809
|
||||
75170346
|
||||
75235883
|
||||
75301420
|
||||
75366957
|
||||
73466383
|
||||
73531920
|
||||
75432492
|
||||
73400844
|
||||
73466381
|
||||
73531918
|
||||
73597455
|
||||
73662992
|
||||
73728529
|
||||
73794066
|
||||
73859603
|
||||
73925140
|
||||
73990677
|
||||
74056214
|
||||
74121751
|
||||
74187288
|
||||
74252825
|
||||
74318362
|
||||
74383899
|
||||
74449436
|
||||
74514973
|
||||
74580510
|
||||
74646047
|
||||
74711584
|
||||
74777121
|
||||
74842658
|
||||
74908195
|
||||
74973732
|
||||
73597454
|
||||
73662991
|
||||
73728528
|
||||
73794065
|
||||
73859602
|
||||
73925139
|
||||
76284464
|
||||
72876539
|
||||
76481074
|
||||
76546611
|
||||
76612148
|
||||
76677685
|
||||
76743222
|
||||
76808759
|
||||
76874296
|
||||
76939833
|
||||
76153387
|
||||
73859586
|
||||
73925123
|
||||
73990660
|
||||
74056197
|
||||
74121734
|
||||
74318345
|
||||
74383882
|
||||
74449419
|
||||
74514956
|
||||
74580493
|
||||
74646030
|
||||
74711567
|
||||
74777104
|
||||
74842641
|
||||
74908178
|
||||
74973715
|
||||
75039252
|
||||
75104789
|
||||
75170326
|
||||
75235863
|
||||
75301400
|
||||
75366937
|
||||
75432474
|
||||
75498011
|
||||
75563548
|
||||
75629085
|
||||
75694622
|
||||
75760159
|
||||
75825696
|
||||
75891233
|
||||
75956770
|
||||
76022307
|
||||
76087844
|
||||
76153381
|
||||
76218918
|
||||
76284455
|
||||
77005362
|
||||
77070899
|
||||
77136436
|
||||
77201973
|
||||
77267510
|
||||
77333047
|
||||
77398584
|
||||
77464121
|
||||
77529658
|
||||
77595195
|
||||
77660732
|
||||
77726269
|
||||
77791806
|
||||
77857343
|
||||
77922880
|
||||
77988417
|
||||
74514951
|
||||
74580488
|
||||
74646025
|
||||
74711562
|
||||
74777099
|
||||
74842636
|
||||
74908173
|
||||
74973710
|
||||
75039247
|
||||
75104784
|
||||
75170321
|
||||
75235858
|
||||
75301395
|
||||
75366932
|
||||
75432469
|
||||
75498006
|
||||
75563543
|
||||
75629080
|
||||
75694617
|
||||
75760154
|
||||
75825691
|
||||
75891228
|
||||
75956765
|
||||
76022302
|
||||
76087839
|
||||
76153376
|
||||
76218913
|
||||
76284450
|
||||
76349987
|
||||
76415524
|
||||
76481061
|
||||
76546598
|
||||
76612135
|
||||
76677672
|
||||
76743209
|
||||
76808746
|
||||
76874283
|
||||
76939820
|
||||
77005357
|
||||
77070894
|
||||
77136431
|
||||
77201968
|
||||
77267505
|
||||
77333042
|
||||
77398579
|
||||
77464116
|
||||
77529653
|
||||
77595190
|
||||
77660727
|
||||
77726264
|
||||
77791801
|
||||
77857338
|
||||
77922875
|
||||
77988412
|
||||
78053949
|
||||
78119486
|
||||
78185023
|
||||
78250560
|
||||
78316097
|
||||
78381634
|
||||
78447171
|
||||
78512708
|
||||
78578245
|
||||
78643782
|
||||
74646024
|
||||
74711561
|
||||
74777098
|
||||
74842635
|
||||
74908172
|
||||
74973709
|
||||
75039246
|
||||
75104783
|
||||
75170320
|
||||
75235857
|
||||
75301394
|
||||
75366931
|
||||
75432468
|
||||
75498005
|
||||
75563542
|
||||
75629079
|
||||
75694616
|
||||
75760153
|
||||
75825690
|
||||
75891227
|
||||
75956764
|
||||
76022301
|
||||
76087838
|
||||
76153375
|
||||
76218912
|
||||
76284449
|
||||
76349986
|
||||
76415523
|
||||
76481060
|
||||
76546597
|
||||
76612134
|
||||
76677671
|
||||
76743208
|
||||
76808745
|
||||
76874282
|
||||
76939819
|
||||
77005356
|
||||
77070893
|
||||
77136430
|
||||
77201967
|
||||
77267504
|
||||
77333041
|
||||
77398578
|
||||
77464115
|
||||
77529652
|
||||
77595189
|
||||
77660726
|
||||
77726263
|
||||
77791800
|
||||
77857337
|
||||
77922874
|
||||
77988411
|
||||
78053948
|
||||
78119485
|
||||
78185022
|
||||
78250559
|
||||
78316096
|
||||
78381633
|
||||
78447170
|
||||
78512707
|
||||
78578244
|
||||
78643781
|
||||
78709318
|
||||
78774855
|
||||
74777097
|
||||
74842634
|
||||
74908171
|
||||
76415522
|
||||
76481059
|
||||
76546596
|
||||
76612133
|
||||
76677670
|
||||
76743207
|
||||
76808744
|
||||
76874281
|
||||
76939818
|
||||
77005355
|
||||
77070892
|
||||
77136429
|
||||
77201966
|
||||
77267503
|
||||
77333040
|
||||
77398577
|
||||
77464114
|
||||
77529651
|
||||
77595188
|
||||
77660725
|
||||
77726262
|
||||
77791799
|
||||
77857336
|
||||
77922873
|
||||
77988410
|
||||
78053947
|
||||
78119484
|
||||
78185021
|
||||
78250558
|
||||
78316095
|
||||
78381632
|
||||
78447169
|
||||
78512706
|
||||
78578243
|
||||
78643780
|
||||
78709317
|
||||
78774854
|
||||
78840391
|
||||
78905928
|
||||
74908170
|
||||
74973707
|
||||
75039244
|
||||
75104781
|
||||
75170318
|
||||
75235855
|
||||
75301392
|
||||
75366929
|
||||
75432466
|
||||
75498003
|
||||
75563540
|
||||
75629077
|
||||
75694614
|
||||
75760151
|
||||
75825688
|
||||
75891225
|
||||
75956762
|
||||
76022299
|
||||
76087836
|
||||
76153373
|
||||
76218910
|
||||
76284447
|
||||
76349984
|
||||
76415521
|
||||
76743206
|
||||
76808743
|
||||
76874280
|
||||
76939817
|
||||
77005354
|
||||
77070891
|
||||
77136428
|
||||
77201965
|
||||
77267502
|
||||
77333039
|
||||
77398576
|
||||
77464113
|
||||
77529650
|
||||
77595187
|
||||
77660724
|
||||
77726261
|
||||
77791798
|
||||
77857335
|
||||
77922872
|
||||
77988409
|
||||
78053946
|
||||
78119483
|
||||
78185020
|
||||
78250557
|
||||
78316094
|
||||
78381631
|
||||
78447168
|
||||
78512705
|
||||
78578242
|
||||
78643779
|
||||
78709316
|
||||
78774853
|
||||
78971464
|
||||
79037001
|
||||
75039243
|
||||
75104780
|
||||
75170317
|
||||
75235854
|
||||
75301391
|
||||
75366928
|
||||
75432465
|
||||
75498002
|
||||
75563539
|
||||
75629076
|
||||
75694613
|
||||
75760150
|
||||
75825687
|
||||
75891224
|
||||
75956761
|
||||
76022298
|
||||
76087835
|
||||
76153372
|
||||
76218909
|
||||
76284446
|
||||
76349983
|
||||
76415520
|
||||
76481057
|
||||
76546594
|
||||
76612131
|
||||
76677668
|
||||
76743205
|
||||
76808742
|
||||
76874279
|
||||
76939816
|
||||
77005353
|
||||
77070890
|
||||
77136427
|
||||
77201964
|
||||
77267501
|
||||
77333038
|
||||
77398575
|
||||
77464112
|
||||
77529649
|
||||
77595186
|
||||
77660723
|
||||
77726260
|
||||
77791797
|
||||
77857334
|
||||
77922871
|
||||
77988408
|
||||
78053945
|
||||
78119482
|
||||
78185019
|
||||
78250556
|
||||
78316093
|
||||
78381630
|
||||
78447167
|
||||
78512704
|
||||
78578241
|
||||
78643778
|
||||
78709315
|
||||
78774852
|
||||
78840389
|
||||
78905926
|
||||
78971463
|
||||
79037000
|
||||
79102537
|
||||
79168074
|
||||
75170316
|
||||
75235853
|
||||
75301390
|
||||
75366927
|
||||
75432464
|
||||
75498001
|
||||
75563538
|
||||
75629075
|
||||
75694612
|
||||
75760149
|
||||
75825686
|
||||
75891223
|
||||
75956760
|
||||
76022297
|
||||
76087834
|
||||
76153371
|
||||
76218908
|
||||
76284445
|
||||
76349982
|
||||
76415519
|
||||
76481056
|
||||
76546593
|
||||
76612130
|
||||
76677667
|
||||
76743204
|
||||
76808741
|
||||
76874278
|
||||
76939815
|
||||
77005352
|
||||
77070889
|
||||
77136426
|
||||
77201963
|
||||
77267500
|
||||
77333037
|
||||
77398574
|
||||
77464111
|
||||
77529648
|
||||
77595185
|
||||
77660722
|
||||
77726259
|
||||
77791796
|
||||
77857333
|
||||
77922870
|
||||
77988407
|
||||
78053944
|
||||
78119481
|
||||
78185018
|
||||
78250555
|
||||
78316092
|
||||
78381629
|
||||
78447166
|
||||
78512703
|
||||
78578240
|
||||
78643777
|
||||
78709314
|
||||
78774851
|
||||
78840388
|
||||
78905925
|
||||
78971462
|
||||
79036999
|
||||
79102536
|
||||
79168073
|
||||
79233610
|
||||
79299147
|
||||
75301389
|
||||
75366926
|
||||
75432463
|
||||
75498000
|
||||
75563537
|
||||
75629074
|
||||
75694611
|
||||
75760148
|
||||
75825685
|
||||
75891222
|
||||
75956759
|
||||
76022296
|
||||
76087833
|
||||
76153370
|
||||
76218907
|
||||
76284444
|
||||
76349981
|
||||
76415518
|
||||
76481055
|
||||
76546592
|
||||
76612129
|
||||
76677666
|
||||
76743203
|
||||
76808740
|
||||
76874277
|
||||
76939814
|
||||
77005351
|
||||
77070888
|
||||
77136425
|
||||
77201962
|
||||
77267499
|
||||
77333036
|
||||
77398573
|
||||
77464110
|
||||
77529647
|
||||
77595184
|
||||
77660721
|
||||
77726258
|
||||
77791795
|
||||
77857332
|
||||
77922869
|
||||
77988406
|
||||
78053943
|
||||
78119480
|
||||
78185017
|
||||
78250554
|
||||
78316091
|
||||
78381628
|
||||
78447165
|
||||
78512702
|
||||
78578239
|
||||
78643776
|
||||
78709313
|
||||
78774850
|
||||
78840387
|
||||
78905924
|
||||
78971461
|
||||
79036998
|
||||
79102535
|
||||
79168072
|
||||
79233609
|
||||
79299146
|
||||
79364683
|
||||
79430220
|
||||
75432462
|
||||
75497999
|
||||
75563536
|
||||
75629073
|
||||
75694610
|
||||
75760147
|
||||
75825684
|
||||
75891221
|
||||
75956758
|
||||
76022295
|
||||
76087832
|
||||
76153369
|
||||
76218906
|
||||
76284443
|
||||
76349980
|
||||
76415517
|
||||
76481054
|
||||
76546591
|
||||
76612128
|
||||
76677665
|
||||
76743202
|
||||
76808739
|
||||
76874276
|
||||
76939813
|
||||
77005350
|
||||
77070887
|
||||
77136424
|
||||
77201961
|
||||
77267498
|
||||
77333035
|
||||
77398572
|
||||
77464109
|
||||
77529646
|
||||
77595183
|
||||
77660720
|
||||
77726257
|
||||
77791794
|
||||
77857331
|
||||
77922868
|
||||
77988405
|
||||
78053942
|
||||
78119479
|
||||
78185016
|
||||
78250553
|
||||
78316090
|
||||
78381627
|
||||
78447164
|
||||
78512701
|
||||
78578238
|
||||
78643775
|
||||
78709312
|
||||
78774849
|
||||
78840386
|
||||
78905923
|
||||
78971460
|
||||
79036997
|
||||
79102534
|
||||
79168071
|
||||
79233608
|
||||
79299145
|
||||
79364682
|
||||
79430219
|
||||
79495756
|
||||
79561293
|
||||
78709311
|
||||
78774848
|
||||
78840385
|
||||
78905922
|
||||
78971459
|
||||
79036996
|
||||
79102533
|
||||
79168070
|
||||
79233607
|
||||
79299144
|
||||
79364681
|
||||
79430218
|
||||
79495755
|
||||
79561292
|
||||
79626829
|
||||
79692366
|
||||
75694608
|
||||
75760145
|
||||
75825682
|
||||
75891219
|
||||
75956756
|
||||
76153367
|
||||
76218904
|
||||
76284441
|
||||
76349978
|
||||
76415515
|
||||
76481052
|
||||
80806469
|
||||
82051659
|
||||
82182733
|
||||
82248270
|
||||
82313807
|
||||
80937527
|
||||
82051656
|
||||
82117193
|
||||
82182730
|
||||
82182729
|
||||
82313803
|
||||
82838097
|
||||
83296856
|
||||
83362393
|
||||
83427930
|
||||
83493467
|
||||
122815146
|
||||
124519108
|
||||
126616292
|
||||
124256959
|
||||
126354143
|
||||
123994810
|
||||
126091994
|
||||
123732661
|
||||
125829845
|
||||
123470512
|
||||
130286330
|
||||
130351867
|
5677
test_files/baseline.So.txt
Normal file
5677
test_files/baseline.So.txt
Normal file
File diff suppressed because it is too large
Load Diff
19
test_files/baseline.Z.txt
Normal file
19
test_files/baseline.Z.txt
Normal file
@ -0,0 +1,19 @@
|
||||
2162721
|
||||
36045155
|
||||
73007612
|
||||
69796323
|
||||
69861860
|
||||
69927397
|
||||
69992934
|
||||
70058471
|
||||
70124008
|
||||
70189545
|
||||
70255082
|
||||
70320619
|
||||
70386156
|
||||
70451693
|
||||
72417803
|
||||
72483340
|
||||
72876562
|
||||
71959043
|
||||
69992932
|
1
test_files/baseline.Zl.txt
Normal file
1
test_files/baseline.Zl.txt
Normal file
@ -0,0 +1 @@
|
||||
72417803
|
1
test_files/baseline.Zp.txt
Normal file
1
test_files/baseline.Zp.txt
Normal file
@ -0,0 +1 @@
|
||||
72483340
|
17
test_files/baseline.Zs.txt
Normal file
17
test_files/baseline.Zs.txt
Normal file
@ -0,0 +1,17 @@
|
||||
2162721
|
||||
36045155
|
||||
73007612
|
||||
69796323
|
||||
69861860
|
||||
69927397
|
||||
69992934
|
||||
70058471
|
||||
70124008
|
||||
70189545
|
||||
70255082
|
||||
70320619
|
||||
70386156
|
||||
70451693
|
||||
72876562
|
||||
71959043
|
||||
69992932
|
3
test_files/corpus.json
Normal file
3
test_files/corpus.json
Normal file
@ -0,0 +1,3 @@
|
||||
[
|
||||
["UTF-8 Corpus", "./test_files/utf8.corpus", 555857393]
|
||||
]
|
38
test_files/uccat.txt
Normal file
38
test_files/uccat.txt
Normal file
@ -0,0 +1,38 @@
|
||||
C
|
||||
Cc
|
||||
Cf
|
||||
Cn
|
||||
Co
|
||||
Cs
|
||||
L
|
||||
LC
|
||||
Ll
|
||||
Lm
|
||||
Lo
|
||||
Lt
|
||||
Lu
|
||||
M
|
||||
Mc
|
||||
Me
|
||||
Mn
|
||||
N
|
||||
Nd
|
||||
Nl
|
||||
No
|
||||
P
|
||||
Pc
|
||||
Pd
|
||||
Pe
|
||||
Pf
|
||||
Pi
|
||||
Po
|
||||
Ps
|
||||
S
|
||||
Sc
|
||||
Sk
|
||||
Sm
|
||||
So
|
||||
Z
|
||||
Zl
|
||||
Zp
|
||||
Zs
|
993592
test_files/uctable.C.js
Normal file
993592
test_files/uctable.C.js
Normal file
File diff suppressed because it is too large
Load Diff
67
test_files/uctable.Cc.js
Normal file
67
test_files/uctable.Cc.js
Normal file
@ -0,0 +1,67 @@
|
||||
var unicode = [
|
||||
'\x00',
|
||||
'\x01',
|
||||
'\x02',
|
||||
'\x03',
|
||||
'\x04',
|
||||
'\x05',
|
||||
'\x06',
|
||||
'\x07',
|
||||
'\x08',
|
||||
'\x09',
|
||||
'\x0A',
|
||||
'\x0B',
|
||||
'\x0C',
|
||||
'\x0D',
|
||||
'\x0E',
|
||||
'\x0F',
|
||||
'\x10',
|
||||
'\x11',
|
||||
'\x12',
|
||||
'\x13',
|
||||
'\x14',
|
||||
'\x15',
|
||||
'\x16',
|
||||
'\x17',
|
||||
'\x18',
|
||||
'\x19',
|
||||
'\x1A',
|
||||
'\x1B',
|
||||
'\x1C',
|
||||
'\x1D',
|
||||
'\x1E',
|
||||
'\x1F',
|
||||
'\x7F',
|
||||
'\x80',
|
||||
'\x81',
|
||||
'\x82',
|
||||
'\x83',
|
||||
'\x84',
|
||||
'\x85',
|
||||
'\x86',
|
||||
'\x87',
|
||||
'\x88',
|
||||
'\x89',
|
||||
'\x8A',
|
||||
'\x8B',
|
||||
'\x8C',
|
||||
'\x8D',
|
||||
'\x8E',
|
||||
'\x8F',
|
||||
'\x90',
|
||||
'\x91',
|
||||
'\x92',
|
||||
'\x93',
|
||||
'\x94',
|
||||
'\x95',
|
||||
'\x96',
|
||||
'\x97',
|
||||
'\x98',
|
||||
'\x99',
|
||||
'\x9A',
|
||||
'\x9B',
|
||||
'\x9C',
|
||||
'\x9D',
|
||||
'\x9E',
|
||||
'\x9F'
|
||||
];if(typeof module !== 'undefined') module.exports = unicode;
|
152
test_files/uctable.Cf.js
Normal file
152
test_files/uctable.Cf.js
Normal file
@ -0,0 +1,152 @@
|
||||
var unicode = [
|
||||
'\xAD',
|
||||
'\u0600',
|
||||
'\u0601',
|
||||
'\u0602',
|
||||
'\u0603',
|
||||
'\u0604',
|
||||
'\u0605',
|
||||
'\u061C',
|
||||
'\u06DD',
|
||||
'\u070F',
|
||||
'\u180E',
|
||||
'\u200B',
|
||||
'\u200C',
|
||||
'\u200D',
|
||||
'\u200E',
|
||||
'\u200F',
|
||||
'\u202A',
|
||||
'\u202B',
|
||||
'\u202C',
|
||||
'\u202D',
|
||||
'\u202E',
|
||||
'\u2060',
|
||||
'\u2061',
|
||||
'\u2062',
|
||||
'\u2063',
|
||||
'\u2064',
|
||||
'\u2066',
|
||||
'\u2067',
|
||||
'\u2068',
|
||||
'\u2069',
|
||||
'\u206A',
|
||||
'\u206B',
|
||||
'\u206C',
|
||||
'\u206D',
|
||||
'\u206E',
|
||||
'\u206F',
|
||||
'\uFEFF',
|
||||
'\uFFF9',
|
||||
'\uFFFA',
|
||||
'\uFFFB',
|
||||
'\uD804\uDCBD',
|
||||
'\uD82F\uDCA0',
|
||||
'\uD82F\uDCA1',
|
||||
'\uD82F\uDCA2',
|
||||
'\uD82F\uDCA3',
|
||||
'\uD834\uDD73',
|
||||
'\uD834\uDD74',
|
||||
'\uD834\uDD75',
|
||||
'\uD834\uDD76',
|
||||
'\uD834\uDD77',
|
||||
'\uD834\uDD78',
|
||||
'\uD834\uDD79',
|
||||
'\uD834\uDD7A',
|
||||
'\uDB40\uDC01',
|
||||
'\uDB40\uDC20',
|
||||
'\uDB40\uDC21',
|
||||
'\uDB40\uDC22',
|
||||
'\uDB40\uDC23',
|
||||
'\uDB40\uDC24',
|
||||
'\uDB40\uDC25',
|
||||
'\uDB40\uDC26',
|
||||
'\uDB40\uDC27',
|
||||
'\uDB40\uDC28',
|
||||
'\uDB40\uDC29',
|
||||
'\uDB40\uDC2A',
|
||||
'\uDB40\uDC2B',
|
||||
'\uDB40\uDC2C',
|
||||
'\uDB40\uDC2D',
|
||||
'\uDB40\uDC2E',
|
||||
'\uDB40\uDC2F',
|
||||
'\uDB40\uDC30',
|
||||
'\uDB40\uDC31',
|
||||
'\uDB40\uDC32',
|
||||
'\uDB40\uDC33',
|
||||
'\uDB40\uDC34',
|
||||
'\uDB40\uDC35',
|
||||
'\uDB40\uDC36',
|
||||
'\uDB40\uDC37',
|
||||
'\uDB40\uDC38',
|
||||
'\uDB40\uDC39',
|
||||
'\uDB40\uDC3A',
|
||||
'\uDB40\uDC3B',
|
||||
'\uDB40\uDC3C',
|
||||
'\uDB40\uDC3D',
|
||||
'\uDB40\uDC3E',
|
||||
'\uDB40\uDC3F',
|
||||
'\uDB40\uDC40',
|
||||
'\uDB40\uDC41',
|
||||
'\uDB40\uDC42',
|
||||
'\uDB40\uDC43',
|
||||
'\uDB40\uDC44',
|
||||
'\uDB40\uDC45',
|
||||
'\uDB40\uDC46',
|
||||
'\uDB40\uDC47',
|
||||
'\uDB40\uDC48',
|
||||
'\uDB40\uDC49',
|
||||
'\uDB40\uDC4A',
|
||||
'\uDB40\uDC4B',
|
||||
'\uDB40\uDC4C',
|
||||
'\uDB40\uDC4D',
|
||||
'\uDB40\uDC4E',
|
||||
'\uDB40\uDC4F',
|
||||
'\uDB40\uDC50',
|
||||
'\uDB40\uDC51',
|
||||
'\uDB40\uDC52',
|
||||
'\uDB40\uDC53',
|
||||
'\uDB40\uDC54',
|
||||
'\uDB40\uDC55',
|
||||
'\uDB40\uDC56',
|
||||
'\uDB40\uDC57',
|
||||
'\uDB40\uDC58',
|
||||
'\uDB40\uDC59',
|
||||
'\uDB40\uDC5A',
|
||||
'\uDB40\uDC5B',
|
||||
'\uDB40\uDC5C',
|
||||
'\uDB40\uDC5D',
|
||||
'\uDB40\uDC5E',
|
||||
'\uDB40\uDC5F',
|
||||
'\uDB40\uDC60',
|
||||
'\uDB40\uDC61',
|
||||
'\uDB40\uDC62',
|
||||
'\uDB40\uDC63',
|
||||
'\uDB40\uDC64',
|
||||
'\uDB40\uDC65',
|
||||
'\uDB40\uDC66',
|
||||
'\uDB40\uDC67',
|
||||
'\uDB40\uDC68',
|
||||
'\uDB40\uDC69',
|
||||
'\uDB40\uDC6A',
|
||||
'\uDB40\uDC6B',
|
||||
'\uDB40\uDC6C',
|
||||
'\uDB40\uDC6D',
|
||||
'\uDB40\uDC6E',
|
||||
'\uDB40\uDC6F',
|
||||
'\uDB40\uDC70',
|
||||
'\uDB40\uDC71',
|
||||
'\uDB40\uDC72',
|
||||
'\uDB40\uDC73',
|
||||
'\uDB40\uDC74',
|
||||
'\uDB40\uDC75',
|
||||
'\uDB40\uDC76',
|
||||
'\uDB40\uDC77',
|
||||
'\uDB40\uDC78',
|
||||
'\uDB40\uDC79',
|
||||
'\uDB40\uDC7A',
|
||||
'\uDB40\uDC7B',
|
||||
'\uDB40\uDC7C',
|
||||
'\uDB40\uDC7D',
|
||||
'\uDB40\uDC7E',
|
||||
'\uDB40\uDC7F'
|
||||
];if(typeof module !== 'undefined') module.exports = unicode;
|
853861
test_files/uctable.Cn.js
Normal file
853861
test_files/uctable.Cn.js
Normal file
File diff suppressed because it is too large
Load Diff
137470
test_files/uctable.Co.js
Normal file
137470
test_files/uctable.Co.js
Normal file
File diff suppressed because it is too large
Load Diff
2050
test_files/uctable.Cs.js
Normal file
2050
test_files/uctable.Cs.js
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user