diff --git a/test/capsule_interop_cases.dart b/test/capsule_interop_cases.dart new file mode 100644 index 0000000..81c2d9f --- /dev/null +++ b/test/capsule_interop_cases.dart @@ -0,0 +1,91 @@ +// The writer of capsules against Go, in the other direction: the capsules +// that this library writes, opened by Go. test/vectors/capsule_interop.json +// holds the recipes of capsule_interop_support.dart with what Go made of +// each capsule (tool/capsule_interop_go_verdicts.go). Go must open it with +// each credential, alone and together, to the files of the recipe, in the +// byte order of their paths, with their SHA-256 and their mtime as the +// writer stores it, refuse it without a credential, find 16 stanzas in +// INNER_ACCESS_AGE, encode each layer and the .dkk again to the bytes +// written, and, for a seeded sample, write the same bytes itself. A seeded +// sample is written again here and must be the one that Go read. + +import 'package:datekeys/datekeys.dart'; +import 'package:datekeys/src/body.dart' show areaLen; +import 'package:datekeys/src/bytes.dart' show utf8Bytes; +import 'package:test/test.dart'; + +import 'capsule_interop_support.dart'; +import 'capsule_writer_support.dart'; + +/// The files that the recipe [r] puts in its capsule, as Go must open +/// them. +List expectedFiles(Json r) { + final files = [...listOf(r['files'] ?? const [])] + ..sort( + (a, b) => compareBytes( + utf8Bytes(a['path']! as String), + utf8Bytes(b['path']! as String), + ), + ); + return [ + for (final f in files) + { + 'path': f['path'], + 'size': contentOf(f).length, + 'sha256': toHex(sha256Of(contentOf(f))), + if (f['mtime'] case [final int s, _] when s >= 0 && s <= maxMTime) + 'mtime': s, + }, + ]; +} + +/// The tests of the samples of [doc], with the recipes that wrote them. +void interopCases(Json doc, {required bool rewrite}) { + final recipes = {for (final s in interopSamples()) s['name']: s}; + for (final g in listOf(doc['samples'])) { + final r = recipes[g['name']]!; + test(g['name'], () async { + expect(g['reencoded'], isTrue); + final inspect = g['inspect']! as Json; + expect(inspect['format'], 3); + expect(inspect['policy'], r['policy'] ?? 'time_only'); + expect(inspect['note'], r['note'] ?? ''); + final tak = r['policy'] == 'time_and_key'; + expect(g['inner_stanzas'], tak ? 16 : null); + expect(g['dkk_capsule_digest'], r['portable'] == true ? true : null); + expect(g['go_same'], r['random'] == 'seeded' ? true : null); + final comment = (r['comment'] as String? ?? '').replaceAll('\r\n', '\n'); + final opens = listOf(g['opens']); + final names = [for (final o in opens) o['with']]; + expect(names, [ + if (!tak) 'time', + if (tak) ...[ + for (final l in (r['identities'] as List? ?? const [])) 'identity $l', + if (r['words'] != null) 'words', + if (r['portable'] == true) 'portable', + 'all', + 'none', + ], + ]); + for (final o in opens) { + if (o['with'] == 'none') { + expect(o['result'], 'ERR_ACCESS_REQUIRED'); + continue; + } + expect(o['result'], 'ok', reason: '${o['with']}'); + expect(o['files'], expectedFiles(r)); + expect(o['comment'], comment); + expect(o['author'], r['author'] ?? ''); + expect(o['verdicts'], ['F0', 'S0']); + expect(o['area_len'], r['test_area_len'] ?? areaLen); + } + if (rewrite && r['random'] == 'seeded') { + final w = await writeSample(r); + expect(w.dkc.length, g['length_dkc']); + expect(toHex(sha256Of(w.dkc)), g['sha256']); + final dkk = w.dkk; + expect(dkk == null ? null : toHex(sha256Of(dkk)), g['dkk_sha256']); + } + }); + } +} diff --git a/test/capsule_interop_support.dart b/test/capsule_interop_support.dart new file mode 100644 index 0000000..9a1925f --- /dev/null +++ b/test/capsule_interop_support.dart @@ -0,0 +1,125 @@ +// The recipes of the interoperability of the writer of capsules, stage 6b: +// capsules that this library writes and Go opens +// (tool/capsule_interop_dart_samples.dart, tool/capsule_interop_go_verdicts.go, +// test/vectors/capsule_interop.json). They are in the form of the recipes of +// capsule_writer.json (capsule_writer_support.dart), with `random` seeded, +// for a capsule that the tests write again and compare, or secure, for one +// written with the CSPRNG of the platform, as an application writes it, +// which only Go's verdicts describe. They read no file. + +import 'dart:typed_data'; + +import 'package:datekeys/datekeys.dart'; +import 'package:datekeys/src/encrypt3.dart'; +import 'package:datekeys/src/random.dart'; + +import 'capsule_writer_support.dart'; + +const _words = ['faro', 'nube', 'trigo', 'menta', 'barco', 'lince']; + +List _ids(int n) => [for (var i = 0; i < n; i++) 'holder $i']; + +/// The recipes of the samples. +List interopSamples() { + final out = []; + for (final random in ['seeded', 'secure']) { + Json s(String name, Json r) => { + 'name': '$name ($random)', + 'seed': 'capsule interop $name', + 'random': random, + 'round': 1000, + ...r, + }; + out.addAll([ + s('time_only, one file', { + 'files': [ + {'path': 'nota.txt', 'text': 'Hola.\n'}, + ], + 'node': true, + }), + s('time_only, a comment alone, bloque256, area of 512', { + 'comment': 'Una línea.\r\nOtra.', + 'author': 'Ana López', + 'padding': 1, + 'test_vectors': true, + 'test_area_len': 512, + 'node': true, + }), + s('time_and_key, a portable key and a note', { + 'policy': 'time_and_key', + 'portable': true, + 'note': 'Para Ana', + 'files': [ + {'path': 'a.txt', 'text': 'a'}, + {'path': 'b/c.txt', 'text': ''}, + ], + }), + s('time_and_key, fourteen recipients, words and a portable key', { + 'policy': 'time_and_key', + 'identities': _ids(14), + 'words': _words, + 'portable': true, + 'round': 1001, + 'files': [ + {'path': 'x.bin', 'pattern': 70000}, + ], + 'node': false, + }), + s('three MiB in three files, with mtimes', { + 'files': [ + { + 'path': 'grande.bin', + 'pattern': 3 << 20, + 'mtime': [1727712000, 5], + }, + { + 'path': 'fotos/b.jpg', + 'pattern': 65536, + 'mtime': [-1, 0], + }, + {'path': 'fotos/a.jpg', 'pattern': 65535}, + ], + 'node': false, + }), + s('two hundred small files and extensions', { + 'files': [ + for (var i = 0; i < 200; i++) + {'path': 'd${i % 7}/f$i.txt', 'text': 'file $i\n'}, + ], + 'critical': [ + {'id': 'org.example.crit', 'version': 1, 'data': '01'}, + ], + 'control_noncritical': [ + {'id': 'org.example.c', 'version': 2}, + ], + 'head_noncritical': [ + {'id': 'org.example.h', 'version': 1, 'data': 'ff'}, + ], + 'node': false, + }), + ]); + } + return out; +} + +/// The capsule of the sample [s] and its .dkk, if any: written with the +/// seeded source of its seed, or with [secureRandom]. +Future<({Uint8List dkc, Uint8List? dkk, EncryptResult result})> writeSample( + Json s, +) async { + final random = s['random'] == 'seeded' + ? seeded(s['seed']! as String) + : secureRandom; + final sink = CapsuleSink(); + final res = await encryptFiles( + sink, + sourcesOf(s), + optionsOf(s, random, Hooks(s, const {})), + ); + final k = res.portableKey; + return ( + dkc: sink.bytes, + dkk: k == null ? null : encodeAccessKey(k), + result: res, + ); +} diff --git a/test/capsule_interop_test.dart b/test/capsule_interop_test.dart new file mode 100644 index 0000000..a41945e --- /dev/null +++ b/test/capsule_interop_test.dart @@ -0,0 +1,14 @@ +// The capsules that this library writes, opened by Go: the samples of +// test/vectors/capsule_interop.json that are not marked node false, from a +// Dart constant, so that they also run compiled to JavaScript, the seeded +// ones written again (see capsule_interop_cases.dart). + +import 'dart:convert'; + +import 'capsule_interop_cases.dart'; +import 'capsule_writer_support.dart'; +import 'vectors/capsule_interop.g.dart'; + +void main() { + interopCases(jsonDecode(capsuleInteropJson) as Json, rewrite: true); +} diff --git a/test/capsule_interop_vm_test.dart b/test/capsule_interop_vm_test.dart new file mode 100644 index 0000000..c913d94 --- /dev/null +++ b/test/capsule_interop_vm_test.dart @@ -0,0 +1,32 @@ +// The capsules that this library writes, opened by Go: every sample of +// test/vectors/capsule_interop.json, the seeded ones written again (see +// capsule_interop_cases.dart). +@TestOn('vm') +library; + +import 'dart:convert'; +import 'dart:io'; + +import 'package:test/test.dart'; + +import 'capsule_interop_cases.dart'; +import 'capsule_writer_support.dart'; +import 'vectors/capsule_interop.g.dart'; + +void main() { + final doc = jsonDecode( + File('test/vectors/capsule_interop.json').readAsStringSync(), + ) as Json; + + test('the Dart constant holds the samples not marked node false', () { + expect((jsonDecode(capsuleInteropJson) as Json)['samples'], [ + for (final s in listOf(doc['samples'])) + if (!(s['name']! as String).contains('fourteen') && + !(s['name']! as String).contains('MiB') && + !(s['name']! as String).contains('two hundred')) + s, + ]); + }); + + interopCases(doc, rewrite: true); +} diff --git a/test/vectors/capsule_interop.g.dart b/test/vectors/capsule_interop.g.dart new file mode 100644 index 0000000..74bb138 --- /dev/null +++ b/test/vectors/capsule_interop.g.dart @@ -0,0 +1,293 @@ +// Generated by tool/capsule_interop_go_verdicts.go: the samples of +// test/vectors/capsule_interop.json that are not marked node false, for the +// tests that also run compiled to JavaScript. Do not edit. + +/// Part of test/vectors/capsule_interop.json. +const capsuleInteropJson = r''' +{ + "description": "Capsules that datekeys-dart writes from the recipes of test/capsule_interop_support.dart, with SeededRandomSource or the CSPRNG of the platform, inspected and opened by capsule.Open of datekeys-go with each credential, all together and none, their layers encoded again, and, for a seeded one, whether capsule.EncryptFiles writes the same bytes (tool/capsule_interop_go_verdicts.go).", + "go": "go1.26.8", + "samples": [ + { + "go_same": true, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 35611, + "name": "time_only, one file (seeded)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "nota.txt", + "sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685", + "size": 6 + } + ], + "head": "a4006d646174656b6579732d6865616401010258209fb051d18640caa5ceb7d6a6a57c8bf382074f98ae7abfd6bb9b0fcf45b221db0581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685", + "length": 32893, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "e2e1c4630d5bcebef2841be25db6374c611e1fcbf1d10a58a497e38099c776a8" + }, + { + "go_same": true, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 1563, + "name": "time_only, a comment alone, bloque256, area of 512 (seeded)", + "opens": [ + { + "area_len": 512, + "author": "Ana López", + "comment": "Una línea.\nOtra.", + "files": [], + "head": "a5006d646174656b6579732d68656164010102582062d6033aa55ff10494692a79747fbec2f33e64b01aa801ec7ac2cfcc4055a9fc0371556e61206cc3ad6e65612e0a4f7472612e046a416e61204cc3b370657a", + "length": 608, + "padded_length": 768, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "3286ee451273bb6e54eb790f865a3c3ba17c53ee175fb3be73c364579a1a99a8" + }, + { + "dkk_capsule_digest": true, + "dkk_sha256": "a017be51ababc550ed158e52cf86a5b8a27b2240ba79c700a8262df21d78c47b", + "go_same": true, + "inner_stanzas": 16, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "Para Ana", + "policy": "time_and_key" + }, + "length_dkc": 37311, + "name": "time_and_key, a portable key and a note (seeded)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "a.txt", + "sha256": "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb", + "size": 1 + }, + { + "path": "b/c.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "size": 0 + } + ], + "head": "a4006d646174656b6579732d6865616401010258208bcd6ff1800431142e3e1f98e3b14290ace6de0f16e727bf879418d5942f6eef0582a50065612e747874010102000301045820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bba50067622f632e747874010002010301045820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "length": 32936, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "portable" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "a.txt", + "sha256": "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb", + "size": 1 + }, + { + "path": "b/c.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "size": 0 + } + ], + "head": "a4006d646174656b6579732d6865616401010258208bcd6ff1800431142e3e1f98e3b14290ace6de0f16e727bf879418d5942f6eef0582a50065612e747874010102000301045820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bba50067622f632e747874010002010301045820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "length": 32936, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "all" + }, + { + "result": "ERR_ACCESS_REQUIRED", + "step": 9, + "with": "none" + } + ], + "reencoded": true, + "sha256": "6042d6946aa143ce85e36c23b9a48acb2b00a784096e95747bb23522887658d9" + }, + { + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 35611, + "name": "time_only, one file (secure)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "nota.txt", + "sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685", + "size": 6 + } + ], + "head": "a4006d646174656b6579732d686561640101025820dcb97599496389439e89748e891f1cd69b4fb062ff8a38040c8661cd0ab12e420581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685", + "length": 32893, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "114c64f7a00b4a71d4b502e7fad42a01c5a217e87d6d6c3404a871bb9410832f" + }, + { + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 1563, + "name": "time_only, a comment alone, bloque256, area of 512 (secure)", + "opens": [ + { + "area_len": 512, + "author": "Ana López", + "comment": "Una línea.\nOtra.", + "files": [], + "head": "a5006d646174656b6579732d686561640101025820fe30146357dbeb109540a68e37157cdbf021fbc2dc028057ac8196b1a847fc3d0371556e61206cc3ad6e65612e0a4f7472612e046a416e61204cc3b370657a", + "length": 608, + "padded_length": 768, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "1f424c1171a89f89270d40a1fc88b922875c8437ced6806c746e166cc31574ab" + }, + { + "dkk_capsule_digest": true, + "dkk_sha256": "6421639469f03c3c51d7d06c109e0a2b8243be6ca84eb263636c1d1eadf47a0e", + "inner_stanzas": 16, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "Para Ana", + "policy": "time_and_key" + }, + "length_dkc": 37311, + "name": "time_and_key, a portable key and a note (secure)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "a.txt", + "sha256": "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb", + "size": 1 + }, + { + "path": "b/c.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "size": 0 + } + ], + "head": "a4006d646174656b6579732d6865616401010258201a27afd7c4ccd1decf7cb2c73082e64ecd1d734e1257817ade1443d0d19dc02b0582a50065612e747874010102000301045820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bba50067622f632e747874010002010301045820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "length": 32936, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "portable" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "a.txt", + "sha256": "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb", + "size": 1 + }, + { + "path": "b/c.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "size": 0 + } + ], + "head": "a4006d646174656b6579732d6865616401010258201a27afd7c4ccd1decf7cb2c73082e64ecd1d734e1257817ade1443d0d19dc02b0582a50065612e747874010102000301045820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bba50067622f632e747874010002010301045820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "length": 32936, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "all" + }, + { + "result": "ERR_ACCESS_REQUIRED", + "step": 9, + "with": "none" + } + ], + "reencoded": true, + "sha256": "4dd1abec3da92586b62eaf54403a1f46f43d187736bcdfc575860ab1b0e38220" + } + ], + "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4" +} +'''; diff --git a/test/vectors/capsule_interop.json b/test/vectors/capsule_interop.json new file mode 100644 index 0000000..aa463ad --- /dev/null +++ b/test/vectors/capsule_interop.json @@ -0,0 +1,3199 @@ +{ + "description": "Capsules that datekeys-dart writes from the recipes of test/capsule_interop_support.dart, with SeededRandomSource or the CSPRNG of the platform, inspected and opened by capsule.Open of datekeys-go with each credential, all together and none, their layers encoded again, and, for a seeded one, whether capsule.EncryptFiles writes the same bytes (tool/capsule_interop_go_verdicts.go).", + "go": "go1.26.8", + "samples": [ + { + "go_same": true, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 35611, + "name": "time_only, one file (seeded)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "nota.txt", + "sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685", + "size": 6 + } + ], + "head": "a4006d646174656b6579732d6865616401010258209fb051d18640caa5ceb7d6a6a57c8bf382074f98ae7abfd6bb9b0fcf45b221db0581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685", + "length": 32893, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "e2e1c4630d5bcebef2841be25db6374c611e1fcbf1d10a58a497e38099c776a8" + }, + { + "go_same": true, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 1563, + "name": "time_only, a comment alone, bloque256, area of 512 (seeded)", + "opens": [ + { + "area_len": 512, + "author": "Ana López", + "comment": "Una línea.\nOtra.", + "files": [], + "head": "a5006d646174656b6579732d68656164010102582062d6033aa55ff10494692a79747fbec2f33e64b01aa801ec7ac2cfcc4055a9fc0371556e61206cc3ad6e65612e0a4f7472612e046a416e61204cc3b370657a", + "length": 608, + "padded_length": 768, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "3286ee451273bb6e54eb790f865a3c3ba17c53ee175fb3be73c364579a1a99a8" + }, + { + "dkk_capsule_digest": true, + "dkk_sha256": "a017be51ababc550ed158e52cf86a5b8a27b2240ba79c700a8262df21d78c47b", + "go_same": true, + "inner_stanzas": 16, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "Para Ana", + "policy": "time_and_key" + }, + "length_dkc": 37311, + "name": "time_and_key, a portable key and a note (seeded)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "a.txt", + "sha256": "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb", + "size": 1 + }, + { + "path": "b/c.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "size": 0 + } + ], + "head": "a4006d646174656b6579732d6865616401010258208bcd6ff1800431142e3e1f98e3b14290ace6de0f16e727bf879418d5942f6eef0582a50065612e747874010102000301045820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bba50067622f632e747874010002010301045820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "length": 32936, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "portable" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "a.txt", + "sha256": "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb", + "size": 1 + }, + { + "path": "b/c.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "size": 0 + } + ], + "head": "a4006d646174656b6579732d6865616401010258208bcd6ff1800431142e3e1f98e3b14290ace6de0f16e727bf879418d5942f6eef0582a50065612e747874010102000301045820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bba50067622f632e747874010002010301045820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "length": 32936, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "all" + }, + { + "result": "ERR_ACCESS_REQUIRED", + "step": 9, + "with": "none" + } + ], + "reencoded": true, + "sha256": "6042d6946aa143ce85e36c23b9a48acb2b00a784096e95747bb23522887658d9" + }, + { + "dkk_capsule_digest": true, + "dkk_sha256": "af6d5129db4ff5c5e27350062a6511c163251e6bc7570d3210c08d6f79c88239", + "go_same": true, + "inner_stanzas": 16, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMX0", + "format": 3, + "note": "", + "policy": "time_and_key" + }, + "length_dkc": 106929, + "name": "time_and_key, fourteen recipients, words and a portable key (seeded)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 0" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 1" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 2" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 3" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 4" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 5" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 6" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 7" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 8" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 9" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 10" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 11" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 12" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 13" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "words" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "portable" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820c0f96eef76b324aa6a678f89f68018fa45a61bc204c8acba0d9d6adbef33598b0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "all" + }, + { + "result": "ERR_ACCESS_REQUIRED", + "step": 9, + "with": "none" + } + ], + "reencoded": true, + "sha256": "8a4fdaf086ce6bd84294e12826e9e9803c619ff4ba4dee8558f6585a97a07eba" + }, + { + "go_same": true, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 3343931, + "name": "three MiB in three files, with mtimes (seeded)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "fotos/a.jpg", + "sha256": "91d0a03af0efeeb5568bbdcf2bd7fe1c9d932c4d22db3643c7586c1bd1afbeb1", + "size": 65535 + }, + { + "path": "fotos/b.jpg", + "sha256": "ef4636928161808e87035fa51983821677527ccd9661991c5d0126a778b2268a", + "size": 65536 + }, + { + "mtime": 1727712000, + "path": "grande.bin", + "sha256": "bfe74807c87a64433433238baa29cb800d0e4b5f3b8c96037ab15b620e9633c5", + "size": 3145728 + } + ], + "head": "a4006d646174656b6579732d68656164010102582078a7a397da341a98dfa896031be4d470a212c1b5c221bfa9a33c50e6a23e69bb0583a5006b666f746f732f612e6a70670119ffff02000319ffff04582091d0a03af0efeeb5568bbdcf2bd7fe1c9d932c4d22db3643c7586c1bd1afbeb1a5006b666f746f732f622e6a7067011a000100000219ffff031a0001ffff045820ef4636928161808e87035fa51983821677527ccd9661991c5d0126a778b2268aa6006a6772616e64652e62696e011a00300000021a0001ffff031a0031ffff045820bfe74807c87a64433433238baa29cb800d0e4b5f3b8c96037ab15b620e9633c5051a66facb00", + "length": 3309830, + "padded_length": 3342336, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "88318cbc13c7fe238606b2e723d587b80c613726a1fd0f46fd57482126cd1b0f" + }, + { + "go_same": true, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 47945, + "name": "two hundred small files and extensions (seeded)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "d0/f0.txt", + "sha256": "41b3fbbe4d8d6bbd44c4b610bb678c55dd53fdbe9a3ed257057ee1edf5136f5b", + "size": 7 + }, + { + "path": "d0/f105.txt", + "sha256": "4f3e0bb09d500f469dbfb5fb72cfcf53a169e083dd494e73eb6924cdf231e499", + "size": 9 + }, + { + "path": "d0/f112.txt", + "sha256": "6acf5782d82b9d7a2478cda798d49712039dc434487a73804d783bf03fcfd354", + "size": 9 + }, + { + "path": "d0/f119.txt", + "sha256": "c8755fc85a160da3d7389986a8e9b1d9d55fda9155821d91ee4836c6a360ef35", + "size": 9 + }, + { + "path": "d0/f126.txt", + "sha256": "cbeb37392c68bb3ffe974c2e582b8937f2c2ac52b086011556af5a60756b2726", + "size": 9 + }, + { + "path": "d0/f133.txt", + "sha256": "8d07f7124cdb2955a0d0bcf11538588e9e74eed7eb186202b1cad83a88f8cadb", + "size": 9 + }, + { + "path": "d0/f14.txt", + "sha256": "2268d99d3a0f71eaed46a3b3bd2cc6338ec529187a9b1c486389a7fe4de4cd66", + "size": 8 + }, + { + "path": "d0/f140.txt", + "sha256": "9c2eeeb40782620ddc99b45427f5efd163539a1eadc6edb8bef17c6712194550", + "size": 9 + }, + { + "path": "d0/f147.txt", + "sha256": "d423a967312b02a76a7ebf875d4acd8bbbdbc7fcfa2b6aa06e8e8a273e716aa1", + "size": 9 + }, + { + "path": "d0/f154.txt", + "sha256": "59368707328f3bc5fcafd7017735829561d1f42a856841294030911d58b5cb00", + "size": 9 + }, + { + "path": "d0/f161.txt", + "sha256": "75f57c75e8bfb67560ff81d43afe2cbeed7aca63ffb1392f764343b84852cc98", + "size": 9 + }, + { + "path": "d0/f168.txt", + "sha256": "7ce4c92300fca5ab9651730a68b1aa14c91935399f1780e039e100ea3a9ed958", + "size": 9 + }, + { + "path": "d0/f175.txt", + "sha256": "3a4b626a6b113df923dd3c5b6264a869a83df2a2b1b516b430ab5edf7cad40f6", + "size": 9 + }, + { + "path": "d0/f182.txt", + "sha256": "7e41adbd7d4fd09b8194d83acb8b1807dd5a087427d95b4531fe15713a8b8477", + "size": 9 + }, + { + "path": "d0/f189.txt", + "sha256": "5018537bb31be77037ed7f99104cd9843a8a6ac96f8f5f23a5d2385f958c1c5d", + "size": 9 + }, + { + "path": "d0/f196.txt", + "sha256": "eec292b7ff9c97cf452a274092ddbc087bebd817905bd4d7a3257a1adb293f45", + "size": 9 + }, + { + "path": "d0/f21.txt", + "sha256": "fed050590e00099bbb2205a4fd738ff2e640ac843393dbae6a9084e35b081255", + "size": 8 + }, + { + "path": "d0/f28.txt", + "sha256": "6767b224456213bce1271b2ab80ce439cd1a1f0cad956cced679131da320e7ad", + "size": 8 + }, + { + "path": "d0/f35.txt", + "sha256": "9f2d3105d5198a772957876b25a16adc1f9dc87b3aaa43f27891bdd33fe64c96", + "size": 8 + }, + { + "path": "d0/f42.txt", + "sha256": "ac31495c9d46e2e3a8f6798bbaf0b810906bb1f05496d2f27bf99ee35eef1c82", + "size": 8 + }, + { + "path": "d0/f49.txt", + "sha256": "2b37d68a1483bb3eeb37be0185f8be36499abe12c45f5cab77b474c5b86655b0", + "size": 8 + }, + { + "path": "d0/f56.txt", + "sha256": "dfa484b53abde12a6858865abf08ba5ca20a65433969c512af3b20e7167e981d", + "size": 8 + }, + { + "path": "d0/f63.txt", + "sha256": "30ac3a89651412ddfb1cab867ef6aa9c99b118cc098203b8a1eb5c62a10c0054", + "size": 8 + }, + { + "path": "d0/f7.txt", + "sha256": "cdc4f52fe4cd55696b22732e3d35afd38e2905551ac4f7b4ceb44357740b62ea", + "size": 7 + }, + { + "path": "d0/f70.txt", + "sha256": "39c5680e7049e9f3ddeeee654f7c72b1b75809b714a027a61fc5f5874c2baefd", + "size": 8 + }, + { + "path": "d0/f77.txt", + "sha256": "d881d57782c4ac6e8890f1a6a686fce65422f450cc511951f50930839c8e34e8", + "size": 8 + }, + { + "path": "d0/f84.txt", + "sha256": "cccdfdc5832f58221b58881f5243b4e002d111d6454f0049b76e8bded207f892", + "size": 8 + }, + { + "path": "d0/f91.txt", + "sha256": "815335949da3bcc264941b9e20c5a135c68560b58ccb760db05ab3dd704b4b06", + "size": 8 + }, + { + "path": "d0/f98.txt", + "sha256": "3e29ac43b6dee94fe38678021ef7a39c8f7bfa9a53ac59a6acbdc1ad0e6f04d5", + "size": 8 + }, + { + "path": "d1/f1.txt", + "sha256": "5f5d584c5857d85af911ade1b2ae7cb593c17654282091f3ace31efd9e951360", + "size": 7 + }, + { + "path": "d1/f106.txt", + "sha256": "49136d4375c4abe96fb300a57496bdd5b61c467580fe3e9bcede4d1745d9fde7", + "size": 9 + }, + { + "path": "d1/f113.txt", + "sha256": "7222140c148966cf2ce92b9b24ef0ccea6edf14a71699ac14e55868ca822fa07", + "size": 9 + }, + { + "path": "d1/f120.txt", + "sha256": "9ced7138e6a73c5ad4bab9c48ffd4f7e1b3cec7c44a085e371d44487a2d901d1", + "size": 9 + }, + { + "path": "d1/f127.txt", + "sha256": "33bfbbb34e5d8393fcc22b9b386dc2144c37d94899a9701140ed6fad314915cf", + "size": 9 + }, + { + "path": "d1/f134.txt", + "sha256": "2e05b8f4b8e288451e45c29f4df65f4e3bf4a4503bce2ce0ea5064587d9f1c70", + "size": 9 + }, + { + "path": "d1/f141.txt", + "sha256": "fb2eb6253a6e95c976339a2066c839c6cbcf5c12ac8db328d6f034a3b3006cb1", + "size": 9 + }, + { + "path": "d1/f148.txt", + "sha256": "01756a03bfa71b5623700a5d17e821cecaf375d73032147f0be7e99f4d97f16c", + "size": 9 + }, + { + "path": "d1/f15.txt", + "sha256": "7e929ce0b4344d6061ffac95189b9abeee4189e292cbd3ac42a1b0e5afefceb4", + "size": 8 + }, + { + "path": "d1/f155.txt", + "sha256": "e2d0f4ae99608dd0a37f14ac939c80504a09aa1576d8847499eaf21a3b9b7f9f", + "size": 9 + }, + { + "path": "d1/f162.txt", + "sha256": "2c6d4a5ce072bb47405feabf0b58fe172024bb36f6430f4a1ab43e9a1a280f50", + "size": 9 + }, + { + "path": "d1/f169.txt", + "sha256": "313f798f953bf1da964978271398c2ba49d09b438ef12a9fd1b3bcc08515a43b", + "size": 9 + }, + { + "path": "d1/f176.txt", + "sha256": "6d04398e96f36894e1fe442c69824f101c171a65b90d748f66850d12eff749e9", + "size": 9 + }, + { + "path": "d1/f183.txt", + "sha256": "455ca316005527b9e877d1f6f088f5ea5b4eac0804440ccd8ad222a80412554f", + "size": 9 + }, + { + "path": "d1/f190.txt", + "sha256": "4fc16199dff1550b40718a97dfd16b33c07fdf17dbef71b0b2b7ef2d47896d72", + "size": 9 + }, + { + "path": "d1/f197.txt", + "sha256": "632992c486d06709948a77c3e4c3b19f6bd4c26e363f783ceb743c2e462f9980", + "size": 9 + }, + { + "path": "d1/f22.txt", + "sha256": "43ddc00b68011db10f935b43e2ec8ec790504e3aa3c1a30f9c993c4019786ed0", + "size": 8 + }, + { + "path": "d1/f29.txt", + "sha256": "97e657de832e05c4919741d3a660c685268cd9bebf3b18812fe9de7fe5b8af21", + "size": 8 + }, + { + "path": "d1/f36.txt", + "sha256": "d780ce84b54230a61c017e1db416a1de000a22af21c63088b941364353e4fe03", + "size": 8 + }, + { + "path": "d1/f43.txt", + "sha256": "bc100569ce0f46b7956f8677794df3b7cd8a5b3b19a0ade20877cf5a83ff949a", + "size": 8 + }, + { + "path": "d1/f50.txt", + "sha256": "0dc499f654ef22a02669732fe392994e310c179bf45561c0081096886f0aa60a", + "size": 8 + }, + { + "path": "d1/f57.txt", + "sha256": "ad262018dcc9abe3e1386e375b9a8499d39a10b09124eb2d075e0ec1f7e52720", + "size": 8 + }, + { + "path": "d1/f64.txt", + "sha256": "dfd8e3fdf747dac7322eb073b87ce8a7ab9bfbd2bd027761bf06d81466aec253", + "size": 8 + }, + { + "path": "d1/f71.txt", + "sha256": "477671748e245576d38ace108d18ac6a649808ef885100caa95c035d8bde3280", + "size": 8 + }, + { + "path": "d1/f78.txt", + "sha256": "53e5c60934a28440da8c3dc8c7bb5aa5eae479651c6735f854683d4e57921baf", + "size": 8 + }, + { + "path": "d1/f8.txt", + "sha256": "3e7e2b6c54af7ff67e199f44eb09494ab201c828ea140470d0327a9155beee78", + "size": 7 + }, + { + "path": "d1/f85.txt", + "sha256": "176585096d98f25070f206490e440771b0bab3c94bf2c01224c1048cf32b1451", + "size": 8 + }, + { + "path": "d1/f92.txt", + "sha256": "e6761e3c8f476e36f386d8e7752ba8d713456363722426f52bceb7de069851d7", + "size": 8 + }, + { + "path": "d1/f99.txt", + "sha256": "15adc41271283c6bf1574d5774ccba97408052d5521fcee06ef3b24786719f54", + "size": 8 + }, + { + "path": "d2/f100.txt", + "sha256": "567dcb69efc1fdedc905b3ebdac54004e690fbfbb33f782b6510b45aea7180fe", + "size": 9 + }, + { + "path": "d2/f107.txt", + "sha256": "adc7ce854049123aee41375f50c9c8880cc130ef9fd21be2547ca0ede52a6c46", + "size": 9 + }, + { + "path": "d2/f114.txt", + "sha256": "bede41b2321bfd095e00cd47d4fd7b50e7f3832309d341f7972fb33b47e37bbc", + "size": 9 + }, + { + "path": "d2/f121.txt", + "sha256": "9ea84e64f9c8d8a3be8a7bf83467514662fdad4d5b64828de50b493fa90fbbab", + "size": 9 + }, + { + "path": "d2/f128.txt", + "sha256": "24033d5cb9509ca26ca9a2f29207ff2c8b8ad66209b02b9f16845a76ecd3fe70", + "size": 9 + }, + { + "path": "d2/f135.txt", + "sha256": "9cd4ca42408e55a62d3c9aac09a6456d9efd6bba09df0811780fedbaee97aa38", + "size": 9 + }, + { + "path": "d2/f142.txt", + "sha256": "e181e0a5162c492babd41d68006c774c1581c23d778b2f6fca1185bc20a5bd0b", + "size": 9 + }, + { + "path": "d2/f149.txt", + "sha256": "98842439283363840cf92dfd920388976d51acf1299878222dcf8c27289a0cd8", + "size": 9 + }, + { + "path": "d2/f156.txt", + "sha256": "34c0a62c38501782b6483cc3955ac86c7eb9943743ea419c865d7817cc235365", + "size": 9 + }, + { + "path": "d2/f16.txt", + "sha256": "341606b8587f7d2db4346c434daabe0335e98c53a0ff25e87629e03f3af2f694", + "size": 8 + }, + { + "path": "d2/f163.txt", + "sha256": "7e7afb0a02c04badcaacaafc5c3da3a0bd85762d513419e47d3df425d9c92da5", + "size": 9 + }, + { + "path": "d2/f170.txt", + "sha256": "3b3b06e06d8e0f4411770ba19f931892ddc1b4a4122099f610fef810d70cb8f6", + "size": 9 + }, + { + "path": "d2/f177.txt", + "sha256": "73d7dfcf1416c54d9f46d1e3415e2d0e5626fe05300c3861e4949f06a0025602", + "size": 9 + }, + { + "path": "d2/f184.txt", + "sha256": "867f067333af2f1e17900c4108aa8db0e7f76c1fb15d505bcd8deb651e86822b", + "size": 9 + }, + { + "path": "d2/f191.txt", + "sha256": "11aec14004789817218c0495571d2e016b08191f14ef95216e938165677ca21b", + "size": 9 + }, + { + "path": "d2/f198.txt", + "sha256": "8d0c04272ea30e3e75b83a976d6ab0515c04405317a293dee86838e495d40549", + "size": 9 + }, + { + "path": "d2/f2.txt", + "sha256": "0b7e1391e807365614c548fd10a4a543cf0654268529f3fe768ed7042624c006", + "size": 7 + }, + { + "path": "d2/f23.txt", + "sha256": "089b58e353e009c38eb69e8d74a8bad4fa834026e68378dacbe904404c20c615", + "size": 8 + }, + { + "path": "d2/f30.txt", + "sha256": "4f8f77b0ea1b891ac5ff615b3aff7d84f52825a24813763ad8c65ab87ca85a9d", + "size": 8 + }, + { + "path": "d2/f37.txt", + "sha256": "f72306e5abea3faa8fc9cea7dd736d70b74c5cf53caa2206b5469e5670679095", + "size": 8 + }, + { + "path": "d2/f44.txt", + "sha256": "e6be5e995093917a541f1bd191af2e626c79261ea381f9a6d372f44ef7ba578c", + "size": 8 + }, + { + "path": "d2/f51.txt", + "sha256": "5130967ce959207bdddbfd1b4dda985228d9c3a76cb16e6369b2666d16302c23", + "size": 8 + }, + { + "path": "d2/f58.txt", + "sha256": "535dbf9fb15305fa31653f3c253ffcd39fcf1af5c78ed17f23b633402b65e624", + "size": 8 + }, + { + "path": "d2/f65.txt", + "sha256": "082ff1286de3865ff96127e5471261dde699dc76e4bd303f1be3b870d13da569", + "size": 8 + }, + { + "path": "d2/f72.txt", + "sha256": "9845310b70e271e394a6fa080e50167de798914d65690e457b6822b90e724617", + "size": 8 + }, + { + "path": "d2/f79.txt", + "sha256": "062d0e188cf636e30ea2ad43f99bd2035e8a78d65c0381900ba46eddf8ae33dc", + "size": 8 + }, + { + "path": "d2/f86.txt", + "sha256": "a6424d87f76bbf50a81137d5e09889ce5df58577847da0cd109236730b9e1dfd", + "size": 8 + }, + { + "path": "d2/f9.txt", + "sha256": "9ab1c487d62413afc31c76ab9865cb9d50585772654047fba84311614a423c95", + "size": 7 + }, + { + "path": "d2/f93.txt", + "sha256": "0540661e24d3c1874cc44672b7b093e5c431fd740d4a90e85bf0cd60e0d643e4", + "size": 8 + }, + { + "path": "d3/f10.txt", + "sha256": "c2756086b5d70a1bcd6da71277f1238568b3c35aaacdf9e10e426d1876022e0d", + "size": 8 + }, + { + "path": "d3/f101.txt", + "sha256": "dd6a1f7191741a0cfddfa89df738fa61aed219e5885686f2caa1a942cecf4267", + "size": 9 + }, + { + "path": "d3/f108.txt", + "sha256": "eefe2e79329682f1b489aae7958550652309ed57aa5571c539eadc0b4818c226", + "size": 9 + }, + { + "path": "d3/f115.txt", + "sha256": "2ba0628717b9fa05da27ec4cf8390c0326b1ecd7a5149778581e54fb59021e70", + "size": 9 + }, + { + "path": "d3/f122.txt", + "sha256": "b47b8d4eae24cbde73d98888af6f36ffe18a3cce87a07e9517af3c56a3371e2d", + "size": 9 + }, + { + "path": "d3/f129.txt", + "sha256": "cfe68167128d47fbfc68dabb8451b99eaac4d7299e5b933fa88eb3e06cd22685", + "size": 9 + }, + { + "path": "d3/f136.txt", + "sha256": "dad2f356bedd34dc96d93f619bae73d8968345f5ffe340df4773f2b94dcbff26", + "size": 9 + }, + { + "path": "d3/f143.txt", + "sha256": "b609cfbf652bd657d1d05447ec3d24ab294e5dc9c9783ffca98bd681721a0c0b", + "size": 9 + }, + { + "path": "d3/f150.txt", + "sha256": "f010bb80606208ab8f268f42e8f6e30fad02b1e140ae43173a22652d46bbb604", + "size": 9 + }, + { + "path": "d3/f157.txt", + "sha256": "63b7c778d13b1759adcca4efc7a34307fe2dc054a970c1279b4083dfc203d268", + "size": 9 + }, + { + "path": "d3/f164.txt", + "sha256": "abe079b3340205b40ca5bfe4f7924618e035f1c0e6f34f92893042bfcb310f00", + "size": 9 + }, + { + "path": "d3/f17.txt", + "sha256": "2d4b67d07f5e4744906350ab1cb00c3494993493b5f46f5525e6c2156ff24c1d", + "size": 8 + }, + { + "path": "d3/f171.txt", + "sha256": "093c602208eac6cd0c56bd208814454d9a222a5a017ce98dbf59c7c855fdf81d", + "size": 9 + }, + { + "path": "d3/f178.txt", + "sha256": "f84a1f194cefcadfd581d0412230c81f0b34ac1a2c8e74a7625d4c0a23583fc6", + "size": 9 + }, + { + "path": "d3/f185.txt", + "sha256": "2178f918f7578907e2dbcf6989161213e658e2c8bd40dd4f90048225e4ced61d", + "size": 9 + }, + { + "path": "d3/f192.txt", + "sha256": "35b3f53da7e2cc57784f79e2a853f351d38a27386a43c8586e9b34a2d09289e2", + "size": 9 + }, + { + "path": "d3/f199.txt", + "sha256": "31486896dbcda47f7b20923398eba4748685778a772f4b6044047b5a1215600a", + "size": 9 + }, + { + "path": "d3/f24.txt", + "sha256": "261439a9268d4244e2ef3c73f18448da0b54733f304777a12f172aa7222aa513", + "size": 8 + }, + { + "path": "d3/f3.txt", + "sha256": "b90ae9387f8c3b679f6bbd62649e3b0649fd2f5ab82cc174af8977671367f761", + "size": 7 + }, + { + "path": "d3/f31.txt", + "sha256": "43d4e495d1a4d5d83b9b9c00dcd4830124e9b5aa3cf90fb20b7ee830b8734287", + "size": 8 + }, + { + "path": "d3/f38.txt", + "sha256": "b65a593d5747c47f0ac8f3e6aa4a24c9425f57a628afcc8f4e64376faf0e751c", + "size": 8 + }, + { + "path": "d3/f45.txt", + "sha256": "1d0ae5e29e381e72894924c10a00023f0d248afce54413030eec438cff987253", + "size": 8 + }, + { + "path": "d3/f52.txt", + "sha256": "1c18ad98070cfbe9c316a8c195095675199b9612006d09695f343c52a9a9be79", + "size": 8 + }, + { + "path": "d3/f59.txt", + "sha256": "e64758700932cc17a32331a366ed1e6502a416a3b7af0ef29a0d72c53ec5c834", + "size": 8 + }, + { + "path": "d3/f66.txt", + "sha256": "ffdbf68760876eed5b6b960a7b8e7c342831d6010ef1b56799aa5393a2625007", + "size": 8 + }, + { + "path": "d3/f73.txt", + "sha256": "475e7e16265f77c204b22391b4a861a657cfc9fe40dc367aa9c271894eb22613", + "size": 8 + }, + { + "path": "d3/f80.txt", + "sha256": "84dde9252c0cf1e6dbb579e4991ca5dc88136ca3b0f5d7ac7275d18fedd1bf3a", + "size": 8 + }, + { + "path": "d3/f87.txt", + "sha256": "93cd903bd691b426f2655215fa54649f60e6644bf1c3a1a358bf7447a01c34c1", + "size": 8 + }, + { + "path": "d3/f94.txt", + "sha256": "cdbccb085dd56c5a025953bbf0f86f5a4b3046d3db3f9eaa1e4deea91b46e0ec", + "size": 8 + }, + { + "path": "d4/f102.txt", + "sha256": "d24660dbb6ed408c7eb295940ef0f70a3717a029eafafe44a03863be3060521b", + "size": 9 + }, + { + "path": "d4/f109.txt", + "sha256": "d8b7f3eaf76c85f17dc258b67ca1a8b7e9cf7271f33fc772c4e1fdaa2947f5ab", + "size": 9 + }, + { + "path": "d4/f11.txt", + "sha256": "d71ce34c7d3a21bcc34ca421a1746d4edb5fb5c9ab350989dea7427f44f08be2", + "size": 8 + }, + { + "path": "d4/f116.txt", + "sha256": "328fc2eaa4aeadc9001d0582b90df430e44c4ab906df41966da285866af02720", + "size": 9 + }, + { + "path": "d4/f123.txt", + "sha256": "8d6abf04424c9e22aa98da1866ac1a3ea4740e245fe9da97a7d637b5cd8286a7", + "size": 9 + }, + { + "path": "d4/f130.txt", + "sha256": "e000254945e796fe41bdcd9251e7d444994930c2b3fa2a3247c3b2e67f362150", + "size": 9 + }, + { + "path": "d4/f137.txt", + "sha256": "73dca1b26196a7ea967d42212be854188551fab90b4280c74d919cc02af5b190", + "size": 9 + }, + { + "path": "d4/f144.txt", + "sha256": "c970e4b88d375fd4cf0167768be209188b358e40db31d6931e93930c6c28cd5b", + "size": 9 + }, + { + "path": "d4/f151.txt", + "sha256": "a4dce635dabe6ecec079d608bae3a785ac4d4c4b27ec827786cca10259f45718", + "size": 9 + }, + { + "path": "d4/f158.txt", + "sha256": "58a745a6618004a3bdc59b0e572b72f4bb049fae8e10b2ade51448d50bfc2dd5", + "size": 9 + }, + { + "path": "d4/f165.txt", + "sha256": "890f6f58c726ca28902849ced2760c85ee1e37b079bba70f99a9edfd8275dd96", + "size": 9 + }, + { + "path": "d4/f172.txt", + "sha256": "09407fff8df5f3f1a9bebf94af3d322d93ab371a9e313fea44807a3f4711aaec", + "size": 9 + }, + { + "path": "d4/f179.txt", + "sha256": "4a44fc8cb73298120f1ece7929f1dff313c7425a64372271da03129db0452607", + "size": 9 + }, + { + "path": "d4/f18.txt", + "sha256": "8e6210b234cfd1c105ec3c2f1d5d3ad055f39e2ef21e1cbff1858a804e1b718b", + "size": 8 + }, + { + "path": "d4/f186.txt", + "sha256": "75c64db1ae4191c95e17ca7e1d446c711260c8be977acdc092c4f53b7e4aa486", + "size": 9 + }, + { + "path": "d4/f193.txt", + "sha256": "2954c6523f4708859cdf4729d4fd7fd69254e7b3638f62579f86dbccce840ccf", + "size": 9 + }, + { + "path": "d4/f25.txt", + "sha256": "f52f4b2ac91aae4fcd1b64f49dc2227930b21a927157f854b1bbf8e45061916e", + "size": 8 + }, + { + "path": "d4/f32.txt", + "sha256": "49a44677956305ab5866009cf3613c9ac4213743629c3bfc3485a5389938bbfa", + "size": 8 + }, + { + "path": "d4/f39.txt", + "sha256": "8f7e2ba9aa8bb0e3b00cb077fbf07e36c59ecb43953a3cfc081b72a86b274a37", + "size": 8 + }, + { + "path": "d4/f4.txt", + "sha256": "76f61e3503f81ffc8ccff1db16486d49a5f602267027e5ae85ae17d0c5e041b1", + "size": 7 + }, + { + "path": "d4/f46.txt", + "sha256": "1495341df103b4646853a06bc11b25b8b1439d2ea1a9bbd8d715cf7cef367353", + "size": 8 + }, + { + "path": "d4/f53.txt", + "sha256": "8e249e39dbae59944878eb747535b0defaf21cd324000eb753c7a13844fec833", + "size": 8 + }, + { + "path": "d4/f60.txt", + "sha256": "ce331d109ca966ab9b770406bcdf770ad4a6821d8d6b88fe10a37208b21d874f", + "size": 8 + }, + { + "path": "d4/f67.txt", + "sha256": "816bb320c2d0b980cfa0b6720c14688354deb1b7728bcdef6f8994aadd995d03", + "size": 8 + }, + { + "path": "d4/f74.txt", + "sha256": "f4f5187561b70a68bd3e402eb1e6f185b34d443cedfd1b8fa088d315c76e882e", + "size": 8 + }, + { + "path": "d4/f81.txt", + "sha256": "28f5442c54b7a84a3aa29d67d36be040ec4ddf8c8c2bf73eedb2df3565cf25be", + "size": 8 + }, + { + "path": "d4/f88.txt", + "sha256": "880536a359ec38df26f7fe54e6c31e82059c31c4c519a8ab1828b43af1a2020b", + "size": 8 + }, + { + "path": "d4/f95.txt", + "sha256": "483ddb7525ace65bcbfac757bc06914d9b6c5265ed4c401d7fd912506fd32de5", + "size": 8 + }, + { + "path": "d5/f103.txt", + "sha256": "8fb58d4b76c1dfb0216b739683b2c5e6ae50c18219f04e9127e37e352595d88a", + "size": 9 + }, + { + "path": "d5/f110.txt", + "sha256": "ba130900d50051d0c2b9b73cb3ea7dc8d5ccd0242cb47645a3280f3a1f39d4de", + "size": 9 + }, + { + "path": "d5/f117.txt", + "sha256": "d4c304c746709c7584ce6729f173a745b1e4f4f6530822a4815b7aff90305349", + "size": 9 + }, + { + "path": "d5/f12.txt", + "sha256": "24e274bd433cafe12b1649479db5a742f2805fb616d953dc83b528ab4d9af7ca", + "size": 8 + }, + { + "path": "d5/f124.txt", + "sha256": "6e56ce58714aa020b8b0a42367fbae2c6636769cb064149b368926f9850cf78d", + "size": 9 + }, + { + "path": "d5/f131.txt", + "sha256": "626bc99a69099e2201b39cac323112a57a35fd89cdaa62a4472d421dc418596d", + "size": 9 + }, + { + "path": "d5/f138.txt", + "sha256": "97f4cfce4ba3c929af4e7e9d19d82ec53cba1885c112ee5effb7cc64d955561d", + "size": 9 + }, + { + "path": "d5/f145.txt", + "sha256": "7b5441689b4336cc24b6b972364523a4eeaa36730641495e5b4b9821a4132406", + "size": 9 + }, + { + "path": "d5/f152.txt", + "sha256": "610390a679e9f2fbeeef0ccc064099f0255a9664ecafcb053658a0444c93f968", + "size": 9 + }, + { + "path": "d5/f159.txt", + "sha256": "cc770c856ff94072fab13d09bdd96a59cdb94b31c319896698dccebfa7f73664", + "size": 9 + }, + { + "path": "d5/f166.txt", + "sha256": "64ff3147221878d4ad885ba4c8d213e8901e109944e069f1cc39740197fd8708", + "size": 9 + }, + { + "path": "d5/f173.txt", + "sha256": "6221f76fcfb721501c8e9ad80f5d195a22cb2b959a45454711565c94c5aea527", + "size": 9 + }, + { + "path": "d5/f180.txt", + "sha256": "753083a521a803fdd1673c35f3deb0ac4d55744be6b5dff361bfd140a6ce16fb", + "size": 9 + }, + { + "path": "d5/f187.txt", + "sha256": "4ba786b81404c7c02fe8d8efd3eca60ffa85d4a023e3f557ceece593064498a6", + "size": 9 + }, + { + "path": "d5/f19.txt", + "sha256": "c23c64e866d511e420df8be80dfb96873b8fdd48c01358398d1d156723080ed0", + "size": 8 + }, + { + "path": "d5/f194.txt", + "sha256": "cc3aca3875eda494d1bd89bea43844f845e21be493413d56bf542751f2f0bf39", + "size": 9 + }, + { + "path": "d5/f26.txt", + "sha256": "b3850a429f49d5bddfb1dedd1ab6fe667faf3790247a6a3b2b86298947d65833", + "size": 8 + }, + { + "path": "d5/f33.txt", + "sha256": "111320d3ddfc2d1493ca5f21b32c570d4da8505ab4865daac5cfb8505539a4a7", + "size": 8 + }, + { + "path": "d5/f40.txt", + "sha256": "722a043bec8601a2ab38745adb5563ca8db525e9bd56d71717cbff37351c8ed7", + "size": 8 + }, + { + "path": "d5/f47.txt", + "sha256": "3ea81a90631ed12b32e600a4c5a837166755792eeb47204710a16c401196badb", + "size": 8 + }, + { + "path": "d5/f5.txt", + "sha256": "27c7d24edb77a005c6109792cc4efc120bc2388a5464d54745b99f006d241db9", + "size": 7 + }, + { + "path": "d5/f54.txt", + "sha256": "4b1217dde24476d8ed3a60285fc76cfb000b6a0c07a83e36901e9fd34a419d09", + "size": 8 + }, + { + "path": "d5/f61.txt", + "sha256": "1673e98ce2c22ee1db1d9b82057571939baf4fa8d2213cf7378d93b6b8fcd524", + "size": 8 + }, + { + "path": "d5/f68.txt", + "sha256": "c6eeb00cf9d05ce207678966877371bd9b0809418f043ac6cb7389a7f65e7839", + "size": 8 + }, + { + "path": "d5/f75.txt", + "sha256": "9c980200ba42578fb13c3d76570ca453345b3859cb0a0d4f04dd7f70f3e8c788", + "size": 8 + }, + { + "path": "d5/f82.txt", + "sha256": "0d4f5d01449ed68022b1bf248974f209a1dde15f88c5e19f6368d4b9b8eb268c", + "size": 8 + }, + { + "path": "d5/f89.txt", + "sha256": "bccfb234d56b7bdeea5aad80e72857992b6272c549a509e1ab6a3455c70be6e5", + "size": 8 + }, + { + "path": "d5/f96.txt", + "sha256": "5676eb8ecb8c2888d92182336afd0e12d52e80978006bc3e6ed9928cf39350a5", + "size": 8 + }, + { + "path": "d6/f104.txt", + "sha256": "9194d3e106bf955a3f8233322ecfeadb52f4ba0afb3cdc8d4eef46eeb580e55d", + "size": 9 + }, + { + "path": "d6/f111.txt", + "sha256": "270abf73f351ddd4a60298e8bd8cb6e9cb9c5458d06d6b0dfd0ca02da73fe560", + "size": 9 + }, + { + "path": "d6/f118.txt", + "sha256": "fba935f2ec5d523db903eb39673d56b7608209b2b7e69dd478f6f214520ce568", + "size": 9 + }, + { + "path": "d6/f125.txt", + "sha256": "95f1ac14e397fc478a93f185df9ac80afb7e3f9a409d28b3dd9d5b427c8481c3", + "size": 9 + }, + { + "path": "d6/f13.txt", + "sha256": "daac96fe607d6c1e25b1963bb40aee990184ea338ba509778a61383d9d85cedc", + "size": 8 + }, + { + "path": "d6/f132.txt", + "sha256": "48fcdff37c275cfd2097da313c3e3e9003921db73e7cf9c343d429fa7587f766", + "size": 9 + }, + { + "path": "d6/f139.txt", + "sha256": "02241967d10e9d1d9db3e6fb8a6d3a1b534a958843dacdd3a5f03d93a21e01d7", + "size": 9 + }, + { + "path": "d6/f146.txt", + "sha256": "7b1cd00d3dd7fa3914b87c5d2db2c46c84af0abadc5ab7ab69f5bb68cf5d79ad", + "size": 9 + }, + { + "path": "d6/f153.txt", + "sha256": "9f73a8e120c01057141afe294cd50524be13847af8b3238e9d78eb7d3162a770", + "size": 9 + }, + { + "path": "d6/f160.txt", + "sha256": "c965f29942cbcd8fc478b7d7692ef9edcc95025955aef05a7f70cf99defef3e0", + "size": 9 + }, + { + "path": "d6/f167.txt", + "sha256": "e1871eea15dfed0abfd14c7bd8f9730f2e3b5814b2f449bd289eac2d7a11446f", + "size": 9 + }, + { + "path": "d6/f174.txt", + "sha256": "c44b17b5b41700229da74130be5de5aa531234b902839dded56158c1c0cc8836", + "size": 9 + }, + { + "path": "d6/f181.txt", + "sha256": "add8973630bc336a8bc3f2e2a021576c4b00c36bd1b9602c8144c9e3f0c62f29", + "size": 9 + }, + { + "path": "d6/f188.txt", + "sha256": "313bbbaf88abdeee861df004b23958fcb5458e0f7e61dbc12aefbac003e1947b", + "size": 9 + }, + { + "path": "d6/f195.txt", + "sha256": "f7b2ff581b9399dc6c449d0720d25b879d20ecf44a1fe769e16d76c4958d0552", + "size": 9 + }, + { + "path": "d6/f20.txt", + "sha256": "1dcc6d81aee1b5404b226fef4128baaddcc85e11d133d2d07da8d80325fac590", + "size": 8 + }, + { + "path": "d6/f27.txt", + "sha256": "4f28e94a66a39cc342133f4949ecf51d07a1666e7b9b93a0efba02f8b1a864b7", + "size": 8 + }, + { + "path": "d6/f34.txt", + "sha256": "320a977fa7c0e1bec9b667f1a3f823de8dbbda38238a7af0f0bbddb4e6da25e7", + "size": 8 + }, + { + "path": "d6/f41.txt", + "sha256": "392ea683b9499b24feafc7c757890f15b341c9e714b83219494064162a3cf57b", + "size": 8 + }, + { + "path": "d6/f48.txt", + "sha256": "2dc4a82b786aabeebebfb1bcf8a1beac3e80f4a4ae679b93488e59595c7d4c90", + "size": 8 + }, + { + "path": "d6/f55.txt", + "sha256": "17221add7ec0d4c0dd435ca5664e2bb07baec0d8b9098c3be6beb682ee86d68b", + "size": 8 + }, + { + "path": "d6/f6.txt", + "sha256": "180fa4e69eabbd12afde1390092594798e083d97f779d089cd753363c6905cd0", + "size": 7 + }, + { + "path": "d6/f62.txt", + "sha256": "e5dba0fb9e87d8d5a922182fc2b62fa0ddcd81b9eff8121516da92ab2ef0a442", + "size": 8 + }, + { + "path": "d6/f69.txt", + "sha256": "1da08d04129c8dac6fc65f3f5970e7d083e5040d81bcd931c435ddf53acc8fbe", + "size": 8 + }, + { + "path": "d6/f76.txt", + "sha256": "5116845702d01fba699be5351ca069545ab10ac3bc05b0a3040b120c90d2e6fc", + "size": 8 + }, + { + "path": "d6/f83.txt", + "sha256": "54a9b045bea90a8b195fe7ee026373e14a9449307830a61d9fb41024bd8a6508", + "size": 8 + }, + { + "path": "d6/f90.txt", + "sha256": "b35c1c8f7f30318ca780a3e0f7813ad1e11759cf76834e8786abfd7ceb501c4c", + "size": 8 + }, + { + "path": "d6/f97.txt", + "sha256": "f386b44233418dcd5d2dfedfd5a0cfde8c0d95bb7e72428f9a4b6e940aab36f1", + "size": 8 + } + ], + "head": "a5006d646174656b6579732d686561640101025820b8729c79b275c98fa3502958e189935993ec3b1aea4eb7662dc41a584c341e510598c8a5006964302f66302e74787401070200030704582041b3fbbe4d8d6bbd44c4b610bb678c55dd53fdbe9a3ed257057ee1edf5136f5ba5006b64302f663130352e7478740109020703100458204f3e0bb09d500f469dbfb5fb72cfcf53a169e083dd494e73eb6924cdf231e499a5006b64302f663131322e747874010902100318190458206acf5782d82b9d7a2478cda798d49712039dc434487a73804d783bf03fcfd354a5006b64302f663131392e7478740109021819031822045820c8755fc85a160da3d7389986a8e9b1d9d55fda9155821d91ee4836c6a360ef35a5006b64302f663132362e747874010902182203182b045820cbeb37392c68bb3ffe974c2e582b8937f2c2ac52b086011556af5a60756b2726a5006b64302f663133332e747874010902182b0318340458208d07f7124cdb2955a0d0bcf11538588e9e74eed7eb186202b1cad83a88f8cadba5006a64302f6631342e747874010802183403183c0458202268d99d3a0f71eaed46a3b3bd2cc6338ec529187a9b1c486389a7fe4de4cd66a5006b64302f663134302e747874010902183c0318450458209c2eeeb40782620ddc99b45427f5efd163539a1eadc6edb8bef17c6712194550a5006b64302f663134372e747874010902184503184e045820d423a967312b02a76a7ebf875d4acd8bbbdbc7fcfa2b6aa06e8e8a273e716aa1a5006b64302f663135342e747874010902184e03185704582059368707328f3bc5fcafd7017735829561d1f42a856841294030911d58b5cb00a5006b64302f663136312e747874010902185703186004582075f57c75e8bfb67560ff81d43afe2cbeed7aca63ffb1392f764343b84852cc98a5006b64302f663136382e74787401090218600318690458207ce4c92300fca5ab9651730a68b1aa14c91935399f1780e039e100ea3a9ed958a5006b64302f663137352e74787401090218690318720458203a4b626a6b113df923dd3c5b6264a869a83df2a2b1b516b430ab5edf7cad40f6a5006b64302f663138322e747874010902187203187b0458207e41adbd7d4fd09b8194d83acb8b1807dd5a087427d95b4531fe15713a8b8477a5006b64302f663138392e747874010902187b0318840458205018537bb31be77037ed7f99104cd9843a8a6ac96f8f5f23a5d2385f958c1c5da5006b64302f663139362e747874010902188403188d045820eec292b7ff9c97cf452a274092ddbc087bebd817905bd4d7a3257a1adb293f45a5006a64302f6632312e747874010802188d031895045820fed050590e00099bbb2205a4fd738ff2e640ac843393dbae6a9084e35b081255a5006a64302f6632382e747874010802189503189d0458206767b224456213bce1271b2ab80ce439cd1a1f0cad956cced679131da320e7ada5006a64302f6633352e747874010802189d0318a50458209f2d3105d5198a772957876b25a16adc1f9dc87b3aaa43f27891bdd33fe64c96a5006a64302f6634322e74787401080218a50318ad045820ac31495c9d46e2e3a8f6798bbaf0b810906bb1f05496d2f27bf99ee35eef1c82a5006a64302f6634392e74787401080218ad0318b50458202b37d68a1483bb3eeb37be0185f8be36499abe12c45f5cab77b474c5b86655b0a5006a64302f6635362e74787401080218b50318bd045820dfa484b53abde12a6858865abf08ba5ca20a65433969c512af3b20e7167e981da5006a64302f6636332e74787401080218bd0318c504582030ac3a89651412ddfb1cab867ef6aa9c99b118cc098203b8a1eb5c62a10c0054a5006964302f66372e74787401070218c50318cc045820cdc4f52fe4cd55696b22732e3d35afd38e2905551ac4f7b4ceb44357740b62eaa5006a64302f6637302e74787401080218cc0318d404582039c5680e7049e9f3ddeeee654f7c72b1b75809b714a027a61fc5f5874c2baefda5006a64302f6637372e74787401080218d40318dc045820d881d57782c4ac6e8890f1a6a686fce65422f450cc511951f50930839c8e34e8a5006a64302f6638342e74787401080218dc0318e4045820cccdfdc5832f58221b58881f5243b4e002d111d6454f0049b76e8bded207f892a5006a64302f6639312e74787401080218e40318ec045820815335949da3bcc264941b9e20c5a135c68560b58ccb760db05ab3dd704b4b06a5006a64302f6639382e74787401080218ec0318f40458203e29ac43b6dee94fe38678021ef7a39c8f7bfa9a53ac59a6acbdc1ad0e6f04d5a5006964312f66312e74787401070218f40318fb0458205f5d584c5857d85af911ade1b2ae7cb593c17654282091f3ace31efd9e951360a5006b64312f663130362e74787401090218fb0319010404582049136d4375c4abe96fb300a57496bdd5b61c467580fe3e9bcede4d1745d9fde7a5006b64312f663131332e7478740109021901040319010d0458207222140c148966cf2ce92b9b24ef0ccea6edf14a71699ac14e55868ca822fa07a5006b64312f663132302e74787401090219010d031901160458209ced7138e6a73c5ad4bab9c48ffd4f7e1b3cec7c44a085e371d44487a2d901d1a5006b64312f663132372e7478740109021901160319011f04582033bfbbb34e5d8393fcc22b9b386dc2144c37d94899a9701140ed6fad314915cfa5006b64312f663133342e74787401090219011f031901280458202e05b8f4b8e288451e45c29f4df65f4e3bf4a4503bce2ce0ea5064587d9f1c70a5006b64312f663134312e74787401090219012803190131045820fb2eb6253a6e95c976339a2066c839c6cbcf5c12ac8db328d6f034a3b3006cb1a5006b64312f663134382e7478740109021901310319013a04582001756a03bfa71b5623700a5d17e821cecaf375d73032147f0be7e99f4d97f16ca5006a64312f6631352e74787401080219013a031901420458207e929ce0b4344d6061ffac95189b9abeee4189e292cbd3ac42a1b0e5afefceb4a5006b64312f663135352e7478740109021901420319014b045820e2d0f4ae99608dd0a37f14ac939c80504a09aa1576d8847499eaf21a3b9b7f9fa5006b64312f663136322e74787401090219014b031901540458202c6d4a5ce072bb47405feabf0b58fe172024bb36f6430f4a1ab43e9a1a280f50a5006b64312f663136392e7478740109021901540319015d045820313f798f953bf1da964978271398c2ba49d09b438ef12a9fd1b3bcc08515a43ba5006b64312f663137362e74787401090219015d031901660458206d04398e96f36894e1fe442c69824f101c171a65b90d748f66850d12eff749e9a5006b64312f663138332e7478740109021901660319016f045820455ca316005527b9e877d1f6f088f5ea5b4eac0804440ccd8ad222a80412554fa5006b64312f663139302e74787401090219016f031901780458204fc16199dff1550b40718a97dfd16b33c07fdf17dbef71b0b2b7ef2d47896d72a5006b64312f663139372e74787401090219017803190181045820632992c486d06709948a77c3e4c3b19f6bd4c26e363f783ceb743c2e462f9980a5006a64312f6632322e7478740108021901810319018904582043ddc00b68011db10f935b43e2ec8ec790504e3aa3c1a30f9c993c4019786ed0a5006a64312f6632392e7478740108021901890319019104582097e657de832e05c4919741d3a660c685268cd9bebf3b18812fe9de7fe5b8af21a5006a64312f6633362e74787401080219019103190199045820d780ce84b54230a61c017e1db416a1de000a22af21c63088b941364353e4fe03a5006a64312f6634332e747874010802190199031901a1045820bc100569ce0f46b7956f8677794df3b7cd8a5b3b19a0ade20877cf5a83ff949aa5006a64312f6635302e7478740108021901a1031901a90458200dc499f654ef22a02669732fe392994e310c179bf45561c0081096886f0aa60aa5006a64312f6635372e7478740108021901a9031901b1045820ad262018dcc9abe3e1386e375b9a8499d39a10b09124eb2d075e0ec1f7e52720a5006a64312f6636342e7478740108021901b1031901b9045820dfd8e3fdf747dac7322eb073b87ce8a7ab9bfbd2bd027761bf06d81466aec253a5006a64312f6637312e7478740108021901b9031901c1045820477671748e245576d38ace108d18ac6a649808ef885100caa95c035d8bde3280a5006a64312f6637382e7478740108021901c1031901c904582053e5c60934a28440da8c3dc8c7bb5aa5eae479651c6735f854683d4e57921bafa5006964312f66382e7478740107021901c9031901d00458203e7e2b6c54af7ff67e199f44eb09494ab201c828ea140470d0327a9155beee78a5006a64312f6638352e7478740108021901d0031901d8045820176585096d98f25070f206490e440771b0bab3c94bf2c01224c1048cf32b1451a5006a64312f6639322e7478740108021901d8031901e0045820e6761e3c8f476e36f386d8e7752ba8d713456363722426f52bceb7de069851d7a5006a64312f6639392e7478740108021901e0031901e804582015adc41271283c6bf1574d5774ccba97408052d5521fcee06ef3b24786719f54a5006b64322f663130302e7478740109021901e8031901f1045820567dcb69efc1fdedc905b3ebdac54004e690fbfbb33f782b6510b45aea7180fea5006b64322f663130372e7478740109021901f1031901fa045820adc7ce854049123aee41375f50c9c8880cc130ef9fd21be2547ca0ede52a6c46a5006b64322f663131342e7478740109021901fa03190203045820bede41b2321bfd095e00cd47d4fd7b50e7f3832309d341f7972fb33b47e37bbca5006b64322f663132312e7478740109021902030319020c0458209ea84e64f9c8d8a3be8a7bf83467514662fdad4d5b64828de50b493fa90fbbaba5006b64322f663132382e74787401090219020c0319021504582024033d5cb9509ca26ca9a2f29207ff2c8b8ad66209b02b9f16845a76ecd3fe70a5006b64322f663133352e7478740109021902150319021e0458209cd4ca42408e55a62d3c9aac09a6456d9efd6bba09df0811780fedbaee97aa38a5006b64322f663134322e74787401090219021e03190227045820e181e0a5162c492babd41d68006c774c1581c23d778b2f6fca1185bc20a5bd0ba5006b64322f663134392e7478740109021902270319023004582098842439283363840cf92dfd920388976d51acf1299878222dcf8c27289a0cd8a5006b64322f663135362e7478740109021902300319023904582034c0a62c38501782b6483cc3955ac86c7eb9943743ea419c865d7817cc235365a5006a64322f6631362e74787401080219023903190241045820341606b8587f7d2db4346c434daabe0335e98c53a0ff25e87629e03f3af2f694a5006b64322f663136332e7478740109021902410319024a0458207e7afb0a02c04badcaacaafc5c3da3a0bd85762d513419e47d3df425d9c92da5a5006b64322f663137302e74787401090219024a031902530458203b3b06e06d8e0f4411770ba19f931892ddc1b4a4122099f610fef810d70cb8f6a5006b64322f663137372e7478740109021902530319025c04582073d7dfcf1416c54d9f46d1e3415e2d0e5626fe05300c3861e4949f06a0025602a5006b64322f663138342e74787401090219025c03190265045820867f067333af2f1e17900c4108aa8db0e7f76c1fb15d505bcd8deb651e86822ba5006b64322f663139312e7478740109021902650319026e04582011aec14004789817218c0495571d2e016b08191f14ef95216e938165677ca21ba5006b64322f663139382e74787401090219026e031902770458208d0c04272ea30e3e75b83a976d6ab0515c04405317a293dee86838e495d40549a5006964322f66322e7478740107021902770319027e0458200b7e1391e807365614c548fd10a4a543cf0654268529f3fe768ed7042624c006a5006a64322f6632332e74787401080219027e03190286045820089b58e353e009c38eb69e8d74a8bad4fa834026e68378dacbe904404c20c615a5006a64322f6633302e7478740108021902860319028e0458204f8f77b0ea1b891ac5ff615b3aff7d84f52825a24813763ad8c65ab87ca85a9da5006a64322f6633372e74787401080219028e03190296045820f72306e5abea3faa8fc9cea7dd736d70b74c5cf53caa2206b5469e5670679095a5006a64322f6634342e7478740108021902960319029e045820e6be5e995093917a541f1bd191af2e626c79261ea381f9a6d372f44ef7ba578ca5006a64322f6635312e74787401080219029e031902a60458205130967ce959207bdddbfd1b4dda985228d9c3a76cb16e6369b2666d16302c23a5006a64322f6635382e7478740108021902a6031902ae045820535dbf9fb15305fa31653f3c253ffcd39fcf1af5c78ed17f23b633402b65e624a5006a64322f6636352e7478740108021902ae031902b6045820082ff1286de3865ff96127e5471261dde699dc76e4bd303f1be3b870d13da569a5006a64322f6637322e7478740108021902b6031902be0458209845310b70e271e394a6fa080e50167de798914d65690e457b6822b90e724617a5006a64322f6637392e7478740108021902be031902c6045820062d0e188cf636e30ea2ad43f99bd2035e8a78d65c0381900ba46eddf8ae33dca5006a64322f6638362e7478740108021902c6031902ce045820a6424d87f76bbf50a81137d5e09889ce5df58577847da0cd109236730b9e1dfda5006964322f66392e7478740107021902ce031902d50458209ab1c487d62413afc31c76ab9865cb9d50585772654047fba84311614a423c95a5006a64322f6639332e7478740108021902d5031902dd0458200540661e24d3c1874cc44672b7b093e5c431fd740d4a90e85bf0cd60e0d643e4a5006a64332f6631302e7478740108021902dd031902e5045820c2756086b5d70a1bcd6da71277f1238568b3c35aaacdf9e10e426d1876022e0da5006b64332f663130312e7478740109021902e5031902ee045820dd6a1f7191741a0cfddfa89df738fa61aed219e5885686f2caa1a942cecf4267a5006b64332f663130382e7478740109021902ee031902f7045820eefe2e79329682f1b489aae7958550652309ed57aa5571c539eadc0b4818c226a5006b64332f663131352e7478740109021902f7031903000458202ba0628717b9fa05da27ec4cf8390c0326b1ecd7a5149778581e54fb59021e70a5006b64332f663132322e74787401090219030003190309045820b47b8d4eae24cbde73d98888af6f36ffe18a3cce87a07e9517af3c56a3371e2da5006b64332f663132392e74787401090219030903190312045820cfe68167128d47fbfc68dabb8451b99eaac4d7299e5b933fa88eb3e06cd22685a5006b64332f663133362e7478740109021903120319031b045820dad2f356bedd34dc96d93f619bae73d8968345f5ffe340df4773f2b94dcbff26a5006b64332f663134332e74787401090219031b03190324045820b609cfbf652bd657d1d05447ec3d24ab294e5dc9c9783ffca98bd681721a0c0ba5006b64332f663135302e7478740109021903240319032d045820f010bb80606208ab8f268f42e8f6e30fad02b1e140ae43173a22652d46bbb604a5006b64332f663135372e74787401090219032d0319033604582063b7c778d13b1759adcca4efc7a34307fe2dc054a970c1279b4083dfc203d268a5006b64332f663136342e7478740109021903360319033f045820abe079b3340205b40ca5bfe4f7924618e035f1c0e6f34f92893042bfcb310f00a5006a64332f6631372e74787401080219033f031903470458202d4b67d07f5e4744906350ab1cb00c3494993493b5f46f5525e6c2156ff24c1da5006b64332f663137312e74787401090219034703190350045820093c602208eac6cd0c56bd208814454d9a222a5a017ce98dbf59c7c855fdf81da5006b64332f663137382e74787401090219035003190359045820f84a1f194cefcadfd581d0412230c81f0b34ac1a2c8e74a7625d4c0a23583fc6a5006b64332f663138352e747874010902190359031903620458202178f918f7578907e2dbcf6989161213e658e2c8bd40dd4f90048225e4ced61da5006b64332f663139322e7478740109021903620319036b04582035b3f53da7e2cc57784f79e2a853f351d38a27386a43c8586e9b34a2d09289e2a5006b64332f663139392e74787401090219036b0319037404582031486896dbcda47f7b20923398eba4748685778a772f4b6044047b5a1215600aa5006a64332f6632342e7478740108021903740319037c045820261439a9268d4244e2ef3c73f18448da0b54733f304777a12f172aa7222aa513a5006964332f66332e74787401070219037c03190383045820b90ae9387f8c3b679f6bbd62649e3b0649fd2f5ab82cc174af8977671367f761a5006a64332f6633312e7478740108021903830319038b04582043d4e495d1a4d5d83b9b9c00dcd4830124e9b5aa3cf90fb20b7ee830b8734287a5006a64332f6633382e74787401080219038b03190393045820b65a593d5747c47f0ac8f3e6aa4a24c9425f57a628afcc8f4e64376faf0e751ca5006a64332f6634352e7478740108021903930319039b0458201d0ae5e29e381e72894924c10a00023f0d248afce54413030eec438cff987253a5006a64332f6635322e74787401080219039b031903a30458201c18ad98070cfbe9c316a8c195095675199b9612006d09695f343c52a9a9be79a5006a64332f6635392e7478740108021903a3031903ab045820e64758700932cc17a32331a366ed1e6502a416a3b7af0ef29a0d72c53ec5c834a5006a64332f6636362e7478740108021903ab031903b3045820ffdbf68760876eed5b6b960a7b8e7c342831d6010ef1b56799aa5393a2625007a5006a64332f6637332e7478740108021903b3031903bb045820475e7e16265f77c204b22391b4a861a657cfc9fe40dc367aa9c271894eb22613a5006a64332f6638302e7478740108021903bb031903c304582084dde9252c0cf1e6dbb579e4991ca5dc88136ca3b0f5d7ac7275d18fedd1bf3aa5006a64332f6638372e7478740108021903c3031903cb04582093cd903bd691b426f2655215fa54649f60e6644bf1c3a1a358bf7447a01c34c1a5006a64332f6639342e7478740108021903cb031903d3045820cdbccb085dd56c5a025953bbf0f86f5a4b3046d3db3f9eaa1e4deea91b46e0eca5006b64342f663130322e7478740109021903d3031903dc045820d24660dbb6ed408c7eb295940ef0f70a3717a029eafafe44a03863be3060521ba5006b64342f663130392e7478740109021903dc031903e5045820d8b7f3eaf76c85f17dc258b67ca1a8b7e9cf7271f33fc772c4e1fdaa2947f5aba5006a64342f6631312e7478740108021903e5031903ed045820d71ce34c7d3a21bcc34ca421a1746d4edb5fb5c9ab350989dea7427f44f08be2a5006b64342f663131362e7478740109021903ed031903f6045820328fc2eaa4aeadc9001d0582b90df430e44c4ab906df41966da285866af02720a5006b64342f663132332e7478740109021903f6031903ff0458208d6abf04424c9e22aa98da1866ac1a3ea4740e245fe9da97a7d637b5cd8286a7a5006b64342f663133302e7478740109021903ff03190408045820e000254945e796fe41bdcd9251e7d444994930c2b3fa2a3247c3b2e67f362150a5006b64342f663133372e7478740109021904080319041104582073dca1b26196a7ea967d42212be854188551fab90b4280c74d919cc02af5b190a5006b64342f663134342e7478740109021904110319041a045820c970e4b88d375fd4cf0167768be209188b358e40db31d6931e93930c6c28cd5ba5006b64342f663135312e74787401090219041a03190423045820a4dce635dabe6ecec079d608bae3a785ac4d4c4b27ec827786cca10259f45718a5006b64342f663135382e7478740109021904230319042c04582058a745a6618004a3bdc59b0e572b72f4bb049fae8e10b2ade51448d50bfc2dd5a5006b64342f663136352e74787401090219042c03190435045820890f6f58c726ca28902849ced2760c85ee1e37b079bba70f99a9edfd8275dd96a5006b64342f663137322e7478740109021904350319043e04582009407fff8df5f3f1a9bebf94af3d322d93ab371a9e313fea44807a3f4711aaeca5006b64342f663137392e74787401090219043e031904470458204a44fc8cb73298120f1ece7929f1dff313c7425a64372271da03129db0452607a5006a64342f6631382e7478740108021904470319044f0458208e6210b234cfd1c105ec3c2f1d5d3ad055f39e2ef21e1cbff1858a804e1b718ba5006b64342f663138362e74787401090219044f0319045804582075c64db1ae4191c95e17ca7e1d446c711260c8be977acdc092c4f53b7e4aa486a5006b64342f663139332e747874010902190458031904610458202954c6523f4708859cdf4729d4fd7fd69254e7b3638f62579f86dbccce840ccfa5006a64342f6632352e74787401080219046103190469045820f52f4b2ac91aae4fcd1b64f49dc2227930b21a927157f854b1bbf8e45061916ea5006a64342f6633322e7478740108021904690319047104582049a44677956305ab5866009cf3613c9ac4213743629c3bfc3485a5389938bbfaa5006a64342f6633392e747874010802190471031904790458208f7e2ba9aa8bb0e3b00cb077fbf07e36c59ecb43953a3cfc081b72a86b274a37a5006964342f66342e7478740107021904790319048004582076f61e3503f81ffc8ccff1db16486d49a5f602267027e5ae85ae17d0c5e041b1a5006a64342f6634362e747874010802190480031904880458201495341df103b4646853a06bc11b25b8b1439d2ea1a9bbd8d715cf7cef367353a5006a64342f6635332e747874010802190488031904900458208e249e39dbae59944878eb747535b0defaf21cd324000eb753c7a13844fec833a5006a64342f6636302e74787401080219049003190498045820ce331d109ca966ab9b770406bcdf770ad4a6821d8d6b88fe10a37208b21d874fa5006a64342f6636372e747874010802190498031904a0045820816bb320c2d0b980cfa0b6720c14688354deb1b7728bcdef6f8994aadd995d03a5006a64342f6637342e7478740108021904a0031904a8045820f4f5187561b70a68bd3e402eb1e6f185b34d443cedfd1b8fa088d315c76e882ea5006a64342f6638312e7478740108021904a8031904b004582028f5442c54b7a84a3aa29d67d36be040ec4ddf8c8c2bf73eedb2df3565cf25bea5006a64342f6638382e7478740108021904b0031904b8045820880536a359ec38df26f7fe54e6c31e82059c31c4c519a8ab1828b43af1a2020ba5006a64342f6639352e7478740108021904b8031904c0045820483ddb7525ace65bcbfac757bc06914d9b6c5265ed4c401d7fd912506fd32de5a5006b64352f663130332e7478740109021904c0031904c90458208fb58d4b76c1dfb0216b739683b2c5e6ae50c18219f04e9127e37e352595d88aa5006b64352f663131302e7478740109021904c9031904d2045820ba130900d50051d0c2b9b73cb3ea7dc8d5ccd0242cb47645a3280f3a1f39d4dea5006b64352f663131372e7478740109021904d2031904db045820d4c304c746709c7584ce6729f173a745b1e4f4f6530822a4815b7aff90305349a5006a64352f6631322e7478740108021904db031904e304582024e274bd433cafe12b1649479db5a742f2805fb616d953dc83b528ab4d9af7caa5006b64352f663132342e7478740109021904e3031904ec0458206e56ce58714aa020b8b0a42367fbae2c6636769cb064149b368926f9850cf78da5006b64352f663133312e7478740109021904ec031904f5045820626bc99a69099e2201b39cac323112a57a35fd89cdaa62a4472d421dc418596da5006b64352f663133382e7478740109021904f5031904fe04582097f4cfce4ba3c929af4e7e9d19d82ec53cba1885c112ee5effb7cc64d955561da5006b64352f663134352e7478740109021904fe031905070458207b5441689b4336cc24b6b972364523a4eeaa36730641495e5b4b9821a4132406a5006b64352f663135322e74787401090219050703190510045820610390a679e9f2fbeeef0ccc064099f0255a9664ecafcb053658a0444c93f968a5006b64352f663135392e74787401090219051003190519045820cc770c856ff94072fab13d09bdd96a59cdb94b31c319896698dccebfa7f73664a5006b64352f663136362e7478740109021905190319052204582064ff3147221878d4ad885ba4c8d213e8901e109944e069f1cc39740197fd8708a5006b64352f663137332e7478740109021905220319052b0458206221f76fcfb721501c8e9ad80f5d195a22cb2b959a45454711565c94c5aea527a5006b64352f663138302e74787401090219052b03190534045820753083a521a803fdd1673c35f3deb0ac4d55744be6b5dff361bfd140a6ce16fba5006b64352f663138372e7478740109021905340319053d0458204ba786b81404c7c02fe8d8efd3eca60ffa85d4a023e3f557ceece593064498a6a5006a64352f6631392e74787401080219053d03190545045820c23c64e866d511e420df8be80dfb96873b8fdd48c01358398d1d156723080ed0a5006b64352f663139342e7478740109021905450319054e045820cc3aca3875eda494d1bd89bea43844f845e21be493413d56bf542751f2f0bf39a5006a64352f6632362e74787401080219054e03190556045820b3850a429f49d5bddfb1dedd1ab6fe667faf3790247a6a3b2b86298947d65833a5006a64352f6633332e7478740108021905560319055e045820111320d3ddfc2d1493ca5f21b32c570d4da8505ab4865daac5cfb8505539a4a7a5006a64352f6634302e74787401080219055e03190566045820722a043bec8601a2ab38745adb5563ca8db525e9bd56d71717cbff37351c8ed7a5006a64352f6634372e7478740108021905660319056e0458203ea81a90631ed12b32e600a4c5a837166755792eeb47204710a16c401196badba5006964352f66352e74787401070219056e0319057504582027c7d24edb77a005c6109792cc4efc120bc2388a5464d54745b99f006d241db9a5006a64352f6635342e7478740108021905750319057d0458204b1217dde24476d8ed3a60285fc76cfb000b6a0c07a83e36901e9fd34a419d09a5006a64352f6636312e74787401080219057d031905850458201673e98ce2c22ee1db1d9b82057571939baf4fa8d2213cf7378d93b6b8fcd524a5006a64352f6636382e7478740108021905850319058d045820c6eeb00cf9d05ce207678966877371bd9b0809418f043ac6cb7389a7f65e7839a5006a64352f6637352e74787401080219058d031905950458209c980200ba42578fb13c3d76570ca453345b3859cb0a0d4f04dd7f70f3e8c788a5006a64352f6638322e7478740108021905950319059d0458200d4f5d01449ed68022b1bf248974f209a1dde15f88c5e19f6368d4b9b8eb268ca5006a64352f6638392e74787401080219059d031905a5045820bccfb234d56b7bdeea5aad80e72857992b6272c549a509e1ab6a3455c70be6e5a5006a64352f6639362e7478740108021905a5031905ad0458205676eb8ecb8c2888d92182336afd0e12d52e80978006bc3e6ed9928cf39350a5a5006b64362f663130342e7478740109021905ad031905b60458209194d3e106bf955a3f8233322ecfeadb52f4ba0afb3cdc8d4eef46eeb580e55da5006b64362f663131312e7478740109021905b6031905bf045820270abf73f351ddd4a60298e8bd8cb6e9cb9c5458d06d6b0dfd0ca02da73fe560a5006b64362f663131382e7478740109021905bf031905c8045820fba935f2ec5d523db903eb39673d56b7608209b2b7e69dd478f6f214520ce568a5006b64362f663132352e7478740109021905c8031905d104582095f1ac14e397fc478a93f185df9ac80afb7e3f9a409d28b3dd9d5b427c8481c3a5006a64362f6631332e7478740108021905d1031905d9045820daac96fe607d6c1e25b1963bb40aee990184ea338ba509778a61383d9d85cedca5006b64362f663133322e7478740109021905d9031905e204582048fcdff37c275cfd2097da313c3e3e9003921db73e7cf9c343d429fa7587f766a5006b64362f663133392e7478740109021905e2031905eb04582002241967d10e9d1d9db3e6fb8a6d3a1b534a958843dacdd3a5f03d93a21e01d7a5006b64362f663134362e7478740109021905eb031905f40458207b1cd00d3dd7fa3914b87c5d2db2c46c84af0abadc5ab7ab69f5bb68cf5d79ada5006b64362f663135332e7478740109021905f4031905fd0458209f73a8e120c01057141afe294cd50524be13847af8b3238e9d78eb7d3162a770a5006b64362f663136302e7478740109021905fd03190606045820c965f29942cbcd8fc478b7d7692ef9edcc95025955aef05a7f70cf99defef3e0a5006b64362f663136372e7478740109021906060319060f045820e1871eea15dfed0abfd14c7bd8f9730f2e3b5814b2f449bd289eac2d7a11446fa5006b64362f663137342e74787401090219060f03190618045820c44b17b5b41700229da74130be5de5aa531234b902839dded56158c1c0cc8836a5006b64362f663138312e74787401090219061803190621045820add8973630bc336a8bc3f2e2a021576c4b00c36bd1b9602c8144c9e3f0c62f29a5006b64362f663138382e7478740109021906210319062a045820313bbbaf88abdeee861df004b23958fcb5458e0f7e61dbc12aefbac003e1947ba5006b64362f663139352e74787401090219062a03190633045820f7b2ff581b9399dc6c449d0720d25b879d20ecf44a1fe769e16d76c4958d0552a5006a64362f6632302e7478740108021906330319063b0458201dcc6d81aee1b5404b226fef4128baaddcc85e11d133d2d07da8d80325fac590a5006a64362f6632372e74787401080219063b031906430458204f28e94a66a39cc342133f4949ecf51d07a1666e7b9b93a0efba02f8b1a864b7a5006a64362f6633342e7478740108021906430319064b045820320a977fa7c0e1bec9b667f1a3f823de8dbbda38238a7af0f0bbddb4e6da25e7a5006a64362f6634312e74787401080219064b03190653045820392ea683b9499b24feafc7c757890f15b341c9e714b83219494064162a3cf57ba5006a64362f6634382e7478740108021906530319065b0458202dc4a82b786aabeebebfb1bcf8a1beac3e80f4a4ae679b93488e59595c7d4c90a5006a64362f6635352e74787401080219065b0319066304582017221add7ec0d4c0dd435ca5664e2bb07baec0d8b9098c3be6beb682ee86d68ba5006964362f66362e7478740107021906630319066a045820180fa4e69eabbd12afde1390092594798e083d97f779d089cd753363c6905cd0a5006a64362f6636322e74787401080219066a03190672045820e5dba0fb9e87d8d5a922182fc2b62fa0ddcd81b9eff8121516da92ab2ef0a442a5006a64362f6636392e7478740108021906720319067a0458201da08d04129c8dac6fc65f3f5970e7d083e5040d81bcd931c435ddf53acc8fbea5006a64362f6637362e74787401080219067a031906820458205116845702d01fba699be5351ca069545ab10ac3bc05b0a3040b120c90d2e6fca5006a64362f6638332e7478740108021906820319068a04582054a9b045bea90a8b195fe7ee026373e14a9449307830a61d9fb41024bd8a6508a5006a64362f6639302e74787401080219068a03190692045820b35c1c8f7f30318ca780a3e0f7813ad1e11759cf76834e8786abfd7ceb501c4ca5006a64362f6639372e7478740108021906920319069a045820f386b44233418dcd5d2dfedfd5a0cfde8c0d95bb7e72428f9a4b6e940aab36f10781a3006d6f72672e6578616d706c652e6801010241ff", + "length": 46173, + "padded_length": 47104, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "8ff63cbf9bfe4ad4dfe59a8efbe653106f75e3232a092333807c383e6e7efb91" + }, + { + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 35611, + "name": "time_only, one file (secure)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "nota.txt", + "sha256": "0397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685", + "size": 6 + } + ], + "head": "a4006d646174656b6579732d686561640101025820dcb97599496389439e89748e891f1cd69b4fb062ff8a38040c8661cd0ab12e420581a500686e6f74612e7478740106020003060458200397fe19bf28bbbef703f292f55d0cc96e9f535b6db7944504bde08c3709d685", + "length": 32893, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "114c64f7a00b4a71d4b502e7fad42a01c5a217e87d6d6c3404a871bb9410832f" + }, + { + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 1563, + "name": "time_only, a comment alone, bloque256, area of 512 (secure)", + "opens": [ + { + "area_len": 512, + "author": "Ana López", + "comment": "Una línea.\nOtra.", + "files": [], + "head": "a5006d646174656b6579732d686561640101025820fe30146357dbeb109540a68e37157cdbf021fbc2dc028057ac8196b1a847fc3d0371556e61206cc3ad6e65612e0a4f7472612e046a416e61204cc3b370657a", + "length": 608, + "padded_length": 768, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "1f424c1171a89f89270d40a1fc88b922875c8437ced6806c746e166cc31574ab" + }, + { + "dkk_capsule_digest": true, + "dkk_sha256": "6421639469f03c3c51d7d06c109e0a2b8243be6ca84eb263636c1d1eadf47a0e", + "inner_stanzas": 16, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "Para Ana", + "policy": "time_and_key" + }, + "length_dkc": 37311, + "name": "time_and_key, a portable key and a note (secure)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "a.txt", + "sha256": "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb", + "size": 1 + }, + { + "path": "b/c.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "size": 0 + } + ], + "head": "a4006d646174656b6579732d6865616401010258201a27afd7c4ccd1decf7cb2c73082e64ecd1d734e1257817ade1443d0d19dc02b0582a50065612e747874010102000301045820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bba50067622f632e747874010002010301045820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "length": 32936, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "portable" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "a.txt", + "sha256": "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb", + "size": 1 + }, + { + "path": "b/c.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "size": 0 + } + ], + "head": "a4006d646174656b6579732d6865616401010258201a27afd7c4ccd1decf7cb2c73082e64ecd1d734e1257817ade1443d0d19dc02b0582a50065612e747874010102000301045820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bba50067622f632e747874010002010301045820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "length": 32936, + "padded_length": 34816, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "all" + }, + { + "result": "ERR_ACCESS_REQUIRED", + "step": 9, + "with": "none" + } + ], + "reencoded": true, + "sha256": "4dd1abec3da92586b62eaf54403a1f46f43d187736bcdfc575860ab1b0e38220" + }, + { + "dkk_capsule_digest": true, + "dkk_sha256": "6f5a5e734d55bb7f9fffbbb93a432f5eefcf5b4b04d3ab4615c8aaeed9298c27", + "inner_stanzas": 16, + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMX0", + "format": 3, + "note": "", + "policy": "time_and_key" + }, + "length_dkc": 106929, + "name": "time_and_key, fourteen recipients, words and a portable key (secure)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 0" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 1" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 2" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 3" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 4" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 5" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 6" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 7" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 8" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 9" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 10" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 11" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 12" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "identity holder 13" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "words" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "portable" + }, + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "x.bin", + "sha256": "3500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "size": 70000 + } + ], + "head": "a4006d646174656b6579732d686561640101025820e264e9a1ea3b7840f1d881291be0b32d86bd823459ec3e5c0ddf3d307019805e0581a50065782e62696e011a000111700200031a000111700458203500f58cfd1bd88e231edf56dca995542a702bd54525804e5a8604c8aa5cb52e", + "length": 102892, + "padded_length": 104448, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "all" + }, + { + "result": "ERR_ACCESS_REQUIRED", + "step": 9, + "with": "none" + } + ], + "reencoded": true, + "sha256": "62004012e4018cc631e7e5b0c6e1448079d4846e642143eae51ead26d43d4dda" + }, + { + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 3343931, + "name": "three MiB in three files, with mtimes (secure)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "fotos/a.jpg", + "sha256": "91d0a03af0efeeb5568bbdcf2bd7fe1c9d932c4d22db3643c7586c1bd1afbeb1", + "size": 65535 + }, + { + "path": "fotos/b.jpg", + "sha256": "ef4636928161808e87035fa51983821677527ccd9661991c5d0126a778b2268a", + "size": 65536 + }, + { + "mtime": 1727712000, + "path": "grande.bin", + "sha256": "bfe74807c87a64433433238baa29cb800d0e4b5f3b8c96037ab15b620e9633c5", + "size": 3145728 + } + ], + "head": "a4006d646174656b6579732d6865616401010258206e6157b95aa595ed868f9a0379d8f2e6313ca4a437c1cb4722c76ff7ab8581bd0583a5006b666f746f732f612e6a70670119ffff02000319ffff04582091d0a03af0efeeb5568bbdcf2bd7fe1c9d932c4d22db3643c7586c1bd1afbeb1a5006b666f746f732f622e6a7067011a000100000219ffff031a0001ffff045820ef4636928161808e87035fa51983821677527ccd9661991c5d0126a778b2268aa6006a6772616e64652e62696e011a00300000021a0001ffff031a0031ffff045820bfe74807c87a64433433238baa29cb800d0e4b5f3b8c96037ab15b620e9633c5051a66facb00", + "length": 3309830, + "padded_length": 3342336, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "458ed715fd23f597e804f34471084bb52facd4501851bebca49c69603300e60e" + }, + { + "inspect": { + "datekey": "dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0", + "format": 3, + "note": "", + "policy": "time_only" + }, + "length_dkc": 47945, + "name": "two hundred small files and extensions (secure)", + "opens": [ + { + "area_len": 32768, + "author": "", + "comment": "", + "files": [ + { + "path": "d0/f0.txt", + "sha256": "41b3fbbe4d8d6bbd44c4b610bb678c55dd53fdbe9a3ed257057ee1edf5136f5b", + "size": 7 + }, + { + "path": "d0/f105.txt", + "sha256": "4f3e0bb09d500f469dbfb5fb72cfcf53a169e083dd494e73eb6924cdf231e499", + "size": 9 + }, + { + "path": "d0/f112.txt", + "sha256": "6acf5782d82b9d7a2478cda798d49712039dc434487a73804d783bf03fcfd354", + "size": 9 + }, + { + "path": "d0/f119.txt", + "sha256": "c8755fc85a160da3d7389986a8e9b1d9d55fda9155821d91ee4836c6a360ef35", + "size": 9 + }, + { + "path": "d0/f126.txt", + "sha256": "cbeb37392c68bb3ffe974c2e582b8937f2c2ac52b086011556af5a60756b2726", + "size": 9 + }, + { + "path": "d0/f133.txt", + "sha256": "8d07f7124cdb2955a0d0bcf11538588e9e74eed7eb186202b1cad83a88f8cadb", + "size": 9 + }, + { + "path": "d0/f14.txt", + "sha256": "2268d99d3a0f71eaed46a3b3bd2cc6338ec529187a9b1c486389a7fe4de4cd66", + "size": 8 + }, + { + "path": "d0/f140.txt", + "sha256": "9c2eeeb40782620ddc99b45427f5efd163539a1eadc6edb8bef17c6712194550", + "size": 9 + }, + { + "path": "d0/f147.txt", + "sha256": "d423a967312b02a76a7ebf875d4acd8bbbdbc7fcfa2b6aa06e8e8a273e716aa1", + "size": 9 + }, + { + "path": "d0/f154.txt", + "sha256": "59368707328f3bc5fcafd7017735829561d1f42a856841294030911d58b5cb00", + "size": 9 + }, + { + "path": "d0/f161.txt", + "sha256": "75f57c75e8bfb67560ff81d43afe2cbeed7aca63ffb1392f764343b84852cc98", + "size": 9 + }, + { + "path": "d0/f168.txt", + "sha256": "7ce4c92300fca5ab9651730a68b1aa14c91935399f1780e039e100ea3a9ed958", + "size": 9 + }, + { + "path": "d0/f175.txt", + "sha256": "3a4b626a6b113df923dd3c5b6264a869a83df2a2b1b516b430ab5edf7cad40f6", + "size": 9 + }, + { + "path": "d0/f182.txt", + "sha256": "7e41adbd7d4fd09b8194d83acb8b1807dd5a087427d95b4531fe15713a8b8477", + "size": 9 + }, + { + "path": "d0/f189.txt", + "sha256": "5018537bb31be77037ed7f99104cd9843a8a6ac96f8f5f23a5d2385f958c1c5d", + "size": 9 + }, + { + "path": "d0/f196.txt", + "sha256": "eec292b7ff9c97cf452a274092ddbc087bebd817905bd4d7a3257a1adb293f45", + "size": 9 + }, + { + "path": "d0/f21.txt", + "sha256": "fed050590e00099bbb2205a4fd738ff2e640ac843393dbae6a9084e35b081255", + "size": 8 + }, + { + "path": "d0/f28.txt", + "sha256": "6767b224456213bce1271b2ab80ce439cd1a1f0cad956cced679131da320e7ad", + "size": 8 + }, + { + "path": "d0/f35.txt", + "sha256": "9f2d3105d5198a772957876b25a16adc1f9dc87b3aaa43f27891bdd33fe64c96", + "size": 8 + }, + { + "path": "d0/f42.txt", + "sha256": "ac31495c9d46e2e3a8f6798bbaf0b810906bb1f05496d2f27bf99ee35eef1c82", + "size": 8 + }, + { + "path": "d0/f49.txt", + "sha256": "2b37d68a1483bb3eeb37be0185f8be36499abe12c45f5cab77b474c5b86655b0", + "size": 8 + }, + { + "path": "d0/f56.txt", + "sha256": "dfa484b53abde12a6858865abf08ba5ca20a65433969c512af3b20e7167e981d", + "size": 8 + }, + { + "path": "d0/f63.txt", + "sha256": "30ac3a89651412ddfb1cab867ef6aa9c99b118cc098203b8a1eb5c62a10c0054", + "size": 8 + }, + { + "path": "d0/f7.txt", + "sha256": "cdc4f52fe4cd55696b22732e3d35afd38e2905551ac4f7b4ceb44357740b62ea", + "size": 7 + }, + { + "path": "d0/f70.txt", + "sha256": "39c5680e7049e9f3ddeeee654f7c72b1b75809b714a027a61fc5f5874c2baefd", + "size": 8 + }, + { + "path": "d0/f77.txt", + "sha256": "d881d57782c4ac6e8890f1a6a686fce65422f450cc511951f50930839c8e34e8", + "size": 8 + }, + { + "path": "d0/f84.txt", + "sha256": "cccdfdc5832f58221b58881f5243b4e002d111d6454f0049b76e8bded207f892", + "size": 8 + }, + { + "path": "d0/f91.txt", + "sha256": "815335949da3bcc264941b9e20c5a135c68560b58ccb760db05ab3dd704b4b06", + "size": 8 + }, + { + "path": "d0/f98.txt", + "sha256": "3e29ac43b6dee94fe38678021ef7a39c8f7bfa9a53ac59a6acbdc1ad0e6f04d5", + "size": 8 + }, + { + "path": "d1/f1.txt", + "sha256": "5f5d584c5857d85af911ade1b2ae7cb593c17654282091f3ace31efd9e951360", + "size": 7 + }, + { + "path": "d1/f106.txt", + "sha256": "49136d4375c4abe96fb300a57496bdd5b61c467580fe3e9bcede4d1745d9fde7", + "size": 9 + }, + { + "path": "d1/f113.txt", + "sha256": "7222140c148966cf2ce92b9b24ef0ccea6edf14a71699ac14e55868ca822fa07", + "size": 9 + }, + { + "path": "d1/f120.txt", + "sha256": "9ced7138e6a73c5ad4bab9c48ffd4f7e1b3cec7c44a085e371d44487a2d901d1", + "size": 9 + }, + { + "path": "d1/f127.txt", + "sha256": "33bfbbb34e5d8393fcc22b9b386dc2144c37d94899a9701140ed6fad314915cf", + "size": 9 + }, + { + "path": "d1/f134.txt", + "sha256": "2e05b8f4b8e288451e45c29f4df65f4e3bf4a4503bce2ce0ea5064587d9f1c70", + "size": 9 + }, + { + "path": "d1/f141.txt", + "sha256": "fb2eb6253a6e95c976339a2066c839c6cbcf5c12ac8db328d6f034a3b3006cb1", + "size": 9 + }, + { + "path": "d1/f148.txt", + "sha256": "01756a03bfa71b5623700a5d17e821cecaf375d73032147f0be7e99f4d97f16c", + "size": 9 + }, + { + "path": "d1/f15.txt", + "sha256": "7e929ce0b4344d6061ffac95189b9abeee4189e292cbd3ac42a1b0e5afefceb4", + "size": 8 + }, + { + "path": "d1/f155.txt", + "sha256": "e2d0f4ae99608dd0a37f14ac939c80504a09aa1576d8847499eaf21a3b9b7f9f", + "size": 9 + }, + { + "path": "d1/f162.txt", + "sha256": "2c6d4a5ce072bb47405feabf0b58fe172024bb36f6430f4a1ab43e9a1a280f50", + "size": 9 + }, + { + "path": "d1/f169.txt", + "sha256": "313f798f953bf1da964978271398c2ba49d09b438ef12a9fd1b3bcc08515a43b", + "size": 9 + }, + { + "path": "d1/f176.txt", + "sha256": "6d04398e96f36894e1fe442c69824f101c171a65b90d748f66850d12eff749e9", + "size": 9 + }, + { + "path": "d1/f183.txt", + "sha256": "455ca316005527b9e877d1f6f088f5ea5b4eac0804440ccd8ad222a80412554f", + "size": 9 + }, + { + "path": "d1/f190.txt", + "sha256": "4fc16199dff1550b40718a97dfd16b33c07fdf17dbef71b0b2b7ef2d47896d72", + "size": 9 + }, + { + "path": "d1/f197.txt", + "sha256": "632992c486d06709948a77c3e4c3b19f6bd4c26e363f783ceb743c2e462f9980", + "size": 9 + }, + { + "path": "d1/f22.txt", + "sha256": "43ddc00b68011db10f935b43e2ec8ec790504e3aa3c1a30f9c993c4019786ed0", + "size": 8 + }, + { + "path": "d1/f29.txt", + "sha256": "97e657de832e05c4919741d3a660c685268cd9bebf3b18812fe9de7fe5b8af21", + "size": 8 + }, + { + "path": "d1/f36.txt", + "sha256": "d780ce84b54230a61c017e1db416a1de000a22af21c63088b941364353e4fe03", + "size": 8 + }, + { + "path": "d1/f43.txt", + "sha256": "bc100569ce0f46b7956f8677794df3b7cd8a5b3b19a0ade20877cf5a83ff949a", + "size": 8 + }, + { + "path": "d1/f50.txt", + "sha256": "0dc499f654ef22a02669732fe392994e310c179bf45561c0081096886f0aa60a", + "size": 8 + }, + { + "path": "d1/f57.txt", + "sha256": "ad262018dcc9abe3e1386e375b9a8499d39a10b09124eb2d075e0ec1f7e52720", + "size": 8 + }, + { + "path": "d1/f64.txt", + "sha256": "dfd8e3fdf747dac7322eb073b87ce8a7ab9bfbd2bd027761bf06d81466aec253", + "size": 8 + }, + { + "path": "d1/f71.txt", + "sha256": "477671748e245576d38ace108d18ac6a649808ef885100caa95c035d8bde3280", + "size": 8 + }, + { + "path": "d1/f78.txt", + "sha256": "53e5c60934a28440da8c3dc8c7bb5aa5eae479651c6735f854683d4e57921baf", + "size": 8 + }, + { + "path": "d1/f8.txt", + "sha256": "3e7e2b6c54af7ff67e199f44eb09494ab201c828ea140470d0327a9155beee78", + "size": 7 + }, + { + "path": "d1/f85.txt", + "sha256": "176585096d98f25070f206490e440771b0bab3c94bf2c01224c1048cf32b1451", + "size": 8 + }, + { + "path": "d1/f92.txt", + "sha256": "e6761e3c8f476e36f386d8e7752ba8d713456363722426f52bceb7de069851d7", + "size": 8 + }, + { + "path": "d1/f99.txt", + "sha256": "15adc41271283c6bf1574d5774ccba97408052d5521fcee06ef3b24786719f54", + "size": 8 + }, + { + "path": "d2/f100.txt", + "sha256": "567dcb69efc1fdedc905b3ebdac54004e690fbfbb33f782b6510b45aea7180fe", + "size": 9 + }, + { + "path": "d2/f107.txt", + "sha256": "adc7ce854049123aee41375f50c9c8880cc130ef9fd21be2547ca0ede52a6c46", + "size": 9 + }, + { + "path": "d2/f114.txt", + "sha256": "bede41b2321bfd095e00cd47d4fd7b50e7f3832309d341f7972fb33b47e37bbc", + "size": 9 + }, + { + "path": "d2/f121.txt", + "sha256": "9ea84e64f9c8d8a3be8a7bf83467514662fdad4d5b64828de50b493fa90fbbab", + "size": 9 + }, + { + "path": "d2/f128.txt", + "sha256": "24033d5cb9509ca26ca9a2f29207ff2c8b8ad66209b02b9f16845a76ecd3fe70", + "size": 9 + }, + { + "path": "d2/f135.txt", + "sha256": "9cd4ca42408e55a62d3c9aac09a6456d9efd6bba09df0811780fedbaee97aa38", + "size": 9 + }, + { + "path": "d2/f142.txt", + "sha256": "e181e0a5162c492babd41d68006c774c1581c23d778b2f6fca1185bc20a5bd0b", + "size": 9 + }, + { + "path": "d2/f149.txt", + "sha256": "98842439283363840cf92dfd920388976d51acf1299878222dcf8c27289a0cd8", + "size": 9 + }, + { + "path": "d2/f156.txt", + "sha256": "34c0a62c38501782b6483cc3955ac86c7eb9943743ea419c865d7817cc235365", + "size": 9 + }, + { + "path": "d2/f16.txt", + "sha256": "341606b8587f7d2db4346c434daabe0335e98c53a0ff25e87629e03f3af2f694", + "size": 8 + }, + { + "path": "d2/f163.txt", + "sha256": "7e7afb0a02c04badcaacaafc5c3da3a0bd85762d513419e47d3df425d9c92da5", + "size": 9 + }, + { + "path": "d2/f170.txt", + "sha256": "3b3b06e06d8e0f4411770ba19f931892ddc1b4a4122099f610fef810d70cb8f6", + "size": 9 + }, + { + "path": "d2/f177.txt", + "sha256": "73d7dfcf1416c54d9f46d1e3415e2d0e5626fe05300c3861e4949f06a0025602", + "size": 9 + }, + { + "path": "d2/f184.txt", + "sha256": "867f067333af2f1e17900c4108aa8db0e7f76c1fb15d505bcd8deb651e86822b", + "size": 9 + }, + { + "path": "d2/f191.txt", + "sha256": "11aec14004789817218c0495571d2e016b08191f14ef95216e938165677ca21b", + "size": 9 + }, + { + "path": "d2/f198.txt", + "sha256": "8d0c04272ea30e3e75b83a976d6ab0515c04405317a293dee86838e495d40549", + "size": 9 + }, + { + "path": "d2/f2.txt", + "sha256": "0b7e1391e807365614c548fd10a4a543cf0654268529f3fe768ed7042624c006", + "size": 7 + }, + { + "path": "d2/f23.txt", + "sha256": "089b58e353e009c38eb69e8d74a8bad4fa834026e68378dacbe904404c20c615", + "size": 8 + }, + { + "path": "d2/f30.txt", + "sha256": "4f8f77b0ea1b891ac5ff615b3aff7d84f52825a24813763ad8c65ab87ca85a9d", + "size": 8 + }, + { + "path": "d2/f37.txt", + "sha256": "f72306e5abea3faa8fc9cea7dd736d70b74c5cf53caa2206b5469e5670679095", + "size": 8 + }, + { + "path": "d2/f44.txt", + "sha256": "e6be5e995093917a541f1bd191af2e626c79261ea381f9a6d372f44ef7ba578c", + "size": 8 + }, + { + "path": "d2/f51.txt", + "sha256": "5130967ce959207bdddbfd1b4dda985228d9c3a76cb16e6369b2666d16302c23", + "size": 8 + }, + { + "path": "d2/f58.txt", + "sha256": "535dbf9fb15305fa31653f3c253ffcd39fcf1af5c78ed17f23b633402b65e624", + "size": 8 + }, + { + "path": "d2/f65.txt", + "sha256": "082ff1286de3865ff96127e5471261dde699dc76e4bd303f1be3b870d13da569", + "size": 8 + }, + { + "path": "d2/f72.txt", + "sha256": "9845310b70e271e394a6fa080e50167de798914d65690e457b6822b90e724617", + "size": 8 + }, + { + "path": "d2/f79.txt", + "sha256": "062d0e188cf636e30ea2ad43f99bd2035e8a78d65c0381900ba46eddf8ae33dc", + "size": 8 + }, + { + "path": "d2/f86.txt", + "sha256": "a6424d87f76bbf50a81137d5e09889ce5df58577847da0cd109236730b9e1dfd", + "size": 8 + }, + { + "path": "d2/f9.txt", + "sha256": "9ab1c487d62413afc31c76ab9865cb9d50585772654047fba84311614a423c95", + "size": 7 + }, + { + "path": "d2/f93.txt", + "sha256": "0540661e24d3c1874cc44672b7b093e5c431fd740d4a90e85bf0cd60e0d643e4", + "size": 8 + }, + { + "path": "d3/f10.txt", + "sha256": "c2756086b5d70a1bcd6da71277f1238568b3c35aaacdf9e10e426d1876022e0d", + "size": 8 + }, + { + "path": "d3/f101.txt", + "sha256": "dd6a1f7191741a0cfddfa89df738fa61aed219e5885686f2caa1a942cecf4267", + "size": 9 + }, + { + "path": "d3/f108.txt", + "sha256": "eefe2e79329682f1b489aae7958550652309ed57aa5571c539eadc0b4818c226", + "size": 9 + }, + { + "path": "d3/f115.txt", + "sha256": "2ba0628717b9fa05da27ec4cf8390c0326b1ecd7a5149778581e54fb59021e70", + "size": 9 + }, + { + "path": "d3/f122.txt", + "sha256": "b47b8d4eae24cbde73d98888af6f36ffe18a3cce87a07e9517af3c56a3371e2d", + "size": 9 + }, + { + "path": "d3/f129.txt", + "sha256": "cfe68167128d47fbfc68dabb8451b99eaac4d7299e5b933fa88eb3e06cd22685", + "size": 9 + }, + { + "path": "d3/f136.txt", + "sha256": "dad2f356bedd34dc96d93f619bae73d8968345f5ffe340df4773f2b94dcbff26", + "size": 9 + }, + { + "path": "d3/f143.txt", + "sha256": "b609cfbf652bd657d1d05447ec3d24ab294e5dc9c9783ffca98bd681721a0c0b", + "size": 9 + }, + { + "path": "d3/f150.txt", + "sha256": "f010bb80606208ab8f268f42e8f6e30fad02b1e140ae43173a22652d46bbb604", + "size": 9 + }, + { + "path": "d3/f157.txt", + "sha256": "63b7c778d13b1759adcca4efc7a34307fe2dc054a970c1279b4083dfc203d268", + "size": 9 + }, + { + "path": "d3/f164.txt", + "sha256": "abe079b3340205b40ca5bfe4f7924618e035f1c0e6f34f92893042bfcb310f00", + "size": 9 + }, + { + "path": "d3/f17.txt", + "sha256": "2d4b67d07f5e4744906350ab1cb00c3494993493b5f46f5525e6c2156ff24c1d", + "size": 8 + }, + { + "path": "d3/f171.txt", + "sha256": "093c602208eac6cd0c56bd208814454d9a222a5a017ce98dbf59c7c855fdf81d", + "size": 9 + }, + { + "path": "d3/f178.txt", + "sha256": "f84a1f194cefcadfd581d0412230c81f0b34ac1a2c8e74a7625d4c0a23583fc6", + "size": 9 + }, + { + "path": "d3/f185.txt", + "sha256": "2178f918f7578907e2dbcf6989161213e658e2c8bd40dd4f90048225e4ced61d", + "size": 9 + }, + { + "path": "d3/f192.txt", + "sha256": "35b3f53da7e2cc57784f79e2a853f351d38a27386a43c8586e9b34a2d09289e2", + "size": 9 + }, + { + "path": "d3/f199.txt", + "sha256": "31486896dbcda47f7b20923398eba4748685778a772f4b6044047b5a1215600a", + "size": 9 + }, + { + "path": "d3/f24.txt", + "sha256": "261439a9268d4244e2ef3c73f18448da0b54733f304777a12f172aa7222aa513", + "size": 8 + }, + { + "path": "d3/f3.txt", + "sha256": "b90ae9387f8c3b679f6bbd62649e3b0649fd2f5ab82cc174af8977671367f761", + "size": 7 + }, + { + "path": "d3/f31.txt", + "sha256": "43d4e495d1a4d5d83b9b9c00dcd4830124e9b5aa3cf90fb20b7ee830b8734287", + "size": 8 + }, + { + "path": "d3/f38.txt", + "sha256": "b65a593d5747c47f0ac8f3e6aa4a24c9425f57a628afcc8f4e64376faf0e751c", + "size": 8 + }, + { + "path": "d3/f45.txt", + "sha256": "1d0ae5e29e381e72894924c10a00023f0d248afce54413030eec438cff987253", + "size": 8 + }, + { + "path": "d3/f52.txt", + "sha256": "1c18ad98070cfbe9c316a8c195095675199b9612006d09695f343c52a9a9be79", + "size": 8 + }, + { + "path": "d3/f59.txt", + "sha256": "e64758700932cc17a32331a366ed1e6502a416a3b7af0ef29a0d72c53ec5c834", + "size": 8 + }, + { + "path": "d3/f66.txt", + "sha256": "ffdbf68760876eed5b6b960a7b8e7c342831d6010ef1b56799aa5393a2625007", + "size": 8 + }, + { + "path": "d3/f73.txt", + "sha256": "475e7e16265f77c204b22391b4a861a657cfc9fe40dc367aa9c271894eb22613", + "size": 8 + }, + { + "path": "d3/f80.txt", + "sha256": "84dde9252c0cf1e6dbb579e4991ca5dc88136ca3b0f5d7ac7275d18fedd1bf3a", + "size": 8 + }, + { + "path": "d3/f87.txt", + "sha256": "93cd903bd691b426f2655215fa54649f60e6644bf1c3a1a358bf7447a01c34c1", + "size": 8 + }, + { + "path": "d3/f94.txt", + "sha256": "cdbccb085dd56c5a025953bbf0f86f5a4b3046d3db3f9eaa1e4deea91b46e0ec", + "size": 8 + }, + { + "path": "d4/f102.txt", + "sha256": "d24660dbb6ed408c7eb295940ef0f70a3717a029eafafe44a03863be3060521b", + "size": 9 + }, + { + "path": "d4/f109.txt", + "sha256": "d8b7f3eaf76c85f17dc258b67ca1a8b7e9cf7271f33fc772c4e1fdaa2947f5ab", + "size": 9 + }, + { + "path": "d4/f11.txt", + "sha256": "d71ce34c7d3a21bcc34ca421a1746d4edb5fb5c9ab350989dea7427f44f08be2", + "size": 8 + }, + { + "path": "d4/f116.txt", + "sha256": "328fc2eaa4aeadc9001d0582b90df430e44c4ab906df41966da285866af02720", + "size": 9 + }, + { + "path": "d4/f123.txt", + "sha256": "8d6abf04424c9e22aa98da1866ac1a3ea4740e245fe9da97a7d637b5cd8286a7", + "size": 9 + }, + { + "path": "d4/f130.txt", + "sha256": "e000254945e796fe41bdcd9251e7d444994930c2b3fa2a3247c3b2e67f362150", + "size": 9 + }, + { + "path": "d4/f137.txt", + "sha256": "73dca1b26196a7ea967d42212be854188551fab90b4280c74d919cc02af5b190", + "size": 9 + }, + { + "path": "d4/f144.txt", + "sha256": "c970e4b88d375fd4cf0167768be209188b358e40db31d6931e93930c6c28cd5b", + "size": 9 + }, + { + "path": "d4/f151.txt", + "sha256": "a4dce635dabe6ecec079d608bae3a785ac4d4c4b27ec827786cca10259f45718", + "size": 9 + }, + { + "path": "d4/f158.txt", + "sha256": "58a745a6618004a3bdc59b0e572b72f4bb049fae8e10b2ade51448d50bfc2dd5", + "size": 9 + }, + { + "path": "d4/f165.txt", + "sha256": "890f6f58c726ca28902849ced2760c85ee1e37b079bba70f99a9edfd8275dd96", + "size": 9 + }, + { + "path": "d4/f172.txt", + "sha256": "09407fff8df5f3f1a9bebf94af3d322d93ab371a9e313fea44807a3f4711aaec", + "size": 9 + }, + { + "path": "d4/f179.txt", + "sha256": "4a44fc8cb73298120f1ece7929f1dff313c7425a64372271da03129db0452607", + "size": 9 + }, + { + "path": "d4/f18.txt", + "sha256": "8e6210b234cfd1c105ec3c2f1d5d3ad055f39e2ef21e1cbff1858a804e1b718b", + "size": 8 + }, + { + "path": "d4/f186.txt", + "sha256": "75c64db1ae4191c95e17ca7e1d446c711260c8be977acdc092c4f53b7e4aa486", + "size": 9 + }, + { + "path": "d4/f193.txt", + "sha256": "2954c6523f4708859cdf4729d4fd7fd69254e7b3638f62579f86dbccce840ccf", + "size": 9 + }, + { + "path": "d4/f25.txt", + "sha256": "f52f4b2ac91aae4fcd1b64f49dc2227930b21a927157f854b1bbf8e45061916e", + "size": 8 + }, + { + "path": "d4/f32.txt", + "sha256": "49a44677956305ab5866009cf3613c9ac4213743629c3bfc3485a5389938bbfa", + "size": 8 + }, + { + "path": "d4/f39.txt", + "sha256": "8f7e2ba9aa8bb0e3b00cb077fbf07e36c59ecb43953a3cfc081b72a86b274a37", + "size": 8 + }, + { + "path": "d4/f4.txt", + "sha256": "76f61e3503f81ffc8ccff1db16486d49a5f602267027e5ae85ae17d0c5e041b1", + "size": 7 + }, + { + "path": "d4/f46.txt", + "sha256": "1495341df103b4646853a06bc11b25b8b1439d2ea1a9bbd8d715cf7cef367353", + "size": 8 + }, + { + "path": "d4/f53.txt", + "sha256": "8e249e39dbae59944878eb747535b0defaf21cd324000eb753c7a13844fec833", + "size": 8 + }, + { + "path": "d4/f60.txt", + "sha256": "ce331d109ca966ab9b770406bcdf770ad4a6821d8d6b88fe10a37208b21d874f", + "size": 8 + }, + { + "path": "d4/f67.txt", + "sha256": "816bb320c2d0b980cfa0b6720c14688354deb1b7728bcdef6f8994aadd995d03", + "size": 8 + }, + { + "path": "d4/f74.txt", + "sha256": "f4f5187561b70a68bd3e402eb1e6f185b34d443cedfd1b8fa088d315c76e882e", + "size": 8 + }, + { + "path": "d4/f81.txt", + "sha256": "28f5442c54b7a84a3aa29d67d36be040ec4ddf8c8c2bf73eedb2df3565cf25be", + "size": 8 + }, + { + "path": "d4/f88.txt", + "sha256": "880536a359ec38df26f7fe54e6c31e82059c31c4c519a8ab1828b43af1a2020b", + "size": 8 + }, + { + "path": "d4/f95.txt", + "sha256": "483ddb7525ace65bcbfac757bc06914d9b6c5265ed4c401d7fd912506fd32de5", + "size": 8 + }, + { + "path": "d5/f103.txt", + "sha256": "8fb58d4b76c1dfb0216b739683b2c5e6ae50c18219f04e9127e37e352595d88a", + "size": 9 + }, + { + "path": "d5/f110.txt", + "sha256": "ba130900d50051d0c2b9b73cb3ea7dc8d5ccd0242cb47645a3280f3a1f39d4de", + "size": 9 + }, + { + "path": "d5/f117.txt", + "sha256": "d4c304c746709c7584ce6729f173a745b1e4f4f6530822a4815b7aff90305349", + "size": 9 + }, + { + "path": "d5/f12.txt", + "sha256": "24e274bd433cafe12b1649479db5a742f2805fb616d953dc83b528ab4d9af7ca", + "size": 8 + }, + { + "path": "d5/f124.txt", + "sha256": "6e56ce58714aa020b8b0a42367fbae2c6636769cb064149b368926f9850cf78d", + "size": 9 + }, + { + "path": "d5/f131.txt", + "sha256": "626bc99a69099e2201b39cac323112a57a35fd89cdaa62a4472d421dc418596d", + "size": 9 + }, + { + "path": "d5/f138.txt", + "sha256": "97f4cfce4ba3c929af4e7e9d19d82ec53cba1885c112ee5effb7cc64d955561d", + "size": 9 + }, + { + "path": "d5/f145.txt", + "sha256": "7b5441689b4336cc24b6b972364523a4eeaa36730641495e5b4b9821a4132406", + "size": 9 + }, + { + "path": "d5/f152.txt", + "sha256": "610390a679e9f2fbeeef0ccc064099f0255a9664ecafcb053658a0444c93f968", + "size": 9 + }, + { + "path": "d5/f159.txt", + "sha256": "cc770c856ff94072fab13d09bdd96a59cdb94b31c319896698dccebfa7f73664", + "size": 9 + }, + { + "path": "d5/f166.txt", + "sha256": "64ff3147221878d4ad885ba4c8d213e8901e109944e069f1cc39740197fd8708", + "size": 9 + }, + { + "path": "d5/f173.txt", + "sha256": "6221f76fcfb721501c8e9ad80f5d195a22cb2b959a45454711565c94c5aea527", + "size": 9 + }, + { + "path": "d5/f180.txt", + "sha256": "753083a521a803fdd1673c35f3deb0ac4d55744be6b5dff361bfd140a6ce16fb", + "size": 9 + }, + { + "path": "d5/f187.txt", + "sha256": "4ba786b81404c7c02fe8d8efd3eca60ffa85d4a023e3f557ceece593064498a6", + "size": 9 + }, + { + "path": "d5/f19.txt", + "sha256": "c23c64e866d511e420df8be80dfb96873b8fdd48c01358398d1d156723080ed0", + "size": 8 + }, + { + "path": "d5/f194.txt", + "sha256": "cc3aca3875eda494d1bd89bea43844f845e21be493413d56bf542751f2f0bf39", + "size": 9 + }, + { + "path": "d5/f26.txt", + "sha256": "b3850a429f49d5bddfb1dedd1ab6fe667faf3790247a6a3b2b86298947d65833", + "size": 8 + }, + { + "path": "d5/f33.txt", + "sha256": "111320d3ddfc2d1493ca5f21b32c570d4da8505ab4865daac5cfb8505539a4a7", + "size": 8 + }, + { + "path": "d5/f40.txt", + "sha256": "722a043bec8601a2ab38745adb5563ca8db525e9bd56d71717cbff37351c8ed7", + "size": 8 + }, + { + "path": "d5/f47.txt", + "sha256": "3ea81a90631ed12b32e600a4c5a837166755792eeb47204710a16c401196badb", + "size": 8 + }, + { + "path": "d5/f5.txt", + "sha256": "27c7d24edb77a005c6109792cc4efc120bc2388a5464d54745b99f006d241db9", + "size": 7 + }, + { + "path": "d5/f54.txt", + "sha256": "4b1217dde24476d8ed3a60285fc76cfb000b6a0c07a83e36901e9fd34a419d09", + "size": 8 + }, + { + "path": "d5/f61.txt", + "sha256": "1673e98ce2c22ee1db1d9b82057571939baf4fa8d2213cf7378d93b6b8fcd524", + "size": 8 + }, + { + "path": "d5/f68.txt", + "sha256": "c6eeb00cf9d05ce207678966877371bd9b0809418f043ac6cb7389a7f65e7839", + "size": 8 + }, + { + "path": "d5/f75.txt", + "sha256": "9c980200ba42578fb13c3d76570ca453345b3859cb0a0d4f04dd7f70f3e8c788", + "size": 8 + }, + { + "path": "d5/f82.txt", + "sha256": "0d4f5d01449ed68022b1bf248974f209a1dde15f88c5e19f6368d4b9b8eb268c", + "size": 8 + }, + { + "path": "d5/f89.txt", + "sha256": "bccfb234d56b7bdeea5aad80e72857992b6272c549a509e1ab6a3455c70be6e5", + "size": 8 + }, + { + "path": "d5/f96.txt", + "sha256": "5676eb8ecb8c2888d92182336afd0e12d52e80978006bc3e6ed9928cf39350a5", + "size": 8 + }, + { + "path": "d6/f104.txt", + "sha256": "9194d3e106bf955a3f8233322ecfeadb52f4ba0afb3cdc8d4eef46eeb580e55d", + "size": 9 + }, + { + "path": "d6/f111.txt", + "sha256": "270abf73f351ddd4a60298e8bd8cb6e9cb9c5458d06d6b0dfd0ca02da73fe560", + "size": 9 + }, + { + "path": "d6/f118.txt", + "sha256": "fba935f2ec5d523db903eb39673d56b7608209b2b7e69dd478f6f214520ce568", + "size": 9 + }, + { + "path": "d6/f125.txt", + "sha256": "95f1ac14e397fc478a93f185df9ac80afb7e3f9a409d28b3dd9d5b427c8481c3", + "size": 9 + }, + { + "path": "d6/f13.txt", + "sha256": "daac96fe607d6c1e25b1963bb40aee990184ea338ba509778a61383d9d85cedc", + "size": 8 + }, + { + "path": "d6/f132.txt", + "sha256": "48fcdff37c275cfd2097da313c3e3e9003921db73e7cf9c343d429fa7587f766", + "size": 9 + }, + { + "path": "d6/f139.txt", + "sha256": "02241967d10e9d1d9db3e6fb8a6d3a1b534a958843dacdd3a5f03d93a21e01d7", + "size": 9 + }, + { + "path": "d6/f146.txt", + "sha256": "7b1cd00d3dd7fa3914b87c5d2db2c46c84af0abadc5ab7ab69f5bb68cf5d79ad", + "size": 9 + }, + { + "path": "d6/f153.txt", + "sha256": "9f73a8e120c01057141afe294cd50524be13847af8b3238e9d78eb7d3162a770", + "size": 9 + }, + { + "path": "d6/f160.txt", + "sha256": "c965f29942cbcd8fc478b7d7692ef9edcc95025955aef05a7f70cf99defef3e0", + "size": 9 + }, + { + "path": "d6/f167.txt", + "sha256": "e1871eea15dfed0abfd14c7bd8f9730f2e3b5814b2f449bd289eac2d7a11446f", + "size": 9 + }, + { + "path": "d6/f174.txt", + "sha256": "c44b17b5b41700229da74130be5de5aa531234b902839dded56158c1c0cc8836", + "size": 9 + }, + { + "path": "d6/f181.txt", + "sha256": "add8973630bc336a8bc3f2e2a021576c4b00c36bd1b9602c8144c9e3f0c62f29", + "size": 9 + }, + { + "path": "d6/f188.txt", + "sha256": "313bbbaf88abdeee861df004b23958fcb5458e0f7e61dbc12aefbac003e1947b", + "size": 9 + }, + { + "path": "d6/f195.txt", + "sha256": "f7b2ff581b9399dc6c449d0720d25b879d20ecf44a1fe769e16d76c4958d0552", + "size": 9 + }, + { + "path": "d6/f20.txt", + "sha256": "1dcc6d81aee1b5404b226fef4128baaddcc85e11d133d2d07da8d80325fac590", + "size": 8 + }, + { + "path": "d6/f27.txt", + "sha256": "4f28e94a66a39cc342133f4949ecf51d07a1666e7b9b93a0efba02f8b1a864b7", + "size": 8 + }, + { + "path": "d6/f34.txt", + "sha256": "320a977fa7c0e1bec9b667f1a3f823de8dbbda38238a7af0f0bbddb4e6da25e7", + "size": 8 + }, + { + "path": "d6/f41.txt", + "sha256": "392ea683b9499b24feafc7c757890f15b341c9e714b83219494064162a3cf57b", + "size": 8 + }, + { + "path": "d6/f48.txt", + "sha256": "2dc4a82b786aabeebebfb1bcf8a1beac3e80f4a4ae679b93488e59595c7d4c90", + "size": 8 + }, + { + "path": "d6/f55.txt", + "sha256": "17221add7ec0d4c0dd435ca5664e2bb07baec0d8b9098c3be6beb682ee86d68b", + "size": 8 + }, + { + "path": "d6/f6.txt", + "sha256": "180fa4e69eabbd12afde1390092594798e083d97f779d089cd753363c6905cd0", + "size": 7 + }, + { + "path": "d6/f62.txt", + "sha256": "e5dba0fb9e87d8d5a922182fc2b62fa0ddcd81b9eff8121516da92ab2ef0a442", + "size": 8 + }, + { + "path": "d6/f69.txt", + "sha256": "1da08d04129c8dac6fc65f3f5970e7d083e5040d81bcd931c435ddf53acc8fbe", + "size": 8 + }, + { + "path": "d6/f76.txt", + "sha256": "5116845702d01fba699be5351ca069545ab10ac3bc05b0a3040b120c90d2e6fc", + "size": 8 + }, + { + "path": "d6/f83.txt", + "sha256": "54a9b045bea90a8b195fe7ee026373e14a9449307830a61d9fb41024bd8a6508", + "size": 8 + }, + { + "path": "d6/f90.txt", + "sha256": "b35c1c8f7f30318ca780a3e0f7813ad1e11759cf76834e8786abfd7ceb501c4c", + "size": 8 + }, + { + "path": "d6/f97.txt", + "sha256": "f386b44233418dcd5d2dfedfd5a0cfde8c0d95bb7e72428f9a4b6e940aab36f1", + "size": 8 + } + ], + "head": "a5006d646174656b6579732d686561640101025820d75d630522e2fe648880f692dad6caad9c7ba5e6e3f1667818243fd7f4d4a81b0598c8a5006964302f66302e74787401070200030704582041b3fbbe4d8d6bbd44c4b610bb678c55dd53fdbe9a3ed257057ee1edf5136f5ba5006b64302f663130352e7478740109020703100458204f3e0bb09d500f469dbfb5fb72cfcf53a169e083dd494e73eb6924cdf231e499a5006b64302f663131322e747874010902100318190458206acf5782d82b9d7a2478cda798d49712039dc434487a73804d783bf03fcfd354a5006b64302f663131392e7478740109021819031822045820c8755fc85a160da3d7389986a8e9b1d9d55fda9155821d91ee4836c6a360ef35a5006b64302f663132362e747874010902182203182b045820cbeb37392c68bb3ffe974c2e582b8937f2c2ac52b086011556af5a60756b2726a5006b64302f663133332e747874010902182b0318340458208d07f7124cdb2955a0d0bcf11538588e9e74eed7eb186202b1cad83a88f8cadba5006a64302f6631342e747874010802183403183c0458202268d99d3a0f71eaed46a3b3bd2cc6338ec529187a9b1c486389a7fe4de4cd66a5006b64302f663134302e747874010902183c0318450458209c2eeeb40782620ddc99b45427f5efd163539a1eadc6edb8bef17c6712194550a5006b64302f663134372e747874010902184503184e045820d423a967312b02a76a7ebf875d4acd8bbbdbc7fcfa2b6aa06e8e8a273e716aa1a5006b64302f663135342e747874010902184e03185704582059368707328f3bc5fcafd7017735829561d1f42a856841294030911d58b5cb00a5006b64302f663136312e747874010902185703186004582075f57c75e8bfb67560ff81d43afe2cbeed7aca63ffb1392f764343b84852cc98a5006b64302f663136382e74787401090218600318690458207ce4c92300fca5ab9651730a68b1aa14c91935399f1780e039e100ea3a9ed958a5006b64302f663137352e74787401090218690318720458203a4b626a6b113df923dd3c5b6264a869a83df2a2b1b516b430ab5edf7cad40f6a5006b64302f663138322e747874010902187203187b0458207e41adbd7d4fd09b8194d83acb8b1807dd5a087427d95b4531fe15713a8b8477a5006b64302f663138392e747874010902187b0318840458205018537bb31be77037ed7f99104cd9843a8a6ac96f8f5f23a5d2385f958c1c5da5006b64302f663139362e747874010902188403188d045820eec292b7ff9c97cf452a274092ddbc087bebd817905bd4d7a3257a1adb293f45a5006a64302f6632312e747874010802188d031895045820fed050590e00099bbb2205a4fd738ff2e640ac843393dbae6a9084e35b081255a5006a64302f6632382e747874010802189503189d0458206767b224456213bce1271b2ab80ce439cd1a1f0cad956cced679131da320e7ada5006a64302f6633352e747874010802189d0318a50458209f2d3105d5198a772957876b25a16adc1f9dc87b3aaa43f27891bdd33fe64c96a5006a64302f6634322e74787401080218a50318ad045820ac31495c9d46e2e3a8f6798bbaf0b810906bb1f05496d2f27bf99ee35eef1c82a5006a64302f6634392e74787401080218ad0318b50458202b37d68a1483bb3eeb37be0185f8be36499abe12c45f5cab77b474c5b86655b0a5006a64302f6635362e74787401080218b50318bd045820dfa484b53abde12a6858865abf08ba5ca20a65433969c512af3b20e7167e981da5006a64302f6636332e74787401080218bd0318c504582030ac3a89651412ddfb1cab867ef6aa9c99b118cc098203b8a1eb5c62a10c0054a5006964302f66372e74787401070218c50318cc045820cdc4f52fe4cd55696b22732e3d35afd38e2905551ac4f7b4ceb44357740b62eaa5006a64302f6637302e74787401080218cc0318d404582039c5680e7049e9f3ddeeee654f7c72b1b75809b714a027a61fc5f5874c2baefda5006a64302f6637372e74787401080218d40318dc045820d881d57782c4ac6e8890f1a6a686fce65422f450cc511951f50930839c8e34e8a5006a64302f6638342e74787401080218dc0318e4045820cccdfdc5832f58221b58881f5243b4e002d111d6454f0049b76e8bded207f892a5006a64302f6639312e74787401080218e40318ec045820815335949da3bcc264941b9e20c5a135c68560b58ccb760db05ab3dd704b4b06a5006a64302f6639382e74787401080218ec0318f40458203e29ac43b6dee94fe38678021ef7a39c8f7bfa9a53ac59a6acbdc1ad0e6f04d5a5006964312f66312e74787401070218f40318fb0458205f5d584c5857d85af911ade1b2ae7cb593c17654282091f3ace31efd9e951360a5006b64312f663130362e74787401090218fb0319010404582049136d4375c4abe96fb300a57496bdd5b61c467580fe3e9bcede4d1745d9fde7a5006b64312f663131332e7478740109021901040319010d0458207222140c148966cf2ce92b9b24ef0ccea6edf14a71699ac14e55868ca822fa07a5006b64312f663132302e74787401090219010d031901160458209ced7138e6a73c5ad4bab9c48ffd4f7e1b3cec7c44a085e371d44487a2d901d1a5006b64312f663132372e7478740109021901160319011f04582033bfbbb34e5d8393fcc22b9b386dc2144c37d94899a9701140ed6fad314915cfa5006b64312f663133342e74787401090219011f031901280458202e05b8f4b8e288451e45c29f4df65f4e3bf4a4503bce2ce0ea5064587d9f1c70a5006b64312f663134312e74787401090219012803190131045820fb2eb6253a6e95c976339a2066c839c6cbcf5c12ac8db328d6f034a3b3006cb1a5006b64312f663134382e7478740109021901310319013a04582001756a03bfa71b5623700a5d17e821cecaf375d73032147f0be7e99f4d97f16ca5006a64312f6631352e74787401080219013a031901420458207e929ce0b4344d6061ffac95189b9abeee4189e292cbd3ac42a1b0e5afefceb4a5006b64312f663135352e7478740109021901420319014b045820e2d0f4ae99608dd0a37f14ac939c80504a09aa1576d8847499eaf21a3b9b7f9fa5006b64312f663136322e74787401090219014b031901540458202c6d4a5ce072bb47405feabf0b58fe172024bb36f6430f4a1ab43e9a1a280f50a5006b64312f663136392e7478740109021901540319015d045820313f798f953bf1da964978271398c2ba49d09b438ef12a9fd1b3bcc08515a43ba5006b64312f663137362e74787401090219015d031901660458206d04398e96f36894e1fe442c69824f101c171a65b90d748f66850d12eff749e9a5006b64312f663138332e7478740109021901660319016f045820455ca316005527b9e877d1f6f088f5ea5b4eac0804440ccd8ad222a80412554fa5006b64312f663139302e74787401090219016f031901780458204fc16199dff1550b40718a97dfd16b33c07fdf17dbef71b0b2b7ef2d47896d72a5006b64312f663139372e74787401090219017803190181045820632992c486d06709948a77c3e4c3b19f6bd4c26e363f783ceb743c2e462f9980a5006a64312f6632322e7478740108021901810319018904582043ddc00b68011db10f935b43e2ec8ec790504e3aa3c1a30f9c993c4019786ed0a5006a64312f6632392e7478740108021901890319019104582097e657de832e05c4919741d3a660c685268cd9bebf3b18812fe9de7fe5b8af21a5006a64312f6633362e74787401080219019103190199045820d780ce84b54230a61c017e1db416a1de000a22af21c63088b941364353e4fe03a5006a64312f6634332e747874010802190199031901a1045820bc100569ce0f46b7956f8677794df3b7cd8a5b3b19a0ade20877cf5a83ff949aa5006a64312f6635302e7478740108021901a1031901a90458200dc499f654ef22a02669732fe392994e310c179bf45561c0081096886f0aa60aa5006a64312f6635372e7478740108021901a9031901b1045820ad262018dcc9abe3e1386e375b9a8499d39a10b09124eb2d075e0ec1f7e52720a5006a64312f6636342e7478740108021901b1031901b9045820dfd8e3fdf747dac7322eb073b87ce8a7ab9bfbd2bd027761bf06d81466aec253a5006a64312f6637312e7478740108021901b9031901c1045820477671748e245576d38ace108d18ac6a649808ef885100caa95c035d8bde3280a5006a64312f6637382e7478740108021901c1031901c904582053e5c60934a28440da8c3dc8c7bb5aa5eae479651c6735f854683d4e57921bafa5006964312f66382e7478740107021901c9031901d00458203e7e2b6c54af7ff67e199f44eb09494ab201c828ea140470d0327a9155beee78a5006a64312f6638352e7478740108021901d0031901d8045820176585096d98f25070f206490e440771b0bab3c94bf2c01224c1048cf32b1451a5006a64312f6639322e7478740108021901d8031901e0045820e6761e3c8f476e36f386d8e7752ba8d713456363722426f52bceb7de069851d7a5006a64312f6639392e7478740108021901e0031901e804582015adc41271283c6bf1574d5774ccba97408052d5521fcee06ef3b24786719f54a5006b64322f663130302e7478740109021901e8031901f1045820567dcb69efc1fdedc905b3ebdac54004e690fbfbb33f782b6510b45aea7180fea5006b64322f663130372e7478740109021901f1031901fa045820adc7ce854049123aee41375f50c9c8880cc130ef9fd21be2547ca0ede52a6c46a5006b64322f663131342e7478740109021901fa03190203045820bede41b2321bfd095e00cd47d4fd7b50e7f3832309d341f7972fb33b47e37bbca5006b64322f663132312e7478740109021902030319020c0458209ea84e64f9c8d8a3be8a7bf83467514662fdad4d5b64828de50b493fa90fbbaba5006b64322f663132382e74787401090219020c0319021504582024033d5cb9509ca26ca9a2f29207ff2c8b8ad66209b02b9f16845a76ecd3fe70a5006b64322f663133352e7478740109021902150319021e0458209cd4ca42408e55a62d3c9aac09a6456d9efd6bba09df0811780fedbaee97aa38a5006b64322f663134322e74787401090219021e03190227045820e181e0a5162c492babd41d68006c774c1581c23d778b2f6fca1185bc20a5bd0ba5006b64322f663134392e7478740109021902270319023004582098842439283363840cf92dfd920388976d51acf1299878222dcf8c27289a0cd8a5006b64322f663135362e7478740109021902300319023904582034c0a62c38501782b6483cc3955ac86c7eb9943743ea419c865d7817cc235365a5006a64322f6631362e74787401080219023903190241045820341606b8587f7d2db4346c434daabe0335e98c53a0ff25e87629e03f3af2f694a5006b64322f663136332e7478740109021902410319024a0458207e7afb0a02c04badcaacaafc5c3da3a0bd85762d513419e47d3df425d9c92da5a5006b64322f663137302e74787401090219024a031902530458203b3b06e06d8e0f4411770ba19f931892ddc1b4a4122099f610fef810d70cb8f6a5006b64322f663137372e7478740109021902530319025c04582073d7dfcf1416c54d9f46d1e3415e2d0e5626fe05300c3861e4949f06a0025602a5006b64322f663138342e74787401090219025c03190265045820867f067333af2f1e17900c4108aa8db0e7f76c1fb15d505bcd8deb651e86822ba5006b64322f663139312e7478740109021902650319026e04582011aec14004789817218c0495571d2e016b08191f14ef95216e938165677ca21ba5006b64322f663139382e74787401090219026e031902770458208d0c04272ea30e3e75b83a976d6ab0515c04405317a293dee86838e495d40549a5006964322f66322e7478740107021902770319027e0458200b7e1391e807365614c548fd10a4a543cf0654268529f3fe768ed7042624c006a5006a64322f6632332e74787401080219027e03190286045820089b58e353e009c38eb69e8d74a8bad4fa834026e68378dacbe904404c20c615a5006a64322f6633302e7478740108021902860319028e0458204f8f77b0ea1b891ac5ff615b3aff7d84f52825a24813763ad8c65ab87ca85a9da5006a64322f6633372e74787401080219028e03190296045820f72306e5abea3faa8fc9cea7dd736d70b74c5cf53caa2206b5469e5670679095a5006a64322f6634342e7478740108021902960319029e045820e6be5e995093917a541f1bd191af2e626c79261ea381f9a6d372f44ef7ba578ca5006a64322f6635312e74787401080219029e031902a60458205130967ce959207bdddbfd1b4dda985228d9c3a76cb16e6369b2666d16302c23a5006a64322f6635382e7478740108021902a6031902ae045820535dbf9fb15305fa31653f3c253ffcd39fcf1af5c78ed17f23b633402b65e624a5006a64322f6636352e7478740108021902ae031902b6045820082ff1286de3865ff96127e5471261dde699dc76e4bd303f1be3b870d13da569a5006a64322f6637322e7478740108021902b6031902be0458209845310b70e271e394a6fa080e50167de798914d65690e457b6822b90e724617a5006a64322f6637392e7478740108021902be031902c6045820062d0e188cf636e30ea2ad43f99bd2035e8a78d65c0381900ba46eddf8ae33dca5006a64322f6638362e7478740108021902c6031902ce045820a6424d87f76bbf50a81137d5e09889ce5df58577847da0cd109236730b9e1dfda5006964322f66392e7478740107021902ce031902d50458209ab1c487d62413afc31c76ab9865cb9d50585772654047fba84311614a423c95a5006a64322f6639332e7478740108021902d5031902dd0458200540661e24d3c1874cc44672b7b093e5c431fd740d4a90e85bf0cd60e0d643e4a5006a64332f6631302e7478740108021902dd031902e5045820c2756086b5d70a1bcd6da71277f1238568b3c35aaacdf9e10e426d1876022e0da5006b64332f663130312e7478740109021902e5031902ee045820dd6a1f7191741a0cfddfa89df738fa61aed219e5885686f2caa1a942cecf4267a5006b64332f663130382e7478740109021902ee031902f7045820eefe2e79329682f1b489aae7958550652309ed57aa5571c539eadc0b4818c226a5006b64332f663131352e7478740109021902f7031903000458202ba0628717b9fa05da27ec4cf8390c0326b1ecd7a5149778581e54fb59021e70a5006b64332f663132322e74787401090219030003190309045820b47b8d4eae24cbde73d98888af6f36ffe18a3cce87a07e9517af3c56a3371e2da5006b64332f663132392e74787401090219030903190312045820cfe68167128d47fbfc68dabb8451b99eaac4d7299e5b933fa88eb3e06cd22685a5006b64332f663133362e7478740109021903120319031b045820dad2f356bedd34dc96d93f619bae73d8968345f5ffe340df4773f2b94dcbff26a5006b64332f663134332e74787401090219031b03190324045820b609cfbf652bd657d1d05447ec3d24ab294e5dc9c9783ffca98bd681721a0c0ba5006b64332f663135302e7478740109021903240319032d045820f010bb80606208ab8f268f42e8f6e30fad02b1e140ae43173a22652d46bbb604a5006b64332f663135372e74787401090219032d0319033604582063b7c778d13b1759adcca4efc7a34307fe2dc054a970c1279b4083dfc203d268a5006b64332f663136342e7478740109021903360319033f045820abe079b3340205b40ca5bfe4f7924618e035f1c0e6f34f92893042bfcb310f00a5006a64332f6631372e74787401080219033f031903470458202d4b67d07f5e4744906350ab1cb00c3494993493b5f46f5525e6c2156ff24c1da5006b64332f663137312e74787401090219034703190350045820093c602208eac6cd0c56bd208814454d9a222a5a017ce98dbf59c7c855fdf81da5006b64332f663137382e74787401090219035003190359045820f84a1f194cefcadfd581d0412230c81f0b34ac1a2c8e74a7625d4c0a23583fc6a5006b64332f663138352e747874010902190359031903620458202178f918f7578907e2dbcf6989161213e658e2c8bd40dd4f90048225e4ced61da5006b64332f663139322e7478740109021903620319036b04582035b3f53da7e2cc57784f79e2a853f351d38a27386a43c8586e9b34a2d09289e2a5006b64332f663139392e74787401090219036b0319037404582031486896dbcda47f7b20923398eba4748685778a772f4b6044047b5a1215600aa5006a64332f6632342e7478740108021903740319037c045820261439a9268d4244e2ef3c73f18448da0b54733f304777a12f172aa7222aa513a5006964332f66332e74787401070219037c03190383045820b90ae9387f8c3b679f6bbd62649e3b0649fd2f5ab82cc174af8977671367f761a5006a64332f6633312e7478740108021903830319038b04582043d4e495d1a4d5d83b9b9c00dcd4830124e9b5aa3cf90fb20b7ee830b8734287a5006a64332f6633382e74787401080219038b03190393045820b65a593d5747c47f0ac8f3e6aa4a24c9425f57a628afcc8f4e64376faf0e751ca5006a64332f6634352e7478740108021903930319039b0458201d0ae5e29e381e72894924c10a00023f0d248afce54413030eec438cff987253a5006a64332f6635322e74787401080219039b031903a30458201c18ad98070cfbe9c316a8c195095675199b9612006d09695f343c52a9a9be79a5006a64332f6635392e7478740108021903a3031903ab045820e64758700932cc17a32331a366ed1e6502a416a3b7af0ef29a0d72c53ec5c834a5006a64332f6636362e7478740108021903ab031903b3045820ffdbf68760876eed5b6b960a7b8e7c342831d6010ef1b56799aa5393a2625007a5006a64332f6637332e7478740108021903b3031903bb045820475e7e16265f77c204b22391b4a861a657cfc9fe40dc367aa9c271894eb22613a5006a64332f6638302e7478740108021903bb031903c304582084dde9252c0cf1e6dbb579e4991ca5dc88136ca3b0f5d7ac7275d18fedd1bf3aa5006a64332f6638372e7478740108021903c3031903cb04582093cd903bd691b426f2655215fa54649f60e6644bf1c3a1a358bf7447a01c34c1a5006a64332f6639342e7478740108021903cb031903d3045820cdbccb085dd56c5a025953bbf0f86f5a4b3046d3db3f9eaa1e4deea91b46e0eca5006b64342f663130322e7478740109021903d3031903dc045820d24660dbb6ed408c7eb295940ef0f70a3717a029eafafe44a03863be3060521ba5006b64342f663130392e7478740109021903dc031903e5045820d8b7f3eaf76c85f17dc258b67ca1a8b7e9cf7271f33fc772c4e1fdaa2947f5aba5006a64342f6631312e7478740108021903e5031903ed045820d71ce34c7d3a21bcc34ca421a1746d4edb5fb5c9ab350989dea7427f44f08be2a5006b64342f663131362e7478740109021903ed031903f6045820328fc2eaa4aeadc9001d0582b90df430e44c4ab906df41966da285866af02720a5006b64342f663132332e7478740109021903f6031903ff0458208d6abf04424c9e22aa98da1866ac1a3ea4740e245fe9da97a7d637b5cd8286a7a5006b64342f663133302e7478740109021903ff03190408045820e000254945e796fe41bdcd9251e7d444994930c2b3fa2a3247c3b2e67f362150a5006b64342f663133372e7478740109021904080319041104582073dca1b26196a7ea967d42212be854188551fab90b4280c74d919cc02af5b190a5006b64342f663134342e7478740109021904110319041a045820c970e4b88d375fd4cf0167768be209188b358e40db31d6931e93930c6c28cd5ba5006b64342f663135312e74787401090219041a03190423045820a4dce635dabe6ecec079d608bae3a785ac4d4c4b27ec827786cca10259f45718a5006b64342f663135382e7478740109021904230319042c04582058a745a6618004a3bdc59b0e572b72f4bb049fae8e10b2ade51448d50bfc2dd5a5006b64342f663136352e74787401090219042c03190435045820890f6f58c726ca28902849ced2760c85ee1e37b079bba70f99a9edfd8275dd96a5006b64342f663137322e7478740109021904350319043e04582009407fff8df5f3f1a9bebf94af3d322d93ab371a9e313fea44807a3f4711aaeca5006b64342f663137392e74787401090219043e031904470458204a44fc8cb73298120f1ece7929f1dff313c7425a64372271da03129db0452607a5006a64342f6631382e7478740108021904470319044f0458208e6210b234cfd1c105ec3c2f1d5d3ad055f39e2ef21e1cbff1858a804e1b718ba5006b64342f663138362e74787401090219044f0319045804582075c64db1ae4191c95e17ca7e1d446c711260c8be977acdc092c4f53b7e4aa486a5006b64342f663139332e747874010902190458031904610458202954c6523f4708859cdf4729d4fd7fd69254e7b3638f62579f86dbccce840ccfa5006a64342f6632352e74787401080219046103190469045820f52f4b2ac91aae4fcd1b64f49dc2227930b21a927157f854b1bbf8e45061916ea5006a64342f6633322e7478740108021904690319047104582049a44677956305ab5866009cf3613c9ac4213743629c3bfc3485a5389938bbfaa5006a64342f6633392e747874010802190471031904790458208f7e2ba9aa8bb0e3b00cb077fbf07e36c59ecb43953a3cfc081b72a86b274a37a5006964342f66342e7478740107021904790319048004582076f61e3503f81ffc8ccff1db16486d49a5f602267027e5ae85ae17d0c5e041b1a5006a64342f6634362e747874010802190480031904880458201495341df103b4646853a06bc11b25b8b1439d2ea1a9bbd8d715cf7cef367353a5006a64342f6635332e747874010802190488031904900458208e249e39dbae59944878eb747535b0defaf21cd324000eb753c7a13844fec833a5006a64342f6636302e74787401080219049003190498045820ce331d109ca966ab9b770406bcdf770ad4a6821d8d6b88fe10a37208b21d874fa5006a64342f6636372e747874010802190498031904a0045820816bb320c2d0b980cfa0b6720c14688354deb1b7728bcdef6f8994aadd995d03a5006a64342f6637342e7478740108021904a0031904a8045820f4f5187561b70a68bd3e402eb1e6f185b34d443cedfd1b8fa088d315c76e882ea5006a64342f6638312e7478740108021904a8031904b004582028f5442c54b7a84a3aa29d67d36be040ec4ddf8c8c2bf73eedb2df3565cf25bea5006a64342f6638382e7478740108021904b0031904b8045820880536a359ec38df26f7fe54e6c31e82059c31c4c519a8ab1828b43af1a2020ba5006a64342f6639352e7478740108021904b8031904c0045820483ddb7525ace65bcbfac757bc06914d9b6c5265ed4c401d7fd912506fd32de5a5006b64352f663130332e7478740109021904c0031904c90458208fb58d4b76c1dfb0216b739683b2c5e6ae50c18219f04e9127e37e352595d88aa5006b64352f663131302e7478740109021904c9031904d2045820ba130900d50051d0c2b9b73cb3ea7dc8d5ccd0242cb47645a3280f3a1f39d4dea5006b64352f663131372e7478740109021904d2031904db045820d4c304c746709c7584ce6729f173a745b1e4f4f6530822a4815b7aff90305349a5006a64352f6631322e7478740108021904db031904e304582024e274bd433cafe12b1649479db5a742f2805fb616d953dc83b528ab4d9af7caa5006b64352f663132342e7478740109021904e3031904ec0458206e56ce58714aa020b8b0a42367fbae2c6636769cb064149b368926f9850cf78da5006b64352f663133312e7478740109021904ec031904f5045820626bc99a69099e2201b39cac323112a57a35fd89cdaa62a4472d421dc418596da5006b64352f663133382e7478740109021904f5031904fe04582097f4cfce4ba3c929af4e7e9d19d82ec53cba1885c112ee5effb7cc64d955561da5006b64352f663134352e7478740109021904fe031905070458207b5441689b4336cc24b6b972364523a4eeaa36730641495e5b4b9821a4132406a5006b64352f663135322e74787401090219050703190510045820610390a679e9f2fbeeef0ccc064099f0255a9664ecafcb053658a0444c93f968a5006b64352f663135392e74787401090219051003190519045820cc770c856ff94072fab13d09bdd96a59cdb94b31c319896698dccebfa7f73664a5006b64352f663136362e7478740109021905190319052204582064ff3147221878d4ad885ba4c8d213e8901e109944e069f1cc39740197fd8708a5006b64352f663137332e7478740109021905220319052b0458206221f76fcfb721501c8e9ad80f5d195a22cb2b959a45454711565c94c5aea527a5006b64352f663138302e74787401090219052b03190534045820753083a521a803fdd1673c35f3deb0ac4d55744be6b5dff361bfd140a6ce16fba5006b64352f663138372e7478740109021905340319053d0458204ba786b81404c7c02fe8d8efd3eca60ffa85d4a023e3f557ceece593064498a6a5006a64352f6631392e74787401080219053d03190545045820c23c64e866d511e420df8be80dfb96873b8fdd48c01358398d1d156723080ed0a5006b64352f663139342e7478740109021905450319054e045820cc3aca3875eda494d1bd89bea43844f845e21be493413d56bf542751f2f0bf39a5006a64352f6632362e74787401080219054e03190556045820b3850a429f49d5bddfb1dedd1ab6fe667faf3790247a6a3b2b86298947d65833a5006a64352f6633332e7478740108021905560319055e045820111320d3ddfc2d1493ca5f21b32c570d4da8505ab4865daac5cfb8505539a4a7a5006a64352f6634302e74787401080219055e03190566045820722a043bec8601a2ab38745adb5563ca8db525e9bd56d71717cbff37351c8ed7a5006a64352f6634372e7478740108021905660319056e0458203ea81a90631ed12b32e600a4c5a837166755792eeb47204710a16c401196badba5006964352f66352e74787401070219056e0319057504582027c7d24edb77a005c6109792cc4efc120bc2388a5464d54745b99f006d241db9a5006a64352f6635342e7478740108021905750319057d0458204b1217dde24476d8ed3a60285fc76cfb000b6a0c07a83e36901e9fd34a419d09a5006a64352f6636312e74787401080219057d031905850458201673e98ce2c22ee1db1d9b82057571939baf4fa8d2213cf7378d93b6b8fcd524a5006a64352f6636382e7478740108021905850319058d045820c6eeb00cf9d05ce207678966877371bd9b0809418f043ac6cb7389a7f65e7839a5006a64352f6637352e74787401080219058d031905950458209c980200ba42578fb13c3d76570ca453345b3859cb0a0d4f04dd7f70f3e8c788a5006a64352f6638322e7478740108021905950319059d0458200d4f5d01449ed68022b1bf248974f209a1dde15f88c5e19f6368d4b9b8eb268ca5006a64352f6638392e74787401080219059d031905a5045820bccfb234d56b7bdeea5aad80e72857992b6272c549a509e1ab6a3455c70be6e5a5006a64352f6639362e7478740108021905a5031905ad0458205676eb8ecb8c2888d92182336afd0e12d52e80978006bc3e6ed9928cf39350a5a5006b64362f663130342e7478740109021905ad031905b60458209194d3e106bf955a3f8233322ecfeadb52f4ba0afb3cdc8d4eef46eeb580e55da5006b64362f663131312e7478740109021905b6031905bf045820270abf73f351ddd4a60298e8bd8cb6e9cb9c5458d06d6b0dfd0ca02da73fe560a5006b64362f663131382e7478740109021905bf031905c8045820fba935f2ec5d523db903eb39673d56b7608209b2b7e69dd478f6f214520ce568a5006b64362f663132352e7478740109021905c8031905d104582095f1ac14e397fc478a93f185df9ac80afb7e3f9a409d28b3dd9d5b427c8481c3a5006a64362f6631332e7478740108021905d1031905d9045820daac96fe607d6c1e25b1963bb40aee990184ea338ba509778a61383d9d85cedca5006b64362f663133322e7478740109021905d9031905e204582048fcdff37c275cfd2097da313c3e3e9003921db73e7cf9c343d429fa7587f766a5006b64362f663133392e7478740109021905e2031905eb04582002241967d10e9d1d9db3e6fb8a6d3a1b534a958843dacdd3a5f03d93a21e01d7a5006b64362f663134362e7478740109021905eb031905f40458207b1cd00d3dd7fa3914b87c5d2db2c46c84af0abadc5ab7ab69f5bb68cf5d79ada5006b64362f663135332e7478740109021905f4031905fd0458209f73a8e120c01057141afe294cd50524be13847af8b3238e9d78eb7d3162a770a5006b64362f663136302e7478740109021905fd03190606045820c965f29942cbcd8fc478b7d7692ef9edcc95025955aef05a7f70cf99defef3e0a5006b64362f663136372e7478740109021906060319060f045820e1871eea15dfed0abfd14c7bd8f9730f2e3b5814b2f449bd289eac2d7a11446fa5006b64362f663137342e74787401090219060f03190618045820c44b17b5b41700229da74130be5de5aa531234b902839dded56158c1c0cc8836a5006b64362f663138312e74787401090219061803190621045820add8973630bc336a8bc3f2e2a021576c4b00c36bd1b9602c8144c9e3f0c62f29a5006b64362f663138382e7478740109021906210319062a045820313bbbaf88abdeee861df004b23958fcb5458e0f7e61dbc12aefbac003e1947ba5006b64362f663139352e74787401090219062a03190633045820f7b2ff581b9399dc6c449d0720d25b879d20ecf44a1fe769e16d76c4958d0552a5006a64362f6632302e7478740108021906330319063b0458201dcc6d81aee1b5404b226fef4128baaddcc85e11d133d2d07da8d80325fac590a5006a64362f6632372e74787401080219063b031906430458204f28e94a66a39cc342133f4949ecf51d07a1666e7b9b93a0efba02f8b1a864b7a5006a64362f6633342e7478740108021906430319064b045820320a977fa7c0e1bec9b667f1a3f823de8dbbda38238a7af0f0bbddb4e6da25e7a5006a64362f6634312e74787401080219064b03190653045820392ea683b9499b24feafc7c757890f15b341c9e714b83219494064162a3cf57ba5006a64362f6634382e7478740108021906530319065b0458202dc4a82b786aabeebebfb1bcf8a1beac3e80f4a4ae679b93488e59595c7d4c90a5006a64362f6635352e74787401080219065b0319066304582017221add7ec0d4c0dd435ca5664e2bb07baec0d8b9098c3be6beb682ee86d68ba5006964362f66362e7478740107021906630319066a045820180fa4e69eabbd12afde1390092594798e083d97f779d089cd753363c6905cd0a5006a64362f6636322e74787401080219066a03190672045820e5dba0fb9e87d8d5a922182fc2b62fa0ddcd81b9eff8121516da92ab2ef0a442a5006a64362f6636392e7478740108021906720319067a0458201da08d04129c8dac6fc65f3f5970e7d083e5040d81bcd931c435ddf53acc8fbea5006a64362f6637362e74787401080219067a031906820458205116845702d01fba699be5351ca069545ab10ac3bc05b0a3040b120c90d2e6fca5006a64362f6638332e7478740108021906820319068a04582054a9b045bea90a8b195fe7ee026373e14a9449307830a61d9fb41024bd8a6508a5006a64362f6639302e74787401080219068a03190692045820b35c1c8f7f30318ca780a3e0f7813ad1e11759cf76834e8786abfd7ceb501c4ca5006a64362f6639372e7478740108021906920319069a045820f386b44233418dcd5d2dfedfd5a0cfde8c0d95bb7e72428f9a4b6e940aab36f10781a3006d6f72672e6578616d706c652e6801010241ff", + "length": 46173, + "padded_length": 47104, + "result": "ok", + "verdicts": [ + "F0", + "S0" + ], + "with": "time" + } + ], + "reencoded": true, + "sha256": "1158091f8d3a67af33217cc01ecab7a97ce68cdadbb5c38fde845d7c39186629" + } + ], + "source": "c531e936fa8188a4aab01575607cc85d4f5d4fa4" +} diff --git a/tool/capsule_interop_dart_samples.dart b/tool/capsule_interop_dart_samples.dart new file mode 100644 index 0000000..3f21744 --- /dev/null +++ b/tool/capsule_interop_dart_samples.dart @@ -0,0 +1,43 @@ +// Writes the samples of the interoperability of the writer of capsules of +// datekeys-dart, stage 6b: the capsules of the recipes of +// test/capsule_interop_support.dart, which this library writes with +// SeededRandomSource or with the CSPRNG of the platform, their .dkk, and +// samples.json, the recipes with the name of each file, into a directory. +// tool/capsule_interop_go_verdicts.go then opens them with Go and writes +// test/vectors/capsule_interop.json; the tests write the seeded ones again +// and compare them with what Go read. +// +// dart run tool/capsule_interop_dart_samples.dart +// +// ignore_for_file: avoid_print +import 'dart:convert'; +import 'dart:io'; + +import '../test/capsule_interop_support.dart'; + +Future main(List args) async { + if (args.length != 1) { + stderr.writeln( + 'usage: dart run tool/capsule_interop_dart_samples.dart ', + ); + exit(2); + } + final dir = Directory(args.single)..createSync(recursive: true); + final samples = interopSamples(); + for (var i = 0; i < samples.length; i++) { + final s = samples[i]; + final w = await writeSample(s); + File('${dir.path}/$i.dkc').writeAsBytesSync(w.dkc); + s['file'] = '$i.dkc'; + final dkk = w.dkk; + if (dkk != null) { + File('${dir.path}/$i.dkk').writeAsBytesSync(dkk); + s['dkk'] = '$i.dkk'; + } + print('${s['name']}: ${w.dkc.length} bytes'); + } + File('${dir.path}/samples.json').writeAsStringSync( + const JsonEncoder.withIndent(' ').convert({'samples': samples}), + ); + print('wrote ${samples.length} samples to ${dir.path}'); +} diff --git a/tool/capsule_interop_go_verdicts.go b/tool/capsule_interop_go_verdicts.go new file mode 100644 index 0000000..f9fa9ae --- /dev/null +++ b/tool/capsule_interop_go_verdicts.go @@ -0,0 +1,376 @@ +//go:build ignore + +// Opens with Go the capsules that the writer of datekeys-dart wrote, stage +// 6b of docs/PLAN_dart.md, and writes test/vectors/capsule_interop.json and +// capsule_interop.g.dart: each recipe of +// tool/capsule_interop_dart_samples.dart with the length and the SHA-256 of +// its capsule and its .dkk, and +// +// - inspect: capsule.Inspect, its format, policy, DateKey, public note and +// the number of stanzas of INNER_ACCESS_AGE; +// - opens: capsule.Open with the published release of the round and each +// credential alone (the identity of each label, the key of words of the +// capsule_id of its header, the .dkk), all together and none: the result +// and the step, and of a capsule opened, its files with their SHA-256, +// the head encoded again, the verdicts and the area; +// - reencoded: whether PUBLIC_HEADER, CONTROL_CBOR, opened layer by layer +// with agewrap, and the .dkk encode again to the bytes written; +// - go_same: for a sample written with the seeded source, whether +// capsule.EncryptFiles writes the same bytes while crypto/rand reads the +// same keystream. +// +// It imports internal/testkit, so it runs in an export of datekeys-go made +// with git archive, without changing the repository, on the branch v0.12 at +// c531e93, after the Dart tool wrote the samples: +// +// commit=$(git -C ../datekeys-go rev-parse v0.12) +// root=$PWD +// tmp=$(mktemp -d) +// dart run tool/capsule_interop_dart_samples.dart "$tmp/samples" +// git -C ../datekeys-go archive "$commit" | tar -x -C "$tmp" +// cp tool/capsule_interop_go_verdicts.go "$tmp" +// (cd "$tmp" && go run ./capsule_interop_go_verdicts.go -source "$commit" \ +// -samples "$tmp/samples" -out "$root/test/vectors") +// rm -rf "$tmp" +package main + +import ( + "bytes" + "context" + "crypto/rand" + "crypto/sha256" + "encoding/hex" + "encoding/json" + "flag" + "fmt" + "io" + "log" + "os" + "path/filepath" + "runtime" + "time" + + "filippo.io/age" + "golang.org/x/crypto/chacha20" + + datekeys "g.activething.com/go/DateKeys" + "g.activething.com/go/DateKeys/accesskey" + "g.activething.com/go/DateKeys/agewrap" + "g.activething.com/go/DateKeys/capsule" + "g.activething.com/go/DateKeys/datekey" + "g.activething.com/go/DateKeys/extension" + "g.activething.com/go/DateKeys/internal/testkit" + "g.activething.com/go/DateKeys/profile" + "g.activething.com/go/DateKeys/wordkey" +) + +type obj = map[string]any + +func h(b []byte) string { return hex.EncodeToString(b) } + +func sum(b []byte) string { + s := sha256.Sum256(b) + return h(s[:]) +} + +func must[T any](v T, err error) T { + if err != nil { + log.Fatal(err) + } + return v +} + +func unhex(s string) []byte { return must(hex.DecodeString(s)) } + +type extIn struct { + ID string `json:"id"` + Version uint64 `json:"version"` + Data *string `json:"data,omitempty"` +} + +type fileIn struct { + Path string `json:"path"` + Text *string `json:"text,omitempty"` + Pattern int `json:"pattern,omitempty"` + MTime []int64 `json:"mtime,omitempty"` +} + +// sample is a recipe of test/capsule_interop_support.dart, in the form of +// the recipes of tool/capsule_writer_go_vectors_test.go, with its files. +type sample struct { + Name string `json:"name"` + Seed string `json:"seed"` + Random string `json:"random"` + Round uint64 `json:"round"` + Policy string `json:"policy,omitempty"` + Identities []string `json:"identities,omitempty"` + Portable bool `json:"portable,omitempty"` + Words []string `json:"words,omitempty"` + Padding int `json:"padding,omitempty"` + Files []fileIn `json:"files,omitempty"` + Comment string `json:"comment,omitempty"` + Author string `json:"author,omitempty"` + Note string `json:"note,omitempty"` + Critical []extIn `json:"critical,omitempty"` + Noncritical []extIn `json:"noncritical,omitempty"` + ControlCritical []extIn `json:"control_critical,omitempty"` + ControlNoncritical []extIn `json:"control_noncritical,omitempty"` + HeadCritical []extIn `json:"head_critical,omitempty"` + HeadNoncritical []extIn `json:"head_noncritical,omitempty"` + TestVectors bool `json:"test_vectors,omitempty"` + TestAreaLen uint32 `json:"test_area_len,omitempty"` + Node *bool `json:"node,omitempty"` + File string `json:"file"` + DKK string `json:"dkk,omitempty"` +} + +func identity(label string) *age.X25519Identity { + s := sha256.Sum256([]byte("identity " + label)) + return must(agewrap.X25519IdentityFromRaw(s[:])) +} + +func exts(list []extIn) []extension.Extension { + var out []extension.Extension + for _, e := range list { + x := extension.Extension{ID: e.ID, Version: e.Version} + if e.Data != nil { + x.Data = unhex(*e.Data) + } + out = append(out, x) + } + return out +} + +func pattern(n int) []byte { + b := make([]byte, n) + for i := range b { + b[i] = byte(31*i + 7) + } + return b +} + +func extSet(s sample) extension.Set { + set := extension.Set{} + for _, l := range [][]extIn{s.Critical, s.Noncritical, s.ControlCritical, s.ControlNoncritical, s.HeadCritical, s.HeadNoncritical} { + for _, e := range l { + set[e.ID] = append(set[e.ID], e.Version) + } + } + return set +} + +// seeded is crypto/rand.Reader reading the keystream of SeededRandomSource. +type seeded struct{ c *chacha20.Cipher } + +func (s *seeded) Read(p []byte) (int, error) { + clear(p) + s.c.XORKeyStream(p, p) + return len(p), nil +} + +// goWrites writes the sample with capsule.EncryptFiles while crypto/rand +// reads the keystream of its seed. +func goWrites(s sample) []byte { + q := profile.Quicknet() + opts := capsule.EncryptOptions{ + Profile: q, UnlockAt: must(datekey.RoundTime(q, s.Round)), + Now: func() time.Time { return time.Unix(q.GenesisTime, 0) }, + NewPortableKey: s.Portable, Words: s.Words, Padding: capsule.Padding(s.Padding), + Critical: exts(s.Critical), Noncritical: exts(s.Noncritical), + ControlCritical: exts(s.ControlCritical), ControlNoncritical: exts(s.ControlNoncritical), + HeadCritical: exts(s.HeadCritical), HeadNoncritical: exts(s.HeadNoncritical), + Comment: s.Comment, Author: s.Author, PublicNote: s.Note, + TestVectors: s.TestVectors, TestAreaLen: s.TestAreaLen, + } + if s.Policy == "time_and_key" { + opts.Policy = capsule.TimeAndKey + } + for _, l := range s.Identities { + opts.Recipients = append(opts.Recipients, identity(l).Recipient()) + } + var sources []capsule.Source + for _, f := range s.Files { + content := pattern(f.Pattern) + if f.Text != nil { + content = []byte(*f.Text) + } + var mtime time.Time + if f.MTime != nil { + mtime = time.Unix(f.MTime[0], f.MTime[1]) + } + sources = append(sources, capsule.Source{Path: f.Path, Size: int64(len(content)), ModTime: mtime, + Open: func() (io.ReadCloser, error) { return io.NopCloser(bytes.NewReader(content)), nil }}) + } + key := sha256.Sum256([]byte(s.Seed)) + old := rand.Reader + rand.Reader = &seeded{must(chacha20.NewUnauthenticatedCipher(key[:], make([]byte, chacha20.NonceSize)))} + defer func() { rand.Reader = old }() + var b bytes.Buffer + must(capsule.EncryptFiles(&b, sources, opts)) + return b.Bytes() +} + +func opened(s sample, dkc []byte, ids []age.Identity, dkk []byte) obj { + files := &testkit.MemorySink{} + o := capsule.OpenOptions{ + Registry: testkit.Registry(), Extensions: extSet(s), + Source: testkit.NewSource(testkit.Release(1000), testkit.Release(1001)), + Identities: ids, Sink: files, + Now: func() time.Time { return time.Date(2026, 10, 6, 0, 0, 0, 0, time.UTC) }, + } + if dkk != nil { + o.AccessKeyFile = bytes.NewReader(dkk) + } + res, err := capsule.Open(context.Background(), nil, bytes.NewReader(dkc), o) + v := obj{} + if err != nil { + v["result"] = datekeys.Code(err) + if v["result"] == "" { + v["result"] = "error: " + err.Error() + } + if res != nil && res.Inspection != nil && len(res.Inspection.Checks) > 0 { + v["step"] = res.Inspection.Checks[len(res.Inspection.Checks)-1].Step + } + return v + } + v["result"] = "ok" + fs := []obj{} + for i, f := range res.Head.Files { + fj := obj{"path": f.Path, "size": f.Size, "sha256": sum(files.Files[i])} + if f.HasMTime { + fj["mtime"] = f.MTime + } + fs = append(fs, fj) + } + v["files"] = fs + v["comment"] = res.Head.Comment + v["author"] = res.Head.Author + v["head"] = h(must(capsule.EncodeHead(res.Head))) + v["verdicts"] = []string{string(res.Verdicts.Signature), string(res.Verdicts.Seal)} + v["area_len"] = res.AreaLen + v["length"] = res.PayloadLength + v["padded_length"] = res.PaddedLength + return v +} + +func main() { + out := flag.String("out", "", "where the vectors go") + src := flag.String("source", "", "the commit of datekeys-go") + dir := flag.String("samples", "", "the directory of the samples") + flag.Parse() + if *out == "" || *src == "" || *dir == "" { + log.Fatal("usage: -source -samples -out ") + } + var in struct { + Samples []sample `json:"samples"` + } + must(0, json.Unmarshal(must(os.ReadFile(filepath.Join(*dir, "samples.json"))), &in)) + q := profile.Quicknet() + var results, node []obj + for _, s := range in.Samples { + dkc := must(os.ReadFile(filepath.Join(*dir, s.File))) + var dkk []byte + if s.DKK != "" { + dkk = must(os.ReadFile(filepath.Join(*dir, s.DKK))) + } + insp, err := capsule.Inspect(bytes.NewReader(dkc), capsule.InspectOptions{Registry: testkit.Registry(), Extensions: extSet(s)}) + if err != nil { + log.Fatalf("%s: %v", s.Name, err) + } + note, _ := insp.Header.PublicNote() + capsuleID := insp.Header.CapsuleID + r := obj{ + "name": s.Name, "length_dkc": len(dkc), "sha256": sum(dkc), + "inspect": obj{ + "format": int(insp.Prelude.Format), "policy": insp.Header.Policy.String(), + "datekey": insp.Header.DateKey.String(), "note": note, + }, + } + if dkk != nil { + r["dkk_sha256"] = sum(dkk) + } + var opens []obj + with := func(name string, ids []age.Identity, k []byte) { + v := opened(s, dkc, ids, k) + v["with"] = name + opens = append(opens, v) + } + round := insp.Header.DateKey.Round + tid := must(agewrap.NewTimeIdentity(q, round, testkit.Release(round))) + pre := insp.Prelude + header := dkc[capsule.PreludeSize : capsule.PreludeSize+int(pre.PublicHeaderLen)] + sealed := dkc[capsule.PreludeSize+int(pre.PublicHeaderLen) : capsule.PreludeSize+int(pre.PublicHeaderLen)+int(pre.SealedControlLen)] + same := bytes.Equal(must(capsule.EncodeHeader(insp.Header)), header) + control := must(io.ReadAll(must(age.Decrypt(bytes.NewReader(sealed), tid)))) + if s.Policy != "time_and_key" { + with("time", nil, nil) + } else { + var all []age.Identity + for _, l := range s.Identities { + with("identity "+l, []age.Identity{identity(l)}, nil) + all = append(all, identity(l)) + } + if len(s.Words) != 0 { + id := must(wordkey.Identity(s.Words, q.ChainHash[:], round, capsuleID[:])) + with("words", []age.Identity{id}, nil) + all = append(all, id) + } + if dkk != nil { + with("portable", nil, dkk) + } + with("all", all, dkk) + with("none", nil, nil) + stanzas := must(agewrap.Stanzas(bytes.NewReader(control))) + r["inner_stanzas"] = len(stanzas) + var id age.Identity + if len(all) > 0 { + id = all[0] + } else { + k := must(accesskey.Decode(bytes.NewReader(dkk))) + id = must(agewrap.X25519IdentityFromRaw(k.Material)) + } + control = must(io.ReadAll(must(age.Decrypt(bytes.NewReader(control), must(agewrap.NewAccessIdentity(agewrap.AccessSlots, id)))))) + } + c := must(capsule.DecodeControl(control, pre.Format)) + same = same && bytes.Equal(must(capsule.EncodeControl(c, pre.Format)), control) + if dkk != nil { + k := must(accesskey.Decode(bytes.NewReader(dkk))) + var b bytes.Buffer + must(0, accesskey.Encode(&b, k)) + same = same && bytes.Equal(b.Bytes(), dkk) + r["dkk_capsule_digest"] = bytes.Equal(k.Verification.CapsuleDigest, must(hex.DecodeString(sum(dkc)))) + } + r["reencoded"] = same + r["opens"] = opens + if s.Random == "seeded" { + r["go_same"] = bytes.Equal(goWrites(s), dkc) + } + results = append(results, r) + if s.Node == nil || *s.Node { + node = append(node, r) + } + fmt.Printf("%s: %d bytes\n", s.Name, len(dkc)) + } + doc := func(results []obj) []byte { + var buf bytes.Buffer + enc := json.NewEncoder(&buf) + enc.SetEscapeHTML(false) + enc.SetIndent("", " ") + must(0, enc.Encode(obj{ + "description": "Capsules that datekeys-dart writes from the recipes of test/capsule_interop_support.dart, with SeededRandomSource or the CSPRNG of the platform, inspected and opened by capsule.Open of datekeys-go with each credential, all together and none, their layers encoded again, and, for a seeded one, whether capsule.EncryptFiles writes the same bytes (tool/capsule_interop_go_verdicts.go).", + "source": *src, + "go": runtime.Version(), + "samples": results, + })) + return buf.Bytes() + } + full := doc(results) + must(0, os.WriteFile(filepath.Join(*out, "capsule_interop.json"), full, 0o644)) + dart := "// Generated by tool/capsule_interop_go_verdicts.go: the samples of\n" + + "// test/vectors/capsule_interop.json that are not marked node false, for the\n" + + "// tests that also run compiled to JavaScript. Do not edit.\n\n" + + "/// Part of test/vectors/capsule_interop.json.\n" + + "const capsuleInteropJson = r'''\n" + string(doc(node)) + "''';\n" + must(0, os.WriteFile(filepath.Join(*out, "capsule_interop.g.dart"), []byte(dart), 0o644)) + fmt.Printf("wrote %d samples\n", len(results)) +}