Skip to content

Instantly share code, notes, and snippets.

@stj-mv
Created July 9, 2021 11:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stj-mv/68e79698377d6f950eac668230681159 to your computer and use it in GitHub Desktop.
Save stj-mv/68e79698377d6f950eac668230681159 to your computer and use it in GitHub Desktop.
Compiled on Linux VM
mORMot2 Regression Tests
--------------------------
1. Core units
1.1. Core base:
- RecordCopy: 743 assertions passed 107us
- TRawUtf8List: 190,172 assertions passed 559.08ms
- TDynArray: 1,091,804 assertions passed 910.32ms
- TDynArrayHashed: 1,599,070 assertions passed 4.98s
- TSynDictionary: 327,450 assertions passed 1.67s
- TSynQueue: 6,541,501 assertions passed 724.75ms
- TSynNameValue: 40,032 assertions passed 175.86ms
- TRawUtf8Interning: 2,000,013 assertions passed 2.33s
500000 interning 16 KB in 972.91ms i.e. 501.8K/s, aver. 1us, 15.6 MB/s
500000 direct 15.2 MB in 584.75ms i.e. 835K/s, aver. 1us, 26 MB/s
- TObjArray: 3,230 assertions passed 7.82ms
- Custom RTL: 77,552 assertions passed 2.03s
FillCharFast [] in 68.05ms, 5.7 GB/s
MoveFast [] in 7.06ms, 2.2 GB/s
small MoveFast [] in 10.69ms, 2 GB/s
big MoveFast [] in 169.04ms, 2.3 GB/s
FillCharFast [cpuAVX] in 115.17ms, 3.3 GB/s
MoveFast [cpuAVX] in 7.48ms, 2 GB/s
small MoveFast [cpuAVX] in 10.02ms, 2.1 GB/s
big MoveFast [cpuAVX] in 287ms, 1.3 GB/s
- Fast string compare: 41 assertions passed 40us
- IdemPropName: 228 assertions passed 444us
- Url encoding: 167 assertions passed 1.84ms
- GUID: 10,019 assertions passed 85.04ms
- ParseCommandArguments: 232 assertions passed 139us
- IsMatch: 4,250 assertions passed 660us
- TExprParserMatch: 140 assertions passed 546us
- Soundex: 35 assertions passed 50us
- Numerical conversions: 2,545,539 assertions passed 3.78s
100000 FloatToText in 370.59ms i.e. 263.5K/s, aver. 3us, 4.8 MB/s
100000 str in 76.12ms i.e. 1.2M/s, aver. 0us, 30 MB/s
100000 DoubleToShort in 28.86ms i.e. 3.3M/s, aver. 0us, 69.4 MB/s
100000 DoubleToAscii in 26.86ms i.e. 3.5M/s, aver. 0us, 75.3 MB/s
- Integers: 144,965 assertions passed 104.16ms
- crc32c: 320,100 assertions passed 246.62ms
pas 133.8 MB/s fast 711.1 MB/s sse42 1.7 GB/s sse42+aesni 1.7 GB/s
- Random32: 221,003 assertions passed 7.53ms
240000 Random32 in 7.30ms i.e. 31.3M/s, aver. 0us, 125.3 MB/s
- Bloom filters: 2,010,072 assertions passed 525.76ms
- DeltaCompress: 87 assertions passed 187.99ms
- Curr 64: 20,056 assertions passed 11.34ms
- CamelCase: 11 assertions passed 53us
- Bits: 32,657 assertions passed 113.85ms
- Ini files: 7,028 assertions passed 94.64ms
- UTF8: 1,185,894 assertions passed 2.60s
- Url decoding: 1,101 assertions passed 1.18ms
- Mime types: 438 assertions passed 7.53ms
- Baudot code: 10,007 assertions passed 135.96ms
- Iso 8601 date and time: 200,831 assertions passed 125.83ms
- Time zones: 449 assertions passed 201.40ms
- Quick select: 4,015 assertions passed 255.63ms
- TSynCache: 404 assertions passed 653us
- TSynFilter: 804 assertions passed 9.12ms
- TSynValidate: 677 assertions passed 3.87ms
- TSynLogFile: 43 assertions passed 1.24ms
- TSynUniqueIdentifier: 1,300,002 assertions passed 4.50s
200000 ComputeNew in 23.64ms i.e. 8M/s, aver. 0us
Total failed: 0 / 19,892,862 - Core base PASSED 26.42s
1.2. Core process:
- RTTI: 1,338 assertions passed 3.61ms
- Url encoding: 200 assertions passed 2.52ms
- Encode decode JSON: 426,942 assertions passed 2.33s
- Wiki markdown to html: 56 assertions passed 505us
- Variants: 97 assertions passed 165us
- Mustache renderer: 166 assertions passed 1.30s
- TDocVariant: 91,819 assertions passed 608.41ms
- TDecimal128: 17,446 assertions passed 15.61ms
- BSON: 245,070 assertions passed 12.74ms
100000 TBsonObjectID.ComputeNew in 8.46ms i.e. 11.2M/s, aver. 0us
- TSelectStatement: 229 assertions passed 843us
- TSynMonitorUsage: 1,202 assertions passed 798us
Total failed: 0 / 784,565 - Core process PASSED 4.28s
1.3. Core crypto:
- MD5: 166 assertions passed 504us
- SHA1: 8 assertions passed 7.67ms
- SHA256: 40 assertions passed 101.73ms
- SHA512: 32 assertions passed 70.26ms
- SHA3: 8,225 assertions passed 133.95ms
- AES: 72,700 assertions passed 1.22s
cypher with AES-NI: 382us, without: 3.13ms
- AES_GCM: 215 assertions passed 121us
- RC4: 1,016 assertions passed 7.62ms
#5 #7 #9 ! - Hashes: 3 / 9 FAILED 542.54ms
- Base64: 12,064 assertions passed 144.76ms
- CompressShaAes: 1,683 assertions passed 13.34ms
- TAesPNRG: 262,624 assertions passed 1.07s
100000 mORMot Random32 in 10.56ms i.e. 9M/s, aver. 0us, 36.1 MB/s
mORMot FillRandom in 79us, 1.1 GB/s
100000 OpenSSL Random32 in 577.47ms i.e. 169.1K/s, aver. 5us, 676.4 KB/s
OpenSSL FillRandom in 613us, 155.5 MB/s
- CryptDataForCurrentUser: 5,000 assertions passed 24.24ms
2000 AES-CFB in 22.68ms i.e. 86K/s, aver. 11us, 45.9 MB/s
- JWT: 164,914 assertions passed 3.43s
1000 HS256 in 10.21ms i.e. 95.5K/s, aver. 10us
1000 HS384 in 11.27ms i.e. 86.6K/s, aver. 11us
1000 HS512 in 11.37ms i.e. 85.8K/s, aver. 11us
1000 S3224 in 9.28ms i.e. 105.1K/s, aver. 9us
1000 S3256 in 9.48ms i.e. 103K/s, aver. 9us
1000 S3384 in 9.99ms i.e. 97.6K/s, aver. 9us
1000 S3512 in 10.38ms i.e. 94K/s, aver. 10us
1000 S3S128 in 9.57ms i.e. 101.9K/s, aver. 9us
1000 S3S256 in 10.09ms i.e. 96.7K/s, aver. 10us
100 ES256 in 47.26ms i.e. 2K/s, aver. 472us
100 RS256 in 21.63ms i.e. 4.5K/s, aver. 216us
100 RS384 in 21.81ms i.e. 4.4K/s, aver. 218us
100 RS512 in 21.34ms i.e. 4.5K/s, aver. 213us
100 PS256 in 21.79ms i.e. 4.4K/s, aver. 217us
100 PS384 in 22.40ms i.e. 4.3K/s, aver. 224us
100 PS512 in 21.71ms i.e. 4.4K/s, aver. 217us
100 ES256 in 48.37ms i.e. 2K/s, aver. 483us
100 ES384 in 362.36ms i.e. 275/s, aver. 3.62ms
100 ES512 in 319.82ms i.e. 312/s, aver. 3.19ms
100 ES256K in 224.16ms i.e. 446/s, aver. 2.24ms
100 EdDSA in 88.83ms i.e. 1K/s, aver. 888us
- TBinaryCookieGenerator: 82,944 assertions passed 74.24ms
16384 generate in 27.66ms i.e. 578.3K/s, aver. 1us
16384 validate in 7.20ms i.e. 2.1M/s, aver. 0us
- Catalog: 210 assertions passed 299us
- Benchmark: 110,000 assertions passed 1.39s
2500 crc32c in 922us i.e. 2.5M/s or 5.6 GB/s
2500 xxhash32 in 3.27ms i.e. 745.2K/s or 1.5 GB/s
2500 crc32 in 1.04ms i.e. 2.2M/s or 4.9 GB/s
2500 adler32 in 1.35ms i.e. 1.7M/s or 3.8 GB/s
2500 hash32 in 1.27ms i.e. 1.8M/s or 4 GB/s
2500 aesnihash in 618us i.e. 3.8M/s or 8.4 GB/s
2500 md5 in 17.51ms i.e. 139.4K/s or 303.8 MB/s
2500 sha1 in 45.23ms i.e. 53.9K/s or 117.6 MB/s
2500 hmacsha1 in 52.76ms i.e. 46.2K/s or 100.8 MB/s
2500 sha256 in 59.86ms i.e. 40.7K/s or 88.8 MB/s
2500 hmacsha256 in 67.20ms i.e. 36.3K/s or 79.1 MB/s
2500 sha384 in 46.32ms i.e. 52.7K/s or 114.8 MB/s
2500 hmacsha384 in 54.42ms i.e. 44.8K/s or 97.7 MB/s
2500 sha512 in 46.22ms i.e. 52.8K/s or 115.1 MB/s
2500 hmacsha512 in 57.26ms i.e. 42.6K/s or 92.9 MB/s
2500 sha3_256 in 98.42ms i.e. 24.8K/s or 54 MB/s
2500 sha3_512 in 180.62ms i.e. 13.5K/s or 29.4 MB/s
2500 rc4 in 34.38ms i.e. 71K/s or 154.7 MB/s
2500 mormot aes-128-cfb in 16.32ms i.e. 149.5K/s or 326 MB/s
2500 mormot aes-128-ofb in 15.04ms i.e. 162.2K/s or 353.5 MB/s
2500 mormot aes-128-c64 in 19.66ms i.e. 124.1K/s or 270.5 MB/s
2500 mormot aes-128-ctr in 9.49ms i.e. 257K/s or 560.1 MB/s
2500 mormot aes-128-cfc in 16.85ms i.e. 144.8K/s or 315.7 MB/s
2500 mormot aes-128-ofc in 24.22ms i.e. 100.7K/s or 219.5 MB/s
2500 mormot aes-128-ctc in 13.52ms i.e. 180.4K/s or 393.2 MB/s
2500 mormot aes-128-gcm in 12.89ms i.e. 189.3K/s or 412.7 MB/s
2500 mormot aes-256-cfb in 21.78ms i.e. 112K/s or 244.1 MB/s
2500 mormot aes-256-ofb in 19.24ms i.e. 126.8K/s or 276.5 MB/s
2500 mormot aes-256-c64 in 23.22ms i.e. 105.1K/s or 229 MB/s
2500 mormot aes-256-ctr in 10.25ms i.e. 238K/s or 518.6 MB/s
2500 mormot aes-256-cfc in 20.52ms i.e. 118.9K/s or 259.2 MB/s
2500 mormot aes-256-ofc in 29.53ms i.e. 82.6K/s or 180.1 MB/s
2500 mormot aes-256-ctc in 15.27ms i.e. 159.8K/s or 348.3 MB/s
2500 mormot aes-256-gcm in 13.61ms i.e. 179.3K/s or 390.8 MB/s
2500 openssl aes-128-cfb in 25.05ms i.e. 97.4K/s or 212.3 MB/s
2500 openssl aes-128-ofb in 23.40ms i.e. 104.3K/s or 227.3 MB/s
2500 openssl aes-128-ctr in 10.69ms i.e. 228.3K/s or 497.7 MB/s
2500 openssl aes-128-gcm in 16.42ms i.e. 148.6K/s or 323.9 MB/s
2500 openssl aes-256-cfb in 27.12ms i.e. 90K/s or 196.1 MB/s
2500 openssl aes-256-ofb in 25.44ms i.e. 95.9K/s or 209.1 MB/s
2500 openssl aes-256-ctr in 12.76ms i.e. 191.3K/s or 416.9 MB/s
2500 openssl aes-256-gcm in 17.58ms i.e. 138.8K/s or 302.5 MB/s
2500 shake128 in 85.36ms i.e. 28.6K/s or 62.3 MB/s
2500 shake256 in 99.02ms i.e. 24.6K/s or 53.7 MB/s
Total failed: 3 / 721,850 - Core crypto FAILED 8.25s
1.4. Core ecc:
- Reference vectors: 23 assertions passed 15.89ms
- ECC: 1,803 assertions passed 443.02ms
300 Ecc256r1MakeKey in 31.69ms i.e. 9.2K/s, aver. 105us
300 Ecc256r1Sign in 42.61ms i.e. 6.8K/s, aver. 142us
300 Ecc256r1Verify in 141.19ms i.e. 2K/s, aver. 470us
598 Ecc256r1SharedSecret in 218.77ms i.e. 2.6K/s, aver. 365us
- Certificates and signatures: 91 assertions passed 29.42ms
- Ecc command line tool: 703 assertions passed 455.33ms
- ECDHE stream protocol: 63,393 assertions passed 1.26s
100 efAesCrc128 in 5.01ms i.e. 19.4K/s, aver. 50us, 367.5 MB/s
100 efAesCfb128 in 4.91ms i.e. 19.8K/s, aver. 49us, 375.5 MB/s
100 efAesOfb128 in 4.86ms i.e. 20K/s, aver. 48us, 379 MB/s
100 efAesCtr128 in 2.96ms i.e. 32.9K/s, aver. 29us, 621.4 MB/s
100 efAesCbc128 in 6.52ms i.e. 14.9K/s, aver. 65us, 282.6 MB/s
100 efAesCrc256 in 5.88ms i.e. 16.5K/s, aver. 58us, 313.2 MB/s
100 efAesCfb256 in 5.47ms i.e. 17.8K/s, aver. 54us, 336.8 MB/s
100 efAesOfb256 in 6.39ms i.e. 15.2K/s, aver. 63us, 288.3 MB/s
100 efAesCtr256 in 3ms i.e. 32.5K/s, aver. 30us, 614.6 MB/s
100 efAesCbc256 in 8ms i.e. 12.2K/s, aver. 80us, 230.4 MB/s
100 efAesGcm128 in 3.52ms i.e. 27.6K/s, aver. 35us, 522.9 MB/s
100 efAesGcm256 in 3.69ms i.e. 26.4K/s, aver. 36us, 498.6 MB/s
100 efAesCtc128 in 3.56ms i.e. 27.3K/s, aver. 35us, 517 MB/s
100 efAesCtc256 in 8.21ms i.e. 11.8K/s, aver. 82us, 224.5 MB/s
- OpenSSL: 532 assertions passed 2.42s
3 RSA 2048 Generation in 625.90ms i.e. 4/s, aver. 208.63ms
30 RSA 2048 Sign in 168.23ms i.e. 178/s, aver. 5.60ms
30 RSA 2048 Verify in 6.12ms i.e. 4.7K/s, aver. 204us
3 RSA-PSS 2048 Generation in 1.16s i.e. 2/s, aver. 387.94ms
30 RSA-PSS 2048 Sign in 180.30ms i.e. 166/s, aver. 6.01ms
30 RSA-PSS 2048 Verify in 6.48ms i.e. 4.5K/s, aver. 216us
100 prime256v1 Generation in 30.23ms i.e. 3.2K/s, aver. 302us
100 prime256v1 Sign in 25.60ms i.e. 3.8K/s, aver. 256us
100 prime256v1 Verify in 47.50ms i.e. 2K/s, aver. 475us
100 ed25519 Generation in 30.83ms i.e. 3.1K/s, aver. 308us
100 ed25519 Sign in 55.03ms i.e. 1.7K/s, aver. 550us
100 ed25519 Verify in 79.68ms i.e. 1.2K/s, aver. 796us
Total failed: 0 / 66,545 - Core ecc PASSED 4.63s
1.5. Core compression:
- In memory compression: 21 assertions passed 3.08s
- GZIP format: 30 assertions passed 442.61ms
- ZIP format: 824 assertions passed 5.69s
- SynLZ: 23,438 assertions passed 311.31ms
- TAlgoCompress: 914 assertions passed 26.03s
TAlgoSynLZ 3.8 MB->2.2 MB: comp 84:49MB/s decomp 66:114MB/s
TAlgoLizard 3.8 MB->2.1 MB: comp 1:0MB/s decomp 82:147MB/s
TAlgoLizardFast 3.8 MB->2.4 MB: comp 35:22MB/s decomp 147:228MB/s
TAlgoLizardHuffman 3.8 MB->2 MB: comp 0:0MB/s decomp 49:93MB/s
TAlgoDeflate 3.8 MB->1.7 MB: comp 3:1MB/s decomp 58:130MB/s
TAlgoDeflateFast 3.8 MB->1.8 MB: comp 3:1MB/s decomp 54:116MB/s
Total failed: 0 / 25,227 - Core compression PASSED 35.63s
1.6. Network protocols:
- Rtsp over http: 1,900 assertions passed 1.46s
Total failed: 0 / 1,900 - Network protocols PASSED 1.46s
2. ORM
2.1. Orm core:
- TOrm: 93 assertions passed 2.22ms
- TOrmSigned: 200 assertions passed 6.72ms
- TOrmModel: 16 assertions passed 353us
- TRestServerFullMemory: 1,130,745 assertions passed 8.71s
Total failed: 0 / 1,131,054 - Orm core PASSED 8.72s
2.2. Sqlite file:
- Database direct access: 22,284 assertions passed 322.77ms
- Virtual table direct access: 12 assertions passed 2.42ms
- TOrmTableJson: 144,083 assertions passed 282.88ms
- TRestClientDB: 608,198 assertions passed 9.03s
- Regexp function: 6,015 assertions passed 50.13ms
- TRecordVersion: 20,060 assertions passed 494ms
Total failed: 0 / 800,652 - Sqlite file PASSED 10.18s
2.3. Sqlite file WAL:
- Database direct access: 22,284 assertions passed 337.39ms
- Virtual table direct access: 12 assertions passed 2.56ms
- TOrmTableJson: 144,083 assertions passed 276.02ms
- TRestClientDB: 608,198 assertions passed 8.65s
- Regexp function: 6,015 assertions passed 52.13ms
- TRecordVersion: 20,060 assertions passed 584.97ms
Total failed: 0 / 800,652 - Sqlite file WAL PASSED 9.90s
2.4. Sqlite file memory map:
- Database direct access: 22,264 assertions passed 382.61ms
- Virtual table direct access: 12 assertions passed 2.33ms
- TOrmTableJson: 144,083 assertions passed 289.94ms
- TRestClientDB: 608,196 assertions passed 8.49s
- Regexp function: 6,015 assertions passed 47.46ms
- TRecordVersion: 20,060 assertions passed 487.50ms
Total failed: 0 / 800,630 - Sqlite file memory map PASSED 9.70s
2.5. Sqlite memory:
- Database direct access: 22,264 assertions passed 292.55ms
- Virtual table direct access: 12 assertions passed 2.17ms
- TOrmTableJson: 144,083 assertions passed 272.55ms
- TRestClientDB: 676,505 assertions passed 12.62s
- Regexp function: 6,015 assertions passed 49.58ms
- TRecordVersion: 20,060 assertions passed 465.62ms
- TOrmTableWritable: 24,056 assertions passed 10.95ms
- RTree: 280,024 assertions passed 9.32s
10000 With RTree in 4.63s i.e. 2.1K/s, aver. 463us
10000 With RTreeInteger in 4.63s i.e. 2.1K/s, aver. 463us
- Shard write: 10,602 assertions passed 1.24s
- Shard read: 140,001 assertions passed 2.08s
- Shard read after purge: 114,003 assertions passed 1.66s
- MaxShardCount: 144,002 assertions passed 1.74s
Total failed: 0 / 1,581,627 - Sqlite memory PASSED 29.78s
2.6. External database:
- SynDBRemote: 35,589 assertions passed 1.08s
- DB properties persistence: 7 assertions passed 598us
- External records: 2 assertions passed 1.66ms
- Auto adapt SQL: 1,041 assertions passed 20.49ms
- Crypted database: 253,277 assertions passed 880.85ms
- External via REST: 170,355 assertions passed 7.15s
- External via virtual table: 170,355 assertions passed 9.28s
- External via REST with change tracking: 180,455 assertions passed 10.19s
Total failed: 0 / 811,081 - External database PASSED 28.62s
2.7. Client server access:
- TRestHttpServer: 2 assertions passed 26.02ms
using Debian 4.19.0 epoll
- TRestHttpClient: 4 assertions passed 34.03ms
using TRestHttpClientSocket
- HTTP client keep alive: 4,088 assertions passed 436.51ms
4.7 KB, first 8.97ms, done 402.32ms i.e. 2485/s, aver. 402us, 11.4 MB/s
- HTTP client multi connect: 4,088 assertions passed 635.91ms
4.7 KB, first 1.11ms, done 585.79ms i.e. 1707/s, aver. 585us, 7.8 MB/s
- HTTP client encrypted: 4,088 assertions passed 462.27ms
4.7 KB, first 1.30ms, done 422.19ms i.e. 2368/s, aver. 422us, 10.8 MB/s
- Direct in process access: 4,057 assertions passed 122.11ms
4.7 KB, first 380us, done 113.65ms i.e. 8798/s, aver. 113us, 40.4 MB/s
- HTTP several DB servers: 12,607 assertions passed 1.45s
4.7 KB, first 1.09ms, done 386.72ms i.e. 2585/s, aver. 386us, 11.8 MB/s
4.7 KB, first 1.07ms, done 393.72ms i.e. 2539/s, aver. 393us, 11.6 MB/s
4.7 KB, first 1.07ms, done 385.64ms i.e. 2593/s, aver. 385us, 11.9 MB/s
Total failed: 0 / 28,934 - Client server access PASSED 3.18s
2.8. Multi thread process:
- Create thread pool: 1 assertion passed 30.90ms
- TRestServerDB: 7,302 assertions passed 1.03s
1=5470/s 2=6498/s 5=3157/s 10=3016/s 30=2858/s 50=2728/s
- TRestClientDB: 7,302 assertions passed 630.21ms
1=6492/s 2=6875/s 5=6620/s 10=5960/s 30=5439/s 50=4338/s
- TCP sockets: 7,293 assertions passed 2.79s
1=2063/s 2=2033/s 5=2111/s 10=1571/s 30=904/s 50=725/s
- Unix domain sockets: 7,297 assertions passed 4.20s
1=1936/s 2=546/s 5=1088/s 10=975/s 30=850/s 50=695/s
- Websockets: 7,301 assertions passed 2.66s
1=1689/s 2=2104/s 5=2077/s 10=1752/s 30=1033/s 50=781/s
- libcurl: 7,297 assertions passed 3.12s
1=1399/s 2=1908/s 5=1957/s 10=1556/s 30=759/s 50=699/s
- Locked: 7,302 assertions passed 618.80ms
1=5827/s 2=6775/s 5=6780/s 10=6108/s 30=5722/s 50=4809/s
- Unlocked: 7,302 assertions passed 641.92ms
1=6300/s 2=6592/s 5=6514/s 10=6262/s 30=5401/s 50=4136/s
- Main thread: 7,302 assertions passed 664.79ms
1=3858/s 2=6724/s 5=6756/s 10=6773/s 30=5519/s 50=4883/s
- Background thread: 7,302 assertions passed 1.05s
1=3580/s 2=4471/s 5=3713/s 10=3451/s 30=3114/s 50=2756/s
Total failed: 0 / 73,001 - Multi thread process PASSED 17.57s
3. SOA
3.1. Core script:
#6046 777<>777.777 #6080 777<>777.777 #6114 777<>777.777 #6148 777<>777.777 #6182 777<>777.777 #6216 777<>777.777 #6250 777<>777.777 #6284 777<>777.777 #6318 777<>777.777 #6352 777<>777.777 #6386 777<>777.777 #6420 777<>777.777 #6454 777<>777.777 #6488 777<>777.777 #6522 777<>777.777 #6556 777<>777.777 #6590 777<>777.777 #6624 777<>777.777 #6658 777<>777.777 #6692 777<>777.777 #6726 777<>777.777 #6760 777<>777.777 #6794 777<>777.777 #6828 777<>777.777 #6862 777<>777.777 #6896 777<>777.777 #6930 777<>777.777 #6964 777<>777.777 #6998 777<>777.777 #7032 777<>777.777 #7066 777<>777.777 #7100 777<>777.777 #7134 777<>777.777 #7168 777<>777.777 #7202 777<>777.777 #7236 777<>777.777 #7270 777<>777.777 #7304 777<>777.777 #7338 777<>777.777 #7372 777<>777.777 #7406 777<>777.777 #7440 777<>777.777 #7474 777<>777.777 #7508 777<>777.777 #7542 777<>777.777 #7576 777<>777.777 #7610 777<>777.777 #7644 777<>777.777 #7678 777<>777.777 #7712 777<>777.777 #7746 777<>777.777 #7780 777<>777.777 #7814 777<>777.777 #7848 777<>777.777 #7882 777<>777.777 #7916 777<>777.777 #7950 777<>777.777 #7984 777<>777.777 #8018 777<>777.777 #8052 777<>777.777 #8086 777<>777.777 #8120 777<>777.777 #8154 777<>777.777 #8188 777<>777.777 #8222 777<>777.777 #8256 777<>777.777 #8290 777<>777.777 #8324 777<>777.777 #8358 777<>777.777 #8392 777<>777.777 #8426 777<>777.777 #8460 777<>777.777 #8494 777<>777.777 #8528 777<>777.777 #8562 777<>777.777 #8596 777<>777.777 #8630 777<>777.777 #8664 777<>777.777 #8698 777<>777.777 #8732 777<>777.777 #8766 777<>777.777 #8800 777<>777.777 #8834 777<>777.777 #8868 777<>777.777 #8902 777<>777.777 #8936 777<>777.777 #8970 777<>777.777 #9004 777<>777.777 #9038 777<>777.777 #9072 777<>777.777 #9106 777<>777.777 #9140 777<>777.777 #9174 777<>777.777 #9208 777<>777.777 #9242 777<>777.777 #9276 777<>777.777 #9310 777<>777.777 #9344 777<>777.777 #9378 777<>777.777 #9412 777<>777.777 #9446 777<>777.777 #9480 777<>777.777 #9514 777<>777.777 #9548 777<>777.777 #9582 777<>777.777 #9616 777<>777.777 #9650 777<>777.777 #9684 777<>777.777 #9718 777<>777.777 #9752 777<>777.777 #9786 777<>777.777 #9820 777<>777.777 #9854 777<>777.777 #9888 777<>777.777 #9922 777<>777.777 #9956 777<>777.777 #9990 777<>777.777 #10024 777<>777.777 #10058 777<>777.777 #10092 777<>777.777 #10126 777<>777.777 #10160 777<>777.777 #10194 777<>777.777 #10228 777<>777.777 #10262 777<>777.777 #10296 777<>777.777 #10330 777<>777.777 #10364 777<>777.777 #10398 777<>777.777 #10432 777<>777.777 #10466 777<>777.777 #10500 777<>777.777 #10534 777<>777.777 #10568 777<>777.777 #10602 777<>777.777 #10636 777<>777.777 #10670 777<>777.777 #10704 777<>777.777 #10738 777<>777.777 #10772 777<>777.777 #10806 777<>777.777 #10840 777<>777.777 #10874 777<>777.777 #10908 777<>777.777 #10942 777<>777.777 #10976 777<>777.777 #11010 777<>777.777 #11044 777<>777.777 #11078 777<>777.777 #11112 777<>777.777 #11146 777<>777.777 #11180 777<>777.777 #11214 777<>777.777 #11248 777<>777.777 #11282 777<>777.777 #11316 777<>777.777 #11350 777<>777.777 #11384 777<>777.777 #11418 777<>777.777 #11452 777<>777.777 #11486 777<>777.777 #11520 777<>777.777 #11554 777<>777.777 #11588 777<>777.777 #11622 777<>777.777 #11656 777<>777.777 #11690 777<>777.777 #11724 777<>777.777 #11758 777<>777.777 #11792 777<>777.777 #11826 777<>777.777 #11860 777<>777.777 #11894 777<>777.777 #11928 777<>777.777 #11962 777<>777.777 #11996 777<>777.777 #12030 777<>777.777 #12064 777<>777.777 #12098 777<>777.777 #12132 777<>777.777 #12166 777<>777.777 #12200 777<>777.777 #12234 777<>777.777 #12268 777<>777.777 #12302 777<>777.777 #12336 777<>777.777 #12370 777<>777.777 #12404 777<>777.777 #12438 777<>777.777 #12472 777<>777.777 #12506 777<>777.777 #12540 777<>777.777 #12574 777<>777.777 #12608 777<>777.777 #12642 777<>777.777 #12676 777<>777.777 #12710 777<>777.777 #12744 777<>777.777 #12778 777<>777.777 #12812 777<>777.777 #12846 777<>777.777 #12880 777<>777.777 #12914 777<>777.777 #12948 777<>777.777 #12982 777<>777.777 #13016 777<>777.777 #13050 777<>777.777 #13084 777<>777.777 #13118 777<>777.777 #13152 777<>777.777 #13186 777<>777.777 #13220 777<>777.777 #13254 777<>777.777 #13288 777<>777.777 #13322 777<>777.777 #13356 777<>777.777 #13390 777<>777.777 #13424 777<>777.777 #13458 777<>777.777 #13492 777<>777.777 #13526 777<>777.777 #13560 777<>777.777 #13594 777<>777.777 #13628 777<>777.777 #13662 777<>777.777 #13696 777<>777.777 #13730 777<>777.777 #13764 777<>777.777 #13798 777<>777.777 #13832 777<>777.777 #13866 777<>777.777 #13900 777<>777.777 #13934 777<>777.777 #13968 777<>777.777 #14002 777<>777.777 #14036 777<>777.777 #14070 777<>777.777 #14104 777<>777.777 #14138 777<>777.777 #14172 777<>777.777 #14206 777<>777.777 #14240 777<>777.777 #14274 777<>777.777 #14308 777<>777.777 #14342 777<>777.777 #14376 777<>777.777 #14410 777<>777.777 #14444 777<>777.777 #14478 777<>777.777 #14512 777<>777.777 #14546 777<>777.777 #14580 777<>777.777 #14614 777<>777.777 #14648 777<>777.777 #14682 777<>777.777 #14716 777<>777.777 #14750 777<>777.777 #14784 777<>777.777 #14818 777<>777.777 #14852 777<>777.777 #14886 777<>777.777 #14920 777<>777.777 #14954 777<>777.777 #14988 777<>777.777 #15022 777<>777.777 #15056 777<>777.777 #15090 777<>777.777 #15124 777<>777.777 #15158 777<>777.777 #15192 777<>777.777 #15226 777<>777.777 #15260 777<>777.777 #15294 777<>777.777 #15328 777<>777.777 #15362 777<>777.777 #15396 777<>777.777 #15430 777<>777.777 #15464 777<>777.777 #15498 777<>777.777 #15532 777<>777.777 #15566 777<>777.777 #15600 777<>777.777 #15634 777<>777.777 #15668 777<>777.777 #15702 777<>777.777 #15736 777<>777.777 #15770 777<>777.777 #15804 777<>777.777 #15838 777<>777.777 #15872 777<>777.777 #15906 777<>777.777 #15940 777<>777.777 #15974 777<>777.777 #16008 777<>777.777 #16042 777<>777.777 #16076 777<>777.777 #16110 777<>777.777 #16144 777<>777.777 #16178 777<>777.777 #16212 777<>777.777 #16246 777<>777.777 #16280 777<>777.777 #16314 777<>777.777 #16348 777<>777.777 #16382 777<>777.777 #16416 777<>777.777 #16450 777<>777.777 #16484 777<>777.777 #16518 777<>777.777 #16552 777<>777.777 #16586 777<>777.777 #16620 777<>777.777 #16654 777<>777.777 #16688 777<>777.777 #16722 777<>777.777 #16756 777<>777.777 #16790 777<>777.777 #16824 777<>777.777 #16858 777<>777.777 #16892 777<>777.777 #16926 777<>777.777 #16960 777<>777.777 #16994 777<>777.777 #17028 777<>777.777 #17062 777<>777.777 #17096 777<>777.777 #17130 777<>777.777 #17164 777<>777.777 #17198 777<>777.777 #17232 777<>777.777 #17266 777<>777.777 #17300 777<>777.777 #17334 777<>777.777 #17368 777<>777.777 #17402 777<>777.777 #17436 777<>777.777 #17470 777<>777.777 #17504 777<>777.777 #17538 777<>777.777 #17572 777<>777.777 #17606 777<>777.777 #17640 777<>777.777 #17674 777<>777.777 #17708 777<>777.777 #17742 777<>777.777 #17776 777<>777.777 #17810 777<>777.777 #17844 777<>777.777 #17878 777<>777.777 #17912 777<>777.777 #17946 777<>777.777 #17980 777<>777.777 #18014 777<>777.777 #18048 777<>777.777 #18082 777<>777.777 #18116 777<>777.777 #18150 777<>777.777 #18184 777<>777.777 #18218 777<>777.777 #18252 777<>777.777 #18286 777<>777.777 #18320 777<>777.777 #18354 777<>777.777 #18388 777<>777.777 #18422 777<>777.777 #18456 777<>777.777 #18490 777<>777.777 #18524 777<>777.777 #18558 777<>777.777 #18592 777<>777.777 #18626 777<>777.777 #18660 777<>777.777 #18694 777<>777.777 #18728 777<>777.777 #18762 777<>777.777 #18796 777<>777.777 #18830 777<>777.777 #18864 777<>777.777 #18898 777<>777.777 #18932 777<>777.777 #18966 777<>777.777 #19000 777<>777.777 #19034 777<>777.777 #19068 777<>777.777 #19102 777<>777.777 #19136 777<>777.777 #19170 777<>777.777 #19204 777<>777.777 #19238 777<>777.777 #19272 777<>777.777 #19306 777<>777.777 #19340 777<>777.777 #19374 777<>777.777 #19408 777<>777.777 #19442 777<>777.777 #19476 777<>777.777 #19510 777<>777.777 #19544 777<>777.777 #19578 777<>777.777 #19612 777<>777.777 #19646 777<>777.777 #19680 777<>777.777 #19714 777<>777.777 #19748 777<>777.777 #19782 777<>777.777 #19816 777<>777.777 #19850 777<>777.777 #19884 777<>777.777 #19918 777<>777.777 #19952 777<>777.777 #19986 777<>777.777 #20020 777<>777.777 #20054 777<>777.777 #20088 777<>777.777 #20122 777<>777.777 #20156 777<>777.777 #20190 777<>777.777 #20224 777<>777.777 #20258 777<>777.777 #20292 777<>777.777 #20326 777<>777.777 #20360 777<>777.777 #20394 777<>777.777 #20428 777<>777.777 #20462 777<>777.777 #20496 777<>777.777 #20530 777<>777.777 #20564 777<>777.777 #20598 777<>777.777 #20632 777<>777.777 #20666 777<>777.777 #20700 777<>777.777 #20734 777<>777.777 #20768 777<>777.777 #20802 777<>777.777 #20836 777<>777.777 #20870 777<>777.777 #20904 777<>777.777 #20938 777<>777.777 #20972 777<>777.777 #21006 777<>777.777 #21040 777<>777.777 #21074 777<>777.777 #21108 777<>777.777 #21142 777<>777.777 #21176 777<>777.777 #21210 777<>777.777 #21244 777<>777.777 #21278 777<>777.777 #21312 777<>777.777 #21346 777<>777.777 #21380 777<>777.777 #21414 777<>777.777 #21448 777<>777.777 #21482 777<>777.777 #21516 777<>777.777 #21550 777<>777.777 #21584 777<>777.777 #21618 777<>777.777 #21652 777<>777.777 #21686 777<>777.777 #21720 777<>777.777 #21754 777<>777.777 #21788 777<>777.777 #21822 777<>777.777 #21856 777<>777.777 #21890 777<>777.777 #21924 777<>777.777 #21958 777<>777.777 #21992 777<>777.777 #22026 777<>777.777 #22060 777<>777.777 #22094 777<>777.777 #22128 777<>777.777 #22162 777<>777.777 #22196 777<>777.777 #22230 777<>777.777 #22264 777<>777.777 #22298 777<>777.777 #22332 777<>777.777 #22366 777<>777.777 #22400 777<>777.777 #22434 777<>777.777 #22468 777<>777.777 #22502 777<>777.777 #22536 777<>777.777 #22570 777<>777.777 #22604 777<>777.777 #22638 777<>777.777 #22672 777<>777.777 #22706 777<>777.777 #22740 777<>777.777 #22774 777<>777.777 #22808 777<>777.777 #22842 777<>777.777 #22876 777<>777.777 #22910 777<>777.777 #22944 777<>777.777 #22978 777<>777.777 #23012 777<>777.777 #23046 777<>777.777 #23080 777<>777.777 #23114 777<>777.777 #23148 777<>777.777 #23182 777<>777.777 #23216 777<>777.777 #23250 777<>777.777 #23284 777<>777.777 #23318 777<>777.777 #23352 777<>777.777 #23386 777<>777.777 #23420 777<>777.777 #23454 777<>777.777 #23488 777<>777.777 #23522 777<>777.777 #23556 777<>777.777 #23590 777<>777.777 #23624 777<>777.777 #23658 777<>777.777 #23692 777<>777.777 #23726 777<>777.777 #23760 777<>777.777 #23794 777<>777.777 #23828 777<>777.777 #23862 777<>777.777 #23896 777<>777.777 #23930 777<>777.777 #23964 777<>777.777 #23998 777<>777.777 #24032 777<>777.777 #24066 777<>777.777 #24100 777<>777.777 #24134 777<>777.777 #24168 777<>777.777 #24202 777<>777.777 #24236 777<>777.777 #24270 777<>777.777 #24304 777<>777.777 #24338 777<>777.777 #24372 777<>777.777 #24406 777<>777.777 #24440 777<>777.777 #24474 777<>777.777 #24508 777<>777.777 #24542 777<>777.777 #24576 777<>777.777 #24610 777<>777.777 #24644 777<>777.777 #24678 777<>777.777 #24712 777<>777.777 #24746 777<>777.777 #24780 777<>777.777 #24814 777<>777.777 #24848 777<>777.777 #24882 777<>777.777 #24916 777<>777.777 #24950 777<>777.777 #24984 777<>777.777 #25018 777<>777.777 #25052 777<>777.777 #25086 777<>777.777 #25120 777<>777.777 #25154 777<>777.777 #25188 777<>777.777 #25222 777<>777.777 #25256 777<>777.777 #25290 777<>777.777 #25324 777<>777.777 #25358 777<>777.777 #25392 777<>777.777 #25426 777<>777.777 #25460 777<>777.777 #25494 777<>777.777 #25528 777<>777.777 #25562 777<>777.777 #25596 777<>777.777 #25630 777<>777.777 #25664 777<>777.777 #25698 777<>777.777 #25732 777<>777.777 #25766 777<>777.777 #25800 777<>777.777 #25834 777<>777.777 #25868 777<>777.777 #25902 777<>777.777 #25936 777<>777.777 #25970 777<>777.777 #26004 777<>777.777 #26038 777<>777.777 #26072 777<>777.777 #26106 777<>777.777 #26140 777<>777.777 #26174 777<>777.777 #26208 777<>777.777 #26242 777<>777.777 #26276 777<>777.777 #26310 777<>777.777 #26344 777<>777.777 #26378 777<>777.777 #26412 777<>777.777 #26446 777<>777.777 #26480 777<>777.777 #26514 777<>777.777 #26548 777<>777.777 #26582 777<>777.777 #26616 777<>777.777 #26650 777<>777.777 #26684 777<>777.777 #26718 777<>777.777 #26752 777<>777.777 #26786 777<>777.777 #26820 777<>777.777 #26854 777<>777.777 #26888 777<>777.777 #26922 777<>777.777 #26956 777<>777.777 #26990 777<>777.777 #27024 777<>777.777 #27058 777<>777.777 #27092 777<>777.777 #27126 777<>777.777 #27160 777<>777.777 #27194 777<>777.777 #27228 777<>777.777 #27262 777<>777.777 #27296 777<>777.777 #27330 777<>777.777 #27364 777<>777.777 #27398 777<>777.777 #27432 777<>777.777 #27466 777<>777.777 #27500 777<>777.777 #27534 777<>777.777 #27568 777<>777.777 #27602 777<>777.777 #27636 777<>777.777 #27670 777<>777.777 #27704 777<>777.777 #27738 777<>777.777 #27772 777<>777.777 #27806 777<>777.777 #27840 777<>777.777 #27874 777<>777.777 #27908 777<>777.777 #27942 777<>777.777 #27976 777<>777.777 #28010 777<>777.777 #28044 777<>777.777 #28078 777<>777.777 #28112 777<>777.777 #28146 777<>777.777 #28180 777<>777.777 #28214 777<>777.777 #28248 777<>777.777 #28282 777<>777.777 #28316 777<>777.777 #28350 777<>777.777 #28384 777<>777.777 #28418 777<>777.777 #28452 777<>777.777 #28486 777<>777.777 #28520 777<>777.777 #28554 777<>777.777 #28588 777<>777.777 #28622 777<>777.777 #28656 777<>777.777 #28690 777<>777.777 #28724 777<>777.777 #28758 777<>777.777 #28792 777<>777.777 #28826 777<>777.777 #28860 777<>777.777 #28894 777<>777.777 #28928 777<>777.777 #28962 777<>777.777 #28996 777<>777.777 #29030 777<>777.777 #29064 777<>777.777 #29098 777<>777.777 #29132 777<>777.777 #29166 777<>777.777 #29200 777<>777.777 #29234 777<>777.777 #29268 777<>777.777 #29302 777<>777.777 #29336 777<>777.777 #29370 777<>777.777 #29404 777<>777.777 #29438 777<>777.777 #29472 777<>777.777 #29506 777<>777.777 #29540 777<>777.777 #29574 777<>777.777 #29608 777<>777.777 #29642 777<>777.777 #29676 777<>777.777 #29710 777<>777.777 #29744 777<>777.777 #29778 777<>777.777 #29812 777<>777.777 #29846 777<>777.777 #29880 777<>777.777 #29914 777<>777.777 #29948 777<>777.777 #29982 777<>777.777 #30016 777<>777.777 #30050 777<>777.777 #30084 777<>777.777 #30118 777<>777.777 #30152 777<>777.777 #30186 777<>777.777 #30220 777<>777.777 #30254 777<>777.777 #30288 777<>777.777 #30322 777<>777.777 #30356 777<>777.777 #30390 777<>777.777 #30424 777<>777.777 #30458 777<>777.777 #30492 777<>777.777 #30526 777<>777.777 #30560 777<>777.777 #30594 777<>777.777 #30628 777<>777.777 #30662 777<>777.777 #30696 777<>777.777 #30730 777<>777.777 #30764 777<>777.777 #30798 777<>777.777 #30832 777<>777.777 #30866 777<>777.777 #30900 777<>777.777 #30934 777<>777.777 #30968 777<>777.777 #31002 777<>777.777 #31036 777<>777.777 #31070 777<>777.777 #31104 777<>777.777 #31138 777<>777.777 #31172 777<>777.777 #31206 777<>777.777 #31240 777<>777.777 #31274 777<>777.777 #31308 777<>777.777 #31342 777<>777.777 #31376 777<>777.777 #31410 777<>777.777 #31444 777<>777.777 #31478 777<>777.777 #31512 777<>777.777 #31546 777<>777.777 #31580 777<>777.777 #31614 777<>777.777 #31648 777<>777.777 #31682 777<>777.777 #31716 777<>777.777 #31750 777<>777.777 #31784 777<>777.777 #31818 777<>777.777 #31852 777<>777.777 #31886 777<>777.777 #31920 777<>777.777 #31954 777<>777.777 #31988 777<>777.777 #32022 777<>777.777 #32056 777<>777.777 #32090 777<>777.777 #32124 777<>777.777 #32158 777<>777.777 #32192 777<>777.777 #32226 777<>777.777 #32260 777<>777.777 #32294 777<>777.777 #32328 777<>777.777 #32362 777<>777.777 #32396 777<>777.777 #32430 777<>777.777 #32464 777<>777.777 #32498 777<>777.777 #32532 777<>777.777 #32566 777<>777.777 #32600 777<>777.777 #32634 777<>777.777 #32668 777<>777.777 #32702 777<>777.777 #32736 777<>777.777 #32770 777<>777.777 #32804 777<>777.777 #32838 777<>777.777 #32872 777<>777.777 #32906 777<>777.777 #32940 777<>777.777 #32974 777<>777.777 #33008 777<>777.777 #33042 777<>777.777 #33076 777<>777.777 #33110 777<>777.777 #33144 777<>777.777 #33178 777<>777.777 #33212 777<>777.777 #33246 777<>777.777 #33280 777<>777.777 #33314 777<>777.777 #33348 777<>777.777 #33382 777<>777.777 #33416 777<>777.777 #33450 777<>777.777 #33484 777<>777.777 #33518 777<>777.777 #33552 777<>777.777 #33586 777<>777.777 #33620 777<>777.777 #33654 777<>777.777 #33688 777<>777.777 #33722 777<>777.777 #33756 777<>777.777 #33790 777<>777.777 #33824 777<>777.777 #33858 777<>777.777 #33892 777<>777.777 #33926 777<>777.777 #33960 777<>777.777 #33994 777<>777.777 #34028 777<>777.777 #34062 777<>777.777 #34096 777<>777.777 #34130 777<>777.777 #34164 777<>777.777 #34198 777<>777.777 #34232 777<>777.777 #34266 777<>777.777 #34300 777<>777.777 #34334 777<>777.777 #34368 777<>777.777 #34402 777<>777.777 #34436 777<>777.777 #34470 777<>777.777 #34504 777<>777.777 #34538 777<>777.777 #34572 777<>777.777 #34606 777<>777.777 #34640 777<>777.777 #34674 777<>777.777 #34708 777<>777.777 #34742 777<>777.777 #34776 777<>777.777 #34810 777<>777.777 #34844 777<>777.777 #34878 777<>777.777 #34912 777<>777.777 #34946 777<>777.777 #34980 777<>777.777 #35014 777<>777.777 #35048 777<>777.777 #35082 777<>777.777 #35116 777<>777.777 #35150 777<>777.777 #35184 777<>777.777 #35218 777<>777.777 #35252 777<>777.777 #35286 777<>777.777 #35320 777<>777.777 #35354 777<>777.777 #35388 777<>777.777 #35422 777<>777.777 #35456 777<>777.777 #35490 777<>777.777 #35524 777<>777.777 #35558 777<>777.777 #35592 777<>777.777 #35626 777<>777.777 #35660 777<>777.777 #35694 777<>777.777 #35728 777<>777.777 #35762 777<>777.777 #35796 777<>777.777 #35830 777<>777.777 #35864 777<>777.777 #35898 777<>777.777 #35932 777<>777.777 #35966 777<>777.777 #36000 777<>777.777 #36034 777<>777.777 #36068 777<>777.777 #36102 777<>777.777 #36136 777<>777.777 #36170 777<>777.777 #36204 777<>777.777 #36238 777<>777.777 #36272 777<>777.777 #36306 777<>777.777 #36340 777<>777.777 #36374 777<>777.777 #36408 777<>777.777 #36442 777<>777.777 #36476 777<>777.777 #36510 777<>777.777 #36544 777<>777.777 #36578 777<>777.777 #36612 777<>777.777 #36646 777<>777.777 #36680 777<>777.777 #36714 777<>777.777 #36748 777<>777.777 #36782 777<>777.777 #36816 777<>777.777 #36850 777<>777.777 #36884 777<>777.777 #36918 777<>777.777 #36952 777<>777.777 #36986 777<>777.777 #37020 777<>777.777 #37054 777<>777.777 #37088 777<>777.777 #37122 777<>777.777 #37156 777<>777.777 #37190 777<>777.777 #37224 777<>777.777 #37258 777<>777.777 #37292 777<>777.777 #37326 777<>777.777 #37360 777<>777.777 #37394 777<>777.777 #37428 777<>777.777 #37462 777<>777.777 #37496 777<>777.777 #37530 777<>777.777 #37564 777<>777.777 #37598 777<>777.777 #37632 777<>777.777 #37666 777<>777.777 #37700 777<>777.777 #37734 777<>777.777 #37768 777<>777.777 #37802 777<>777.777 #37836 777<>777.777 #37870 777<>777.777 #37904 777<>777.777 #37938 777<>777.777 #37972 777<>777.777 #38006 777<>777.777 #38040 777<>777.777 #38074 777<>777.777 #38108 777<>777.777 #38142 777<>777.777 #38176 777<>777.777 #38210 777<>777.777 #38244 777<>777.777 #38278 777<>777.777 #38312 777<>777.777 #38346 777<>777.777 #38380 777<>777.777 #38414 777<>777.777 #38448 777<>777.777 #38482 777<>777.777 #38516 777<>777.777 #38550 777<>777.777 #38584 777<>777.777 #38618 777<>777.777 #38652 777<>777.777 #38686 777<>777.777 #38720 777<>777.777 #38754 777<>777.777 #38788 777<>777.777 #38822 777<>777.777 #38856 777<>777.777 #38890 777<>777.777 #38924 777<>777.777 #38958 777<>777.777 #38992 777<>777.777 #39026 777<>777.777 #39060 777<>777.777 #39094 777<>777.777 #39128 777<>777.777 #39162 777<>777.777 #39196 777<>777.777 #39230 777<>777.777 #39264 777<>777.777 #39298 777<>777.777 #39332 777<>777.777 #39366 777<>777.777 #39400 777<>777.777 #39434 777<>777.777 #39468 777<>777.777 #39502 777<>777.777 #39536 777<>777.777 #39570 777<>777.777 #39604 777<>777.777 #39638 777<>777.777 #39672 777<>777.777 #39706 777<>777.777 #39740 777<>777.777 #39774 777<>777.777 #39808 777<>777.777 #39842 777<>777.777 #39876 777<>777.777 #39910 777<>777.777 #39944 777<>777.777 #39978 777<>777.777 #40012 777<>777.777 ! - Quick JS low level: 1,000 / 40,057 FAILED 1.20s
Total failed: 1,000 / 40,057 - Core script FAILED 1.20s
3.2. Service oriented architecture:
- Weak interfaces: 56 assertions passed 591us
- Service initialization: 268 assertions passed 23.48ms
- Direct call: 606,564 assertions passed 226.86ms
- Server side: 606,584 assertions passed 248.68ms
- Client side REST: 808,779 assertions passed 7.25s
- Client side REST as json object: 808,773 assertions passed 7.63s
- Client side REST sessions stats: 808,773 assertions passed 7.76s
- Client side REST locked: 808,777 assertions passed 7.11s
- Client side REST main thread: 808,777 assertions passed 24.52s
- Client side REST background thread: 808,777 assertions passed 24.69s
- Client side REST sign with crc 32c: 808,773 assertions passed 7.31s
- Client side REST sign with xxhash: 808,773 assertions passed 7.32s
- Client side REST sign with md 5: 808,773 assertions passed 7.39s
- Client side REST sign with sha 256: 808,773 assertions passed 7.54s
- Client side REST sign with sha 512: 808,773 assertions passed 7.87s
- Client side REST weak authentication: 808,773 assertions passed 6.73s
- Client side REST basic authentication: 808,773 assertions passed 9.61s
- Client side REST custom record layout: 808,773 assertions passed 7.82s
- Client side REST service log to DB: 808,773 assertions passed 9.87s
- Client side json RPC: 808,773 assertions passed 8.03s
- Test over HTTP: 10,987 assertions passed 1.02s
- Security: 139 assertions passed 11.53ms
- Mocks and stubs: 30,030 assertions passed 461.94ms
Total failed: 0 / 14,195,014 - Service oriented architecture PASSED 2m40
3.3. Bidirectional remote connection:
- Websockets protocols: 30,000 assertions passed 100.32ms
- Run http server: 2 assertions passed 17.50ms
- Soa callback on server side: 4,580 assertions passed 24.38ms
- Soa callback via json websockets: 6,898 assertions passed 933.12ms
- Soa callback via binary websockets: 6,898 assertions passed 938.64ms
- Relay start: 4 assertions passed 14.05ms
- Relay soa callback via json websockets: 6,899 assertions passed 2.31s
- Relay connection recreate: 1 assertion passed 7.83ms
- Relay soa callback via binary websockets: 6,899 assertions passed 2.87s
- Relay shutdown: 2 assertions passed 147.55ms
- TRecordVersion: 20,068 assertions passed 555.29ms
Total failed: 0 / 82,251 - Bidirectional remote connection PASSED 7.93s
Generated with: Free Pascal 3.2 64 bit Linux compiler
Time elapsed for all tests: 6m08
Performed 2021-07-09 13:05:15 by root on debian-vm
Total assertions failed for all test suits: 1,003 / 41,837,902
! Some tests FAILED: please correct the code.
Heap dump by heaptrc unit of /home/stephan/Dev/shared/mORMot2/test/fpc/bin/x86_64-linux/mormot2tests
67906225 memory blocks allocated : 18871584597/19017135880
67906225 memory blocks freed : 18871584597/19017135880
0 unfreed memory blocks : 0
True heap size : 786432
True free heap : 786432
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment