I'm Steve Hamblett, a long time Dartisan and C/C++/C# developer in my day job, with a particular interest in IOT/embedded stuff. See my Dart Pub publisher site for a few more details. For now here are some stats for my repositories -
A few badges -
A CBOR implementation for Dart
License: MIT License
I'm Steve Hamblett, a long time Dartisan and C/C++/C# developer in my day job, with a particular interest in IOT/embedded stuff. See my Dart Pub publisher site for a few more details. For now here are some stats for my repositories -
A few badges -
Given the following cbor encoded data:
Hex String:
81A301A1010103A101010CA10101
Expected output:
[{1: {1: 1}, 3: {1: 1}, 12: {1: 1}}]
When decoding like this:
import 'package:convert/convert.dart';
import 'package:cbor/cbor.dart' as cbor;
void main() {
String hexString = "84a301a1010103a101010ca10101";
List<int> bytes = hex.decode(hexString);
final cbor.Cbor inst = cbor.Cbor();
inst.decodeFromList(bytes);
List<dynamic> decoded = inst.getDecodedData();
print(decoded);
}
The output is this:
[[], {1: {1: 1}, 3: {1: 1}, 12: {1: 1}}]
So instead of wrapping the outer map with an array, the array gets prepended as empty.
This happens with similar, more complex data aswell.
Did I miss something when decoding?
I just created a new dart project, and run the example script.
Then I've got these errors:
../../.pub-cache/hosted/pub.dev/cbor-6.1.0/lib/src/decoder/pretty_print.dart:37:28: Error: The class 'Sink' can't be extended outside of its library because it's an interface class.
class _PrettyPrint extends Sink<RawValue> {
^
../../.pub-cache/hosted/pub.dev/cbor-6.1.0/lib/src/encoder/encoder.dart:40:34: Error: The class 'Sink' can't be extended outside of its library because it's an interface class.
class _ChunkedConversion extends Sink<CborValue> {
^
../../.pub-cache/hosted/pub.dev/cbor-6.1.0/lib/src/decoder/stage2.dart:26:29: Error: The class 'Sink' can't be extended outside of its library because it's an interface class.
class RawSinkTagged extends Sink<RawValue> {
^
../../.pub-cache/hosted/pub.dev/cbor-6.1.0/lib/src/decoder/stage3.dart:16:24: Error: The class 'Sink' can't be extended outside of its library because it's an interface class.
class CborSink extends Sink<RawValueTagged> {
^
../../.pub-cache/hosted/pub.dev/cbor-6.1.0/lib/src/encoder/sink.dart:15:35: Error: The class 'Sink' can't be extended outside of its library because it's an interface class.
abstract class EncodeSink extends Sink<List<int>> {
^
../../.pub-cache/hosted/pub.dev/cbor-6.1.0/lib/src/utils/utils.dart:33:30: Error: The class 'Sink' can't be extended outside of its library because it's an interface class.
class _MapSink<T, U> extends Sink<U> {
Dart version:
> dart --version
Dart SDK version: 3.1.0-333.0.dev (dev) (Thu Jul 20 13:04:10 2023 -0700) on "macos_arm64"
Work tracker for the Dart 2 update
Are there plans to migrate to null safety soon?
Hello, I'd like to change the project so that the API is streamlined and in pair with dart:convert
Codec
API.
These are some really big changes so I'd like to know what you think about these before I start working on this.
The higher level construct is CborCodec
which exposes CborDecoder
and CborEncoder
which are stream adapters. The decoder can concatenate the whole stream before doing the actual decode.
These encodings and decodings work on the CborValue
abstract type. Each type that the CBOR can encode or decode is a subtype of this. Below follows the fields of each value. The idea of having streams and futures is that streamed decoding and encoding may be performed with no API breaks.
CborValue
β Iterable<CborTag> tags;
β CborHint hint;
βββ CborInt
β int value;
βββ CborBytes
β β Stream<List<int>> bytes;
β βββ CborDateTimeEpoch
β β DateTime dateTime;
β βββ CborBigInt
β β BigInt value;
β βββ CborDecFraction
β β BigInt exp;
β β BigInt mantissa;
β βββ CborBigFloat
β β BigInt exp;
β β BigInt mantissa;
β βββ CborEncodedCbor
βββ CborString
β β Future<String> string;
β βββ CborDateTimeString
β β DateTime dateTime;
β βββ CborBase64Url
β β Stream<List<int>> decoded;
β βββ CborBase64
β β Stream<List<int>> decoded;
β βββ CborBase16
β β Stream<List<int>> decoded;
β βββ CborRegex
β βββ CborMime
βββ CborArray<V>
β Stream<CborValue> values;
βββ CborMap<K, V>
β Stream<MapEntry<CborValue, CborValue>> entries;
βββ CborFloat
β double value;
βββ CborBool
β bool value;
βββ CborNull
βββ CborUndef
CborCodec
CborEncoder
CborDecoder
(Did I forget anything?)
The idea is that the hints are encoded as types as well. The is
operator can be used to check the type. Floats and ints are encoded with the smallest possible representation.
Future idea: library simple.dart
that implements Codec
that work with dynamic
and encodes and decodes in a best-effort fashion and discards data such as hints that go unused.
Any thoughts?
An example of code that I had:
import 'package:cbor/cbor.dart' as cbor_lib;
class MsgReader {
static final cbor = cbor_lib.Cbor();
static List<dynamic> readReceivedData(Uint8List list) {
cbor.clearDecodeStack();
cbor.decodeFromList(list);
debugPrint(cbor.decodedToJSON());
return cbor.getDecodedData()!;
}
static void readSpawnYourPlayer(Uint8List list) {
var data = readReceivedData(list).first;
var playerName = data['Name'];
}
}
All of those functions are gone. I'm trying to figure out how to decode a Uint8List
into a map with property names as keys and I can't.
Hello, I got this error after call getDecodedData() and the value is a list of int
var value = await c.read();
final cbor = Cbor();
final payloadBuffer = Uint8Buffer();
payloadBuffer.addAll(value);
cbor.decodeFromBuffer(payloadBuffer);
cbor.getDecodedData();
E/flutter (10236): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Bad state: No element
E/flutter (10236): #0 ListQueue.last (dart:collection/queue.dart:623:25)
E/flutter (10236): #1 Stack.pop
package:cbor/src/cbor_stack.dart:33
E/flutter (10236): #2 ItemStack.pop
package:cbor/src/cbor_item_stack.dart:35
E/flutter (10236): #3 DecodeStack._processIterable
package:cbor/src/cbor_decode_stack.dart:96
E/flutter (10236): #4 DecodeStack._processIterable
package:cbor/src/cbor_decode_stack.dart:100
E/flutter (10236): #5 DecodeStack.build
package:cbor/src/cbor_decode_stack.dart:56
E/flutter (10236): #6 Cbor.getDecodedData
package:cbor/src/cbor.dart:65
i try to run the code at belowοΌ i don't unstand why i encode 43008 but decode another num -22528
var a = cbor.encode(const CborSmallInt(43008));
print(a); // [25, 168, 0]
var aa = cbor.decode(a);
print(aa); // -22528
and i use cbor: ^5.0.0
I have a cbor data. On printing CborValue
with cborDecode, I'm getting this
[166, 101, 112, 114, 111, 116, 111, 1, 99, 118, 101, 114, 101, 49, 46, 48, 46, 51, 101, 98, 105, 114, 116, 104, 26, 0, 10, 174, 97, 102, 112, 117, 98, 107, 101, 121, 88, 33, 3, 50, 131, 14, 50, 9, 233, 80, 149, 122, 211, 150, 76, 34, 63, 136, 248, 223, 97, 218, 210, 247, 22, 8, 127, 92, 51, 109, 166, 51, 114, 165, 110, 106, 99, 97, 114, 100, 95, 110, 111, 110, 99, 101, 80, 204, 191, 224, 231, 61, 126, 115, 32, 173, 10, 117, 112, 3, 36, 30, 117, 101, 115, 108, 111, 116, 115, 130, 0, 10]
{proto: 1, ver: 1.0.3, birth: 700001, pubkey: [3, 50, 131, 14, 50, 9, 233, 80, 149, 122, 211, 150, 76, 34, 63, 136, 248, 223, 97, 218, 210, 247, 22, 8, 127, 92, 51, 109, 166, 51, 114, 165, 110], card_nonce: [204, 191, 224, 231, 61, 126, 115, 32, 173, 10, 117, 112, 3, 36, 30, 117], slots: [0, 10]}
but .toJson
prints
{proto: 1, ver: 1.0.3, birth: 700001, pubkey: AzKDDjIJ6VCVetOWTCI_iPjfYdrS9xYIf1wzbaYzcqVu, card_nonce: zL_g5z1-cyCtCnVwAyQedQ, slots: [0, 10]}
How does the bytes list map to this string value? As far as I can see, the string in pubkey and card_nonce are neither UTF equivalent nor ASCII. How does toJson convert the following bytes to string?
The Encoder.writeArray
function converts the elements' runtimeType
to Strings to determine the correct encoding function for each one.
This fails on a release build of a Flutter web project due to dart2js and the minify process.
A List<dynamic>
gets turned into JSArray
which implements List
but doesn't contain that word in its type.
In addition to this, runtimeType
can get minified. This seems to only occur for nested Lists. For example:
encoder.writeArray([1, 'str', ['test', 'str2']]);
The first two elements keep their runtimeType.toString()
as 'int
and 'String'
but the third element becomes 'minified:u<String>'
.
I tried fixing the JSArray
problem with this:
if (valType.contains('JSArray')) {
valType = 'List';
}
But this can't fix the minified type names. I guess the only solution would be proper type checking instead of unsafe String comparisons.
Please help me with this, I have to release my project soon and this can only be prevented by disabling every optimization of the default build process. This kills performance and blows up the size of the app by three times.
For my application I have some more complex structures in which there is a map that has nested maps (and sometimes even nested lists in side of them).
Just creating a Dart map with all the data and calling encoder.writeMap
doesn't work (throws an exception, because the nested map/list isn't being handled nicely).
I figured I could work around this by calling encoder.writeMap
with the map that has the "simple" stuff in it, setting indefinite
to false
and passing the total number of elements to length
.
The first byte it generates shows the correct length, but somehow the calls I do to the encoder afterwards are not taken into account.
Calls I do afterwards include encoder.writeString
(to write the key) and encoder.writeMap
(to write the nested map).
There is not much documentation on how these more complex types should be handled and I was hoping this would be a solution.
Can someone elaborate on how this should be done (or tell me if I'm missing a call or something)?
Hi,
I am trying to parse the response from an Amazon FreeRTOS ListNetworResp: Example Java impl
Example Payloads:
[log] raw input [169, 97, 119, 2, 97, 115, 0, 97, 114, 113, 84, 114, 117, 101, 66, 108, 117, 101, 32, 83]
[log] STRING Β©awοΏ½asarqTrueBlue S
[log] raw input [169, 97, 119, 2, 97, 115, 0, 97, 114, 110, 84, 114, 117, 101, 66, 108, 117, 101, 32, 71]
[log] STRING Β©awοΏ½asarnTrueBlue G
[log] raw input [169, 97, 119, 2, 97, 115, 0, 97, 114, 103, 67, 70, 71, 45, 50, 46, 52, 97, 98, 70]
[log] STRING Β©awοΏ½asargCFG-2.4abF
Getting:
Bad state: No element
#0 ListQueue.last (dart:collection/queue.dart:636:25)
#1 Stack.pop
package:cbor/src/cbor_stack.dart:33
#2 ItemStack.pop
package:cbor/src/cbor_item_stack.dart:35
#3 DecodeStack._processIterable
package:cbor/src/cbor_decode_stack.dart:121
#4 DecodeStack.build
package:cbor/src/cbor_decode_stack.dart:56
#5 Cbor.getDecodedData
package:cbor/src/cbor.dart:65
Thank you in advance.
The Cbor serializer currently can't specify the types of keys and values for a Map during decoding. It would be beneficial to introduce a feature like:
CborSimpleCodec cborSimpleCodec = CborSimpleCodec(mapType: Type);
For reference, something like https://github.com/ugorji/go/blob/07c54c229a5acac2d5bc739820a3ecc5411b7b33/codec/decode.go#L216
I believe this is similar to #13
Using a Uint8Buffer in a map value does not encode correctly; the output is not identical to the same data in Uint8List (which is correct).
Trying to decode the data in python using cbor2 results in a corrupted packet. It still decodes without an error, but the data is not correct.
I am getting the following error when running my app. I included the dart version and flutter version below. Any ideas?
../../../flutter/.pub-cache/hosted/pub.dartlang.org/cbor-2.0.2/lib/src/cbor_item_stack.dart:11:7: Error: Type argument 'LinkedListEntry<dynamic>' doesn't conform to the bound 'LinkedListEntry<E>' of the type variable 'E' on 'LinkedListEntry' in the supertype 'LinkedListEntry' of class 'ItemEntry'.
- 'LinkedListEntry' is from 'dart:collection'.
Try changing type arguments so that they conform to the bounds.
class ItemEntry<DartItem> extends LinkedListEntry {
^
Flutter 1.9.1+hotfix.4 β’ channel stable β’ https://github.com/flutter/flutter.git
Framework β’ revision cc949a8e8b (2 weeks ago) β’ 2019-09-27 15:04:59 -0700
Engine β’ revision b863200c37
Tools β’ Dart 2.5.0
The data which is encoded looks like this:
{
"v":2,
"t":1568264210,
"ttl":100,
"res":
{
"chan":{},
"grp":{},
"usr":{"myuser1":19},
"spc":{"myspace1":11}
},
"pat":
{
"chan":{},
"grp":{},
"usr":{},
"spc":{}
},
"meta":{},
"sig":"HtcG6s5fuao9T2bZCgWRQ3cmR27lnYT03yVs6c6H23o="
}
getDecodedData() returns this :
to which I apply utf8Encoder to get String value of each key and value. Which got failed at u-3352055
and s-1707983
value which is there in 4th Key's value section.. Why It's giving such value for normal string???? Other values are valid int for strings
{
[118]: 2,
[116]: 1568694242,
[116, 116, 108]: 10,
[114, 101, 115]:
{
[99, 104, 97, 110]: {},
[103, 114, 112]: {},
[117, 115, 114]: {u-3352055: 15},
[115, 112, 99]: {s-1707983: 31}
},
[112, 97, 116]:
{
[99, 104, 97, 110]: {},
[103, 114, 112]: {},
[117, 115, 114]: {},
[115, 112, 99]: {}
},
[109, 101, 116, 97]: {},
[115, 105, 103]: [218, 134, 179, 97, 50, 16, 193, 207, 102, 186, 122, 206, 117, 106, 76, 28, 215, 52, 16, 3, 255, 125, 97, 80, 125, 201, 185, 68, 150, 19, 96, 58]
}
and decodedToJSON() is failing with error message : JsonUnsupportedObjectError (Converting object to an encodable object failed: _LinkedHashMap len:7).
It's valid json as far as I can imagine
Hello,
I'm so confused because I would like to use your library in the decoding of CBOR Bytes.
The encoding is made by a node CBOR Library (cbor-x).
With my Node.JS enconding I have the current object to encode :
const data = [ { toto: '/3303/0/5700', bt: 1278887, v: 35.5 }, { t: 10, v: 34 }, { t: 20, v: 33 }, { t: 30, v: 32 }, { t: 40, v: 31 }, { t: 50, v: 30 } ]; let basicCbor = new Encoder() let basicBuff = basicCbor.encode(data); console.log(basicBuff.toString("base64"));
The base64 string is :
htnf/4UZ4ACDZHRvdG9iYnRhdmwvMzMwMy8wLzU3MDAaABODp/tAQcAAAAAAANnf/4QZ4AGCYXRhdgoYItngAYIUGCHZ4AGCGB4YINngAYIYKBgf2eABghgyGB4=
When I try to decode the base64 string in Flutter with your Library, I do this :
var bytes = base64.decode("htnf/4UZ4ACDZHRvdG9iYnRhdmwvMzMwMy8wLzU3MDAaABODp/tAQcAAAAAAANnf/4QZ4AGCYXRhdgoYItngAYIUGCHZ4AGCGB4YINngAYIYKBgf2eABghgyGB4="); final cborDecoded = cbor.decode(bytes); print(cborDecoded);
But the result of the print is not the same, like :
[[57344, [toto, bt, v], /3303/0/5700, 1278887, 35.5], [57345, [t, v], 10, 34], [20, 33], [30, 32], [40, 31], [50, 30]]
I can't understand why the object is not the same, what is my mistake ?
Thank you a lot for your help.
Review the support for bignums in the package, at the moment these are supported only through tags
Hello,
I would like to add an option to explicitly define definite/indefinite list length and also to maintain this context when parsing CBOR.
Context: I am performing cryptographic operations and hashing on CBOR data. The fact that HexEncodedCbor -> CborValue -> HexEncodedCbor yields a different result compared to the input is causing me problems and making stuff harder to test. Also I often need to make additive changes to CBOR. But doing this and re-encoding the CBOR turns some indefinite lists into a definite lists.
P.S. I am happy to help with this work. I just wanted to know whether you would accept merging a PR for it. Otherwise I'd just fork this and maintain a separate copy myself.
Currently the decoder restricts map keys to be of integer or string type by specifically checking for these, this should be looked at, CBOR allows more than this, especially negative integers etc. See section 3.7 of RFC7049.
I'm using some packed CBOR where the keys are set as integers rather than strings. As far as I can tell in my testing, this is functionality this is not supported by this package. It'd be a great addition though!
If I have a chance I'll check out the codebase and see if I can make that improvement myself.
Thanks for this awesome package!
When encoding complex objects, we have to use the indefinite versions of arrays and maps.
For example, to encode this structure (imagine 123456789 beeing a larger BigInt):
[{1 : 123456789}]
we need to use indefinite Maps and Arrays:
import 'package:convert/convert.dart';
import 'package:typed_data/typed_data.dart';
import 'package:cbor/cbor.dart' as cbor;
void main() {
final cbor.Cbor inst = cbor.Cbor();
final cbor.Encoder encoder = inst.encoder;
encoder.writeArrayImpl([], true, 1);
encoder.writeMapImpl({1:null}, true, 1);
encoder.writeInt(1);
encoder.writeTag(2); // BigInt
encoder.writeInt(BigInt.from(123456789).toInt());
encoder.writeBreak();
encoder.writeBreak();
final Uint8Buffer buff = inst.output.getData();
List<int> encodedBytes = buff.buffer.asUint8List();
inst.decodeFromList(encodedBytes);
List<dynamic> decodedData = inst.getDecodedData();
String hexDump = hex.encode(encodedBytes);
print(hexDump); // 9fbf01f601c21a075bcd15ffff
print(decodedData); // [[{1: 123456789}]]
}
The output from decodedData is correct, however the cbor encoding looks like this:
So the way it works right now is that we have to define at least one key value pair in a dart map when calling encoder.writeMap();
because we can't pass null. This is not suitable when we have only advanced data types.
What we can do is calling encoder.writeMapImpl({MAP_KEY: null}, true, LENGTH);
and then overwriting the MAP_KEY: null
with the actual data by calling
encoder.writeInt(MAP_KEY);
encoder.writeTag(2); // BigInt
encoder.writeInt(BigInt.from(123456789).toInt());
This does get decoded correctly, even on cbor.me.
However, the cbor output does still contain the duplicated key-value pair of 1 : null
or 01 F6
as hex.
This and the fact that we have to use indefinite arrays and maps leads to a increase in size of 2 bytes in this case, while the unused 1: null
also takes 2 bytes which is a total increase of 44 % in this specific case.
Is there currently any way we can do this better?
Uint8List(writeBytes) support to writeMapImpl needs to be updated, original fault and fix reported here
Instead of automatically converting double to float, halffloat or double the library should let the user chose, for example CborHalfFloat, CborDouble or CborFloat.
Using this code:
import 'dart:typed_data';
import 'package:typed_data/typed_buffers.dart';
import 'package:cbor/cbor.dart' as cbor;
void main() {
Map command = {};
Uint8List data = Uint8List.fromList([196, 79, 51]);
final inst = cbor.Cbor();
final encoder = inst.encoder;
command['data'] = [data];
encoder.writeMap(command);
print(inst.rawOutput.getData());
}
I get the following output:
[161, 100, 100, 97, 116, 97, 129, 131, 24, 196, 24, 79, 24, 51]
If I transfer this into http://cbor.me/ it shows the following decomposed data:
A1 # map(1)
64 # text(4)
64617461 # "data"
81 # array(1)
83 # array(3)
18 C4 # unsigned(196)
18 4F # unsigned(79)
18 33 # unsigned(51)
and the decoded data:
{"data": [[196, 79, 51]]}
This means that the Uint8List inside an array is not being generated correctly. Indeed, it looks like in the code the fix that was applied to the map was not applied to the array encoder: a5a0efd
Hi,
I wanted to decode CBOR with this package, but it throws FormatException.
This is what I wanted to decode.
[162, 97, 116, 103, 35, 99, 111, 109, 109, 105, 116, 98, 111, 112, 1, 170, 99, 111, 112, 115, 129, 163, 99, 99, 105, 100, 216, 42, 88, 37, 0, 1, 113, 18, 32, 216, 63, 9, 226, 56, 168, 196, 59, 247, 202, 219, 6, 147, 99, 138, 215, 69, 253, 158, 20, 57, 106, 25, 37, 194, 85, 21, 233, 192, 175, 131, 121, 100, 112, 97, 116, 104, 120, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 47, 51, 106, 116, 107, 114, 113, 117, 121, 119, 106, 103, 50, 111, 102, 97, 99, 116, 105, 111, 110, 102, 99, 114, 101, 97, 116, 101, 99, 115, 101, 113, 26, 0, 36, 158, 94, 100, 112, 114, 101, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 212, 193, 75, 5, 67, 225, 42, 42, 70, 45, 50, 174, 72, 70, 144, 74, 163, 8, 138, 115, 185, 167, 73, 52, 19, 75, 78, 254, 104, 164, 50, 95, 100, 114, 101, 112, 111, 120, 32, 100, 105, 100, 58, 112, 108, 99, 58, 106, 103, 53, 105, 52, 121, 115, 55, 117, 107, 121, 99, 114, 97, 111, 103, 97, 106, 98, 108, 116, 102, 104, 106, 100, 116, 105, 109, 101, 120, 24, 50, 48, 50, 51, 45, 48, 52, 45, 49, 55, 84, 49, 48, 58, 52, 56, 58, 49, 55, 46, 50, 55, 52, 90, 101, 98, 108, 111, 98, 115, 128, 102, 98, 108, 111, 99, 107, 115, 89, 19, 16, 58, 162, 101, 114, 111, 111, 116, 115, 129, 216, 42, 88, 37, 0, 1, 113, 18, 32, 194, 208, 65, 209, 251, 112, 226, 10, 88, 224, 198, 152, 110, 130, 152, 74, 244, 62, 239, 89, 138, 38, 110, 20, 226, 18, 223, 61, 226, 209, 203, 221, 103, 118, 101, 114, 115, 105, 111, 110, 1, 248, 1, 1, 113, 18, 32, 216, 63, 9, 226, 56, 168, 196, 59, 247, 202, 219, 6, 147, 99, 138, 215, 69, 253, 158, 20, 57, 106, 25, 37, 194, 85, 21, 233, 192, 175, 131, 121, 163, 101, 36, 116, 121, 112, 101, 114, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 103, 115, 117, 98, 106, 101, 99, 116, 162, 99, 99, 105, 100, 120, 59, 98, 97, 102, 121, 114, 101, 105, 103, 113, 116, 110, 114, 54, 102, 120, 113, 101, 115, 112, 98, 107, 116, 108, 106, 100, 109, 115, 99, 54, 111, 51, 53, 112, 103, 54, 110, 111, 118, 50, 102, 116, 50, 119, 50, 116, 51, 108, 101, 115, 122, 100, 116, 51, 121, 120, 99, 54, 98, 113, 99, 117, 114, 105, 120, 70, 97, 116, 58, 47, 47, 100, 105, 100, 58, 112, 108, 99, 58, 102, 53, 103, 121, 100, 107, 107, 97, 111, 115, 114, 117, 108, 97, 108, 119, 51, 99, 107, 119, 105, 50, 99, 117, 47, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 112, 111, 115, 116, 47, 51, 106, 116, 106, 112, 114, 50, 117, 52, 113, 107, 50, 122, 105, 99, 114, 101, 97, 116, 101, 100, 65, 116, 120, 24, 50, 48, 50, 51, 45, 48, 52, 45, 49, 55, 84, 49, 48, 58, 52, 56, 58, 49, 54, 46, 56, 51, 56, 90, 192, 2, 1, 113, 18, 32, 134, 248, 207, 253, 18, 215, 207, 4, 102, 215, 222, 172, 177, 121, 243, 120, 79, 212, 140, 106, 187, 83, 157, 189, 124, 145, 195, 226, 56, 204, 70, 24, 162, 97, 101, 130, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 47, 51, 106, 116, 55, 108, 100, 105, 100, 118, 54, 118, 50, 122, 97, 112, 0, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 220, 10, 177, 26, 11, 48, 26, 202, 29, 152, 237, 198, 253, 76, 159, 248, 244, 139, 96, 45, 246, 137, 42, 38, 65, 111, 151, 30, 233, 18, 197, 116, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 213, 204, 212, 232, 213, 202, 64, 195, 163, 234, 224, 24, 4, 122, 151, 241, 171, 191, 86, 183, 43, 99, 25, 16, 144, 93, 100, 193, 26, 205, 132, 129, 164, 97, 107, 82, 112, 111, 115, 116, 47, 51, 106, 116, 54, 50, 118, 112, 108, 51, 55, 115, 50, 120, 97, 112, 14, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 253, 121, 125, 245, 237, 61, 122, 79, 105, 156, 229, 77, 147, 118, 15, 176, 121, 146, 105, 208, 87, 247, 191, 237, 140, 198, 22, 22, 25, 173, 237, 142, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 45, 150, 59, 17, 56, 119, 123, 100, 0, 160, 228, 112, 220, 172, 128, 36, 45, 77, 55, 105, 48, 99, 61, 134, 246, 33, 60, 211, 175, 5, 81, 44, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 191, 0, 19, 56, 200, 234, 186, 163, 199, 204, 204, 204, 227, 23, 144, 15, 80, 49, 19, 230, 26, 94, 137, 143, 89, 198, 21, 7, 218, 98, 116, 115, 83, 1, 113, 18, 32, 220, 10, 177, 26, 11, 48, 26, 202, 29, 152, 237, 198, 253, 76, 159, 248, 244, 139, 96, 45, 246, 137, 42, 38, 65, 111, 151, 30, 233, 18, 197, 116, 162, 97, 101, 128, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 164, 63, 4, 178, 8, 103, 250, 175, 194, 14, 215, 53, 251, 127, 45, 17, 176, 153, 189, 14, 199, 194, 52, 110, 49, 86, 209, 104, 225, 215, 244, 0, 247, 8, 1, 113, 18, 32, 164, 63, 4, 178, 8, 103, 250, 175, 194, 14, 215, 53, 251, 127, 45, 17, 176, 153, 189, 14, 199, 194, 52, 110, 49, 86, 209, 104, 225, 215, 244, 0, 162, 97, 101, 138, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 47, 51, 106, 116, 97, 117, 109, 113, 121, 51, 110, 54, 50, 54, 97, 112, 0, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 60, 113, 113, 112, 118, 52, 246, 74, 3, 231, 146, 31, 78, 249, 211, 252, 182, 0, 160, 62, 10, 109, 24, 11, 248, 18, 8, 248, 97, 38, 12, 225, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 235, 188, 101, 132, 168, 49, 27, 245, 234, 52, 43, 77, 160, 17, 184, 124, 6, 183, 201, 95, 85, 227, 111, 99, 233, 1, 4, 113, 234, 104, 211, 18, 164, 97, 107, 73, 122, 113, 108, 103, 114, 97, 54, 50, 97, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 224, 156, 13, 73, 127, 100, 15, 249, 55, 214, 120, 121, 58, 47, 88, 182, 10, 158, 101, 199, 114, 95, 237, 208, 135, 237, 103, 242, 42, 149, 98, 52, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 91, 234, 136, 51, 86, 230, 56, 55, 253, 221, 70, 138, 144, 239, 222, 116, 162, 248, 136, 82, 53, 93, 24, 134, 202, 185, 185, 5, 131, 168, 180, 155, 164, 97, 107, 74, 98, 116, 110, 50, 102, 108, 99, 108, 50, 52, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 160, 127, 229, 117, 243, 116, 70, 50, 183, 33, 132, 178, 210, 179, 83, 44, 118, 211, 231, 200, 241, 189, 145, 71, 20, 31, 89, 73, 76, 111, 87, 86, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 122, 35, 225, 36, 192, 235, 188, 132, 164, 161, 8, 36, 61, 118, 135, 101, 156, 137, 195, 1, 104, 56, 93, 213, 112, 147, 111, 246, 218, 199, 185, 101, 164, 97, 107, 74, 103, 103, 120, 116, 99, 108, 116, 100, 50, 51, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 177, 97, 9, 223, 241, 64, 175, 77, 53, 89, 75, 17, 155, 12, 233, 96, 0, 191, 40, 120, 167, 80, 198, 44, 95, 8, 204, 166, 84, 127, 42, 238, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 78, 113, 95, 12, 76, 43, 83, 70, 0, 73, 86, 195, 179, 34, 128, 81, 4, 250, 51, 96, 100, 125, 27, 128, 87, 169, 31, 151, 240, 54, 32, 153, 164, 97, 107, 74, 104, 97, 117, 113, 54, 102, 107, 109, 50, 112, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 105, 186, 54, 170, 249, 204, 38, 26, 192, 120, 56, 240, 196, 246, 43, 44, 198, 229, 136, 46, 79, 232, 217, 26, 11, 121, 188, 64, 219, 248, 163, 12, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 22, 63, 12, 51, 248, 142, 251, 32, 254, 229, 146, 180, 158, 92, 184, 167, 174, 56, 7, 36, 44, 255, 232, 210, 105, 100, 91, 119, 175, 131, 253, 189, 164, 97, 107, 73, 98, 98, 114, 54, 51, 109, 52, 50, 113, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 203, 184, 251, 215, 212, 243, 163, 162, 149, 251, 10, 5, 247, 51, 16, 249, 187, 127, 149, 107, 203, 144, 35, 163, 237, 55, 48, 73, 242, 41, 173, 118, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 73, 225, 42, 186, 39, 237, 127, 50, 67, 148, 121, 129, 46, 50, 224, 108, 250, 149, 115, 99, 224, 174, 168, 120, 131, 208, 145, 56, 161, 122, 195, 243, 164, 97, 107, 74, 105, 107, 119, 54, 55, 122, 97, 50, 50, 104, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 73, 45, 133, 159, 207, 77, 61, 219, 163, 231, 141, 16, 77, 217, 89, 246, 85, 243, 30, 0, 233, 42, 243, 193, 51, 118, 247, 15, 206, 110, 0, 10, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 116, 71, 29, 61, 38, 161, 27, 157, 217, 187, 26, 208, 255, 189, 142, 155, 97, 216, 107, 187, 227, 60, 253, 115, 221, 24, 39, 182, 218, 160, 10, 89, 164, 97, 107, 82, 112, 111, 115, 116, 47, 51, 106, 115, 117, 101, 116, 120, 50, 97, 116, 107, 50, 117, 97, 112, 14, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 70, 199, 128, 24, 48, 116, 55, 65, 130, 214, 121, 137, 40, 50, 106, 9, 143, 135, 151, 142, 137, 195, 141, 25, 131, 110, 231, 180, 100, 0, 63, 145, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 175, 84, 117, 220, 158, 54, 58, 219, 123, 2, 39, 158, 91, 29, 99, 152, 184, 243, 171, 32, 46, 190, 220, 242, 114, 216, 170, 49, 171, 191, 243, 148, 164, 97, 107, 74, 120, 121, 99, 120, 50, 97, 109, 50, 50, 103, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 171, 182, 76, 54, 68, 49, 169, 102, 146, 53, 195, 110, 220, 169, 114, 12, 27, 71, 91, 180, 194, 232, 111, 20, 82, 195, 32, 167, 217, 40, 196, 22, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 94, 94, 230, 106, 27, 208, 62, 175, 146, 176, 4, 57, 18, 49, 211, 210, 151, 26, 34, 187, 187, 9, 246, 12, 243, 74, 251, 56, 63, 143, 205, 190, 164, 97, 107, 75, 116, 52, 52, 108, 104, 119, 110, 101, 51, 50, 120, 97, 112, 21, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 46, 219, 34, 115, 60, 17, 66, 211, 2, 132, 157, 132, 127, 60, 148, 160, 127, 175, 119, 40, 9, 200, 214, 178, 65, 16, 209, 137, 80, 46, 185, 19, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 239, 19, 61, 43, 66, 228, 95, 132, 2, 135, 222, 239, 35, 92, 147, 205, 94, 36, 64, 90, 17, 192, 248, 1, 87, 65, 141, 130, 245, 200, 233, 79, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 70, 37, 85, 170, 228, 229, 88, 196, 184, 94, 183, 228, 33, 42, 114, 58, 167, 224, 192, 152, 76, 4, 112, 92, 227, 207, 248, 64, 70, 127, 139, 184, 150, 10, 1, 113, 18, 32, 73, 45, 133, 159, 207, 77, 61, 219, 163, 231, 141, 16, 77, 217, 89, 246, 85, 243, 30, 0, 233, 42, 243, 193, 51, 118, 247, 15, 206, 110, 0, 10, 162, 97, 101, 140, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 47, 51, 106, 116, 105, 109, 106, 112, 52, 55, 100, 102, 50, 51, 97, 112, 0, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 49, 228, 95, 157, 230, 71, 195, 69, 121, 122, 151, 179, 234, 33, 21, 94, 119, 238, 206, 172, 228, 241, 34, 244, 37, 25, 250, 13, 119, 17, 169, 204, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 244, 66, 43, 214, 186, 178, 62, 250, 231, 139, 140, 248, 138, 152, 228, 41, 211, 33, 51, 220, 69, 226, 51, 60, 71, 149, 11, 56, 71, 64, 88, 91, 164, 97, 107, 73, 112, 109, 101, 105, 120, 51, 122, 50, 113, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 169, 119, 179, 14, 89, 68, 220, 242, 158, 47, 68, 110, 10, 20, 30, 228, 23, 41, 13, 121, 90, 18, 52, 153, 63, 103, 168, 40, 197, 245, 252, 73, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 43, 185, 206, 24, 51, 3, 92, 234, 110, 149, 185, 70, 104, 80, 169, 241, 4, 44, 42, 251, 101, 115, 188, 185, 140, 48, 41, 81, 242, 140, 118, 175, 164, 97, 107, 73, 121, 52, 116, 120, 122, 103, 99, 50, 111, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 146, 176, 232, 1, 32, 23, 28, 236, 136, 55, 207, 13, 90, 89, 214, 211, 95, 240, 141, 214, 221, 228, 13, 187, 37, 101, 207, 254, 116, 233, 143, 124, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 250, 74, 58, 59, 168, 246, 27, 22, 167, 225, 13, 178, 22, 90, 211, 3, 61, 58, 174, 187, 84, 83, 0, 146, 72, 20, 199, 151, 195, 38, 228, 204, 164, 97, 107, 74, 106, 104, 108, 122, 121, 109, 109, 107, 50, 111, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 133, 133, 240, 20, 76, 106, 108, 161, 111, 230, 126, 113, 228, 33, 9, 180, 194, 255, 87, 143, 108, 213, 182, 196, 58, 216, 140, 76, 249, 113, 73, 223, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 40, 247, 132, 183, 185, 210, 212, 184, 69, 11, 240, 238, 52, 124, 48, 231, 233, 215, 3, 143, 251, 249, 198, 211, 170, 95, 119, 220, 235, 174, 223, 1, 164, 97, 107, 73, 107, 104, 122, 98, 107, 108, 109, 50, 117, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 23, 127, 79, 18, 164, 16, 179, 92, 163, 190, 205, 150, 119, 47, 66, 59, 250, 159, 154, 113, 61, 160, 210, 13, 180, 122, 156, 243, 70, 63, 88, 2, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 108, 166, 97, 157, 203, 67, 29, 171, 186, 121, 11, 4, 179, 119, 247, 58, 227, 13, 160, 116, 29, 57, 142, 228, 6, 111, 68, 225, 244, 163, 94, 103, 164, 97, 107, 73, 112, 98, 107, 121, 52, 101, 122, 50, 122, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 166, 24, 158, 57, 212, 128, 230, 228, 55, 19, 175, 62, 23, 155, 242, 234, 33, 42, 52, 103, 94, 183, 166, 188, 143, 106, 36, 19, 203, 225, 134, 44, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 211, 101, 58, 211, 143, 190, 2, 160, 130, 216, 225, 34, 223, 107, 241, 147, 200, 45, 136, 58, 15, 196, 11, 40, 93, 159, 0, 49, 10, 219, 213, 147, 164, 97, 107, 72, 100, 99, 115, 102, 106, 50, 50, 122, 97, 112, 24, 24, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 152, 79, 88, 216, 125, 56, 39, 171, 115, 157, 229, 91, 102, 146, 99, 238, 220, 55, 25, 169, 65, 203, 59, 95, 213, 84, 141, 63, 150, 192, 29, 22, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 120, 163, 175, 43, 213, 112, 68, 193, 249, 141, 61, 251, 206, 147, 46, 199, 244, 69, 12, 181, 104, 88, 75, 141, 194, 7, 177, 178, 82, 181, 155, 231, 164, 97, 107, 73, 115, 51, 103, 119, 52, 100, 118, 50, 111, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 80, 241, 49, 224, 123, 153, 171, 21, 115, 51, 242, 206, 136, 156, 94, 247, 150, 51, 79, 145, 177, 76, 174, 137, 42, 117, 121, 102, 93, 15, 212, 55, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 83, 25, 163, 232, 184, 144, 161, 67, 253, 94, 106, 212, 40, 138, 79, 60, 110, 87, 153, 105, 1, 198, 236, 160, 205, 130, 48, 200, 27, 103, 101, 93, 164, 97, 107, 72, 112, 115, 102, 50, 118, 50, 50, 97, 97, 112, 24, 24, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 237, 69, 220, 21, 235, 0, 251, 207, 180, 220, 162, 181, 208, 159, 24, 84, 157, 14, 191, 110, 160, 167, 27, 64, 88, 6, 74, 88, 127, 113, 73, 35, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 18, 100, 192, 121, 96, 46, 248, 5, 168, 222, 29, 174, 118, 219, 74, 80, 108, 6, 64, 16, 58, 103, 209, 152, 214, 12, 103, 61, 143, 189, 213, 120, 164, 97, 107, 73, 120, 121, 119, 98, 118, 121, 108, 50, 122, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 208, 186, 80, 207, 250, 50, 153, 89, 178, 207, 115, 47, 100, 234, 188, 222, 212, 10, 85, 23, 59, 83, 89, 48, 35, 100, 141, 86, 164, 87, 28, 18, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 187, 176, 103, 187, 211, 181, 146, 191, 127, 244, 227, 80, 13, 35, 107, 83, 15, 173, 180, 36, 97, 81, 135, 176, 131, 226, 82, 117, 210, 213, 40, 114, 164, 97, 107, 82, 112, 111, 115, 116, 47, 51, 106, 115, 116, 53, 98, 100, 105, 113, 53, 108, 50, 54, 97, 112, 14, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 144, 80, 75, 57, 24, 60, 149, 27, 84, 252, 166, 167, 83, 219, 78, 85, 228, 70, 21, 28, 68, 184, 224, 203, 121, 61, 15, 31, 122, 78, 0, 68, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 100, 177, 173, 247, 38, 103, 40, 112, 206, 148, 78, 171, 95, 235, 148, 132, 84, 60, 35, 73, 101, 77, 101, 103, 246, 214, 233, 174, 63, 110, 163, 186, 164, 97, 107, 74, 117, 101, 112, 100, 99, 104, 114, 107, 50, 50, 97, 112, 22, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 63, 176, 52, 186, 28, 175, 250, 197, 44, 145, 241, 151, 125, 19, 149, 147, 34, 67, 224, 138, 244, 199, 174, 18, 106, 248, 183, 109, 180, 135, 185, 25, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 80, 4, 251, 140, 192, 14, 8, 143, 108, 147, 33, 136, 20, 93, 118, 130, 242, 150, 254, 70, 185, 249, 78, 71, 238, 176, 70, 152, 102, 136, 213, 115, 208, 5, 1, 113, 18, 32, 208, 186, 80, 207, 250, 50, 153, 89, 178, 207, 115, 47, 100, 234, 188, 222, 212, 10, 85, 23, 59, 83, 89, 48, 35, 100, 141, 86, 164, 87, 28, 18, 162, 97, 101, 134, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 112, 111, 115, 116, 47, 51, 106, 115, 114, 115, 104, 117, 98, 119, 103, 100, 50, 54, 97, 112, 0, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 9, 133, 14, 123, 228, 151, 161, 186, 32, 247, 224, 242, 40, 184, 195, 79, 24, 114, 181, 208, 97, 134, 135, 200, 231, 81, 177, 77, 171, 235, 73, 202, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 196, 161, 88, 104, 215, 224, 21, 247, 47, 27, 94, 164, 7, 37, 106, 42, 25, 30, 38, 221, 100, 116, 133, 40, 230, 101, 118, 100, 226, 233, 91, 171, 164, 97, 107, 73, 118, 100, 50, 106, 112, 111, 99, 50, 50, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 138, 74, 92, 132, 16, 62, 67, 158, 229, 95, 46, 168, 164, 161, 38, 136, 195, 38, 195, 56, 201, 223, 209, 241, 99, 160, 233, 45, 180, 105, 80, 86, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 131, 167, 85, 205, 52, 225, 4, 10, 167, 152, 195, 7, 219, 72, 229, 211, 113, 105, 123, 246, 250, 154, 209, 105, 120, 126, 76, 215, 64, 32, 246, 181, 164, 97, 107, 72, 121, 120, 50, 99, 113, 52, 50, 107, 97, 112, 24, 24, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 232, 54, 204, 48, 240, 69, 159, 169, 179, 46, 69, 151, 82, 98, 14, 223, 2, 209, 215, 10, 92, 46, 58, 92, 186, 200, 114, 142, 97, 126, 186, 96, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 177, 142, 2, 129, 114, 184, 111, 105, 96, 243, 138, 108, 10, 47, 1, 21, 227, 177, 239, 21, 188, 81, 109, 188, 121, 170, 53, 245, 255, 253, 227, 196, 164, 97, 107, 73, 121, 52, 104, 55, 111, 104, 50, 50, 117, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 105, 61, 155, 116, 138, 203, 236, 192, 105, 156, 36, 149, 103, 213, 13, 75, 145, 102, 66, 218, 139, 75, 52, 229, 245, 153, 70, 138, 18, 91, 45, 62, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 134, 222, 185, 197, 140, 48, 117, 32, 105, 198, 213, 28, 150, 192, 178, 162, 126, 195, 45, 1, 67, 21, 73, 86, 24, 227, 89, 135, 28, 234, 185, 115, 164, 97, 107, 74, 115, 102, 103, 53, 51, 120, 122, 99, 50, 116, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 254, 33, 90, 1, 243, 0, 225, 82, 85, 27, 124, 159, 240, 66, 202, 97, 34, 15, 110, 234, 50, 104, 219, 72, 83, 145, 224, 237, 236, 249, 165, 214, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 177, 251, 104, 253, 187, 214, 171, 173, 135, 47, 181, 32, 51, 160, 192, 72, 123, 96, 12, 204, 147, 33, 69, 23, 181, 200, 188, 32, 129, 68, 251, 82, 164, 97, 107, 73, 122, 99, 97, 120, 111, 98, 100, 50, 117, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 199, 8, 15, 44, 248, 140, 87, 150, 82, 201, 236, 45, 215, 104, 90, 29, 166, 170, 152, 0, 245, 125, 206, 152, 79, 165, 26, 42, 121, 103, 21, 191, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 26, 254, 15, 153, 10, 169, 100, 185, 102, 224, 31, 193, 167, 112, 28, 217, 193, 110, 86, 62, 246, 42, 231, 131, 116, 124, 19, 54, 212, 90, 120, 171, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 13, 231, 176, 221, 57, 204, 33, 79, 156, 58, 32, 27, 218, 34, 54, 59, 222, 154, 95, 39, 131, 154, 158, 98, 46, 44, 114, 78, 242, 187, 239, 225, 232, 5, 1, 113, 18, 32, 13, 231, 176, 221, 57, 204, 33, 79, 156, 58, 32, 27, 218, 34, 54, 59, 222, 154, 95, 39, 131, 154, 158, 98, 46, 44, 114, 78, 242, 187, 239, 225, 162, 97, 101, 139, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 47, 51, 106, 116, 106, 120, 121, 122, 99, 114, 109, 53, 50, 117, 97, 112, 0, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 236, 89, 254, 178, 129, 92, 166, 41, 220, 132, 34, 76, 95, 89, 116, 45, 100, 17, 61, 134, 59, 113, 175, 194, 255, 95, 41, 154, 127, 191, 243, 193, 164, 97, 107, 70, 121, 111, 114, 110, 50, 117, 97, 112, 24, 26, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 164, 30, 153, 193, 16, 235, 154, 153, 117, 106, 36, 52, 237, 21, 101, 130, 253, 111, 97, 96, 127, 240, 124, 0, 9, 26, 255, 109, 244, 37, 74, 190, 164, 97, 107, 73, 121, 50, 50, 55, 118, 115, 102, 50, 117, 97, 112, 23, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 37, 42, 195, 188, 152, 249, 194, 225, 131, 74, 83, 56, 136, 206, 131, 115, 88, 65, 8, 48, 156, 12, 14, 62, 47, 156, 42, 207, 42, 57, 94, 144, 164, 97, 107, 73, 122, 108, 109, 113, 119, 54, 115, 50, 111, 97, 112, 23, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 134, 79, 144, 24, 213, 157, 201, 227, 22, 186, 255, 89, 16, 120, 78, 16, 68, 85, 183, 164, 88, 109, 99, 42, 107, 6, 82, 148, 91, 63, 32, 103, 164, 97, 107, 74, 107, 114, 111, 110, 112, 111, 106, 103, 50, 111, 97, 112, 22, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 22, 47, 199, 153, 14, 108, 249, 235, 89, 213, 112, 68, 120, 13, 224, 9, 51, 192, 153, 6, 61, 207, 62, 185, 162, 106, 65, 70, 4, 53, 212, 117, 164, 97, 107, 71, 118, 97, 104, 108, 119, 50, 117, 97, 112, 24, 25, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 4, 111, 219, 16, 115, 62, 157, 149, 213, 178, 226, 56, 37, 133, 166, 234, 120, 111, 220, 169, 208, 200, 111, 23, 1, 199, 75, 96, 105, 53, 201, 198, 164, 97, 107, 72, 112, 108, 105, 113, 107, 100, 50, 122, 97, 112, 24, 24, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 160, 135, 25, 33, 8, 254, 206, 15, 14, 43, 155, 47, 129, 98, 1, 24, 205, 48, 224, 81, 89, 64, 222, 228, 252, 244, 162, 3, 102, 236, 225, 171, 164, 97, 107, 71, 121, 54, 120, 108, 98, 50, 105, 97, 112, 24, 25, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 187, 153, 156, 74, 2, 154, 203, 30, 31, 223, 43, 18, 105, 49, 198, 168, 89, 71, 168, 5, 145, 23, 232, 212, 178, 22, 55, 98, 38, 174, 182, 188, 164, 97, 107, 72, 113, 103, 119, 117, 54, 103, 50, 111, 97, 112, 24, 24, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 116, 218, 193, 105, 114, 146, 161, 34, 67, 204, 61, 97, 35, 201, 216, 232, 159, 28, 210, 75, 216, 115, 62, 156, 224, 239, 76, 124, 65, 185, 160, 38, 164, 97, 107, 71, 114, 105, 105, 116, 108, 50, 111, 97, 112, 24, 25, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 85, 146, 109, 109, 228, 197, 37, 8, 15, 243, 220, 65, 49, 100, 232, 74, 244, 94, 170, 115, 184, 64, 105, 195, 122, 88, 162, 8, 207, 55, 56, 80, 164, 97, 107, 71, 117, 121, 119, 106, 103, 50, 111, 97, 112, 24, 25, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 216, 63, 9, 226, 56, 168, 196, 59, 247, 202, 219, 6, 147, 99, 138, 215, 69, 253, 158, 20, 57, 106, 25, 37, 194, 85, 21, 233, 192, 175, 131, 121, 97, 108, 246, 246, 1, 1, 113, 18, 32, 194, 208, 65, 209, 251, 112, 226, 10, 88, 224, 198, 152, 110, 130, 152, 74, 244, 62, 239, 89, 138, 38, 110, 20, 226, 18, 223, 61, 226, 209, 203, 221, 165, 99, 100, 105, 100, 120, 32, 100, 105, 100, 58, 112, 108, 99, 58, 106, 103, 53, 105, 52, 121, 115, 55, 117, 107, 121, 99, 114, 97, 111, 103, 97, 106, 98, 108, 116, 102, 104, 106, 99, 115, 105, 103, 88, 64, 29, 39, 81, 96, 169, 179, 201, 124, 231, 151, 139, 128, 34, 11, 154, 4, 242, 131, 25, 14, 4, 36, 48, 120, 196, 54, 78, 223, 255, 75, 24, 24, 92, 97, 152, 34, 76, 187, 104, 90, 114, 170, 202, 97, 193, 101, 164, 204, 143, 217, 20, 105, 34, 94, 41, 237, 243, 216, 233, 47, 24, 93, 159, 252, 100, 100, 97, 116, 97, 216, 42, 88, 37, 0, 1, 113, 18, 32, 134, 248, 207, 253, 18, 215, 207, 4, 102, 215, 222, 172, 177, 121, 243, 120, 79, 212, 140, 106, 187, 83, 157, 189, 124, 145, 195, 226, 56, 204, 70, 24, 100, 112, 114, 101, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 212, 193, 75, 5, 67, 225, 42, 42, 70, 45, 50, 174, 72, 70, 144, 74, 163, 8, 138, 115, 185, 167, 73, 52, 19, 75, 78, 254, 104, 164, 50, 95, 103, 118, 101, 114, 115, 105, 111, 110, 2, 102, 99, 111, 109, 109, 105, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 194, 208, 65, 209, 251, 112, 226, 10, 88, 224, 198, 152, 110, 130, 152, 74, 244, 62, 239, 89, 138, 38, 110, 20, 226, 18, 223, 61, 226, 209, 203, 221, 102, 114, 101, 98, 97, 115, 101, 244, 102, 116, 111, 111, 66, 105, 103, 244]
And this is what data I checked at values
of startChunkedConversion(ChunkedConversionSink.withCallback((values) {
[{t: #commit, op: 1}, {ops: [{cid: [0, 1, 113, 18, 32, 216, 63, 9, 226, 56, 168, 196, 59, 247, 202, 219, 6, 147, 99, 138, 215, 69, 253, 158, 20, 57, 106, 25, 37, 194, 85, 21, 233, 192, 175, 131, 121], path: app.bsky.feed.like/3jtkrquywjg2o, action: create}], seq: 2399838, prev: [0, 1, 113, 18, 32, 212, 193, 75, 5, 67, 225, 42, 42, 70, 45, 50, 174, 72, 70, 144, 74, 163, 8, 138, 115, 185, 167, 73, 52, 19, 75, 78, 254, 104, 164, 50, 95], repo: did:plc:jg5i4ys7ukycraogajbltfhj, time: 2023-04-17T10:48:17.274Z, blobs: [], blocks: [58, 162, 101, 114, 111, 111, 116, 115, 129, 216, 42, 88, 37, 0, 1, 113, 18, 32, 194, 208, 65, 209, 251, 112, 226, 10, 88, 224, 198, 152, 110, 130, 152, 74, 244, 62, 239, 89, 138, 38, 110, 20, 226, 18, 223, 61, 226, 209, 203, 221, 103, 118, 101, 114, 115, 105, 111, 110, 1, 248, 1, 1, 113, 18, 32, 216, 63, 9, 226, 56, 168, 196, 59, 247, 202, 219, 6, 147, 99, 138, 215, 69, 253, 158, 20, 57, 106, 25, 37, 194, 85, 21, 233, 192, 175, 131, 121, 163, 101, 36, 116, 121, 112, 101, 114, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 103, 115, 117, 98, 106, 101, 99, 116, 162, 99, 99, 105, 100, 120, 59, 98, 97, 102, 121, 114, 101, 105, 103, 113, 116, 110, 114, 54, 102, 120, 113, 101, 115, 112, 98, 107, 116, 108, 106, 100, 109, 115, 99, 54, 111, 51, 53, 112, 103, 54, 110, 111, 118, 50, 102, 116, 50, 119, 50, 116, 51, 108, 101, 115, 122, 100, 116, 51, 121, 120, 99, 54, 98, 113, 99, 117, 114, 105, 120, 70, 97, 116, 58, 47, 47, 100, 105, 100, 58, 112, 108, 99, 58, 102, 53, 103, 121, 100, 107, 107, 97, 111, 115, 114, 117, 108, 97, 108, 119, 51, 99, 107, 119, 105, 50, 99, 117, 47, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 112, 111, 115, 116, 47, 51, 106, 116, 106, 112, 114, 50, 117, 52, 113, 107, 50, 122, 105, 99, 114, 101, 97, 116, 101, 100, 65, 116, 120, 24, 50, 48, 50, 51, 45, 48, 52, 45, 49, 55, 84, 49, 48, 58, 52, 56, 58, 49, 54, 46, 56, 51, 56, 90, 192, 2, 1, 113, 18, 32, 134, 248, 207, 253, 18, 215, 207, 4, 102, 215, 222, 172, 177, 121, 243, 120, 79, 212, 140, 106, 187, 83, 157, 189, 124, 145, 195, 226, 56, 204, 70, 24, 162, 97, 101, 130, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 47, 51, 106, 116, 55, 108, 100, 105, 100, 118, 54, 118, 50, 122, 97, 112, 0, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 220, 10, 177, 26, 11, 48, 26, 202, 29, 152, 237, 198, 253, 76, 159, 248, 244, 139, 96, 45, 246, 137, 42, 38, 65, 111, 151, 30, 233, 18, 197, 116, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 213, 204, 212, 232, 213, 202, 64, 195, 163, 234, 224, 24, 4, 122, 151, 241, 171, 191, 86, 183, 43, 99, 25, 16, 144, 93, 100, 193, 26, 205, 132, 129, 164, 97, 107, 82, 112, 111, 115, 116, 47, 51, 106, 116, 54, 50, 118, 112, 108, 51, 55, 115, 50, 120, 97, 112, 14, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 253, 121, 125, 245, 237, 61, 122, 79, 105, 156, 229, 77, 147, 118, 15, 176, 121, 146, 105, 208, 87, 247, 191, 237, 140, 198, 22, 22, 25, 173, 237, 142, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 45, 150, 59, 17, 56, 119, 123, 100, 0, 160, 228, 112, 220, 172, 128, 36, 45, 77, 55, 105, 48, 99, 61, 134, 246, 33, 60, 211, 175, 5, 81, 44, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 191, 0, 19, 56, 200, 234, 186, 163, 199, 204, 204, 204, 227, 23, 144, 15, 80, 49, 19, 230, 26, 94, 137, 143, 89, 198, 21, 7, 218, 98, 116, 115, 83, 1, 113, 18, 32, 220, 10, 177, 26, 11, 48, 26, 202, 29, 152, 237, 198, 253, 76, 159, 248, 244, 139, 96, 45, 246, 137, 42, 38, 65, 111, 151, 30, 233, 18, 197, 116, 162, 97, 101, 128, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 164, 63, 4, 178, 8, 103, 250, 175, 194, 14, 215, 53, 251, 127, 45, 17, 176, 153, 189, 14, 199, 194, 52, 110, 49, 86, 209, 104, 225, 215, 244, 0, 247, 8, 1, 113, 18, 32, 164, 63, 4, 178, 8, 103, 250, 175, 194, 14, 215, 53, 251, 127, 45, 17, 176, 153, 189, 14, 199, 194, 52, 110, 49, 86, 209, 104, 225, 215, 244, 0, 162, 97, 101, 138, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 47, 51, 106, 116, 97, 117, 109, 113, 121, 51, 110, 54, 50, 54, 97, 112, 0, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 60, 113, 113, 112, 118, 52, 246, 74, 3, 231, 146, 31, 78, 249, 211, 252, 182, 0, 160, 62, 10, 109, 24, 11, 248, 18, 8, 248, 97, 38, 12, 225, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 235, 188, 101, 132, 168, 49, 27, 245, 234, 52, 43, 77, 160, 17, 184, 124, 6, 183, 201, 95, 85, 227, 111, 99, 233, 1, 4, 113, 234, 104, 211, 18, 164, 97, 107, 73, 122, 113, 108, 103, 114, 97, 54, 50, 97, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 224, 156, 13, 73, 127, 100, 15, 249, 55, 214, 120, 121, 58, 47, 88, 182, 10, 158, 101, 199, 114, 95, 237, 208, 135, 237, 103, 242, 42, 149, 98, 52, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 91, 234, 136, 51, 86, 230, 56, 55, 253, 221, 70, 138, 144, 239, 222, 116, 162, 248, 136, 82, 53, 93, 24, 134, 202, 185, 185, 5, 131, 168, 180, 155, 164, 97, 107, 74, 98, 116, 110, 50, 102, 108, 99, 108, 50, 52, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 160, 127, 229, 117, 243, 116, 70, 50, 183, 33, 132, 178, 210, 179, 83, 44, 118, 211, 231, 200, 241, 189, 145, 71, 20, 31, 89, 73, 76, 111, 87, 86, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 122, 35, 225, 36, 192, 235, 188, 132, 164, 161, 8, 36, 61, 118, 135, 101, 156, 137, 195, 1, 104, 56, 93, 213, 112, 147, 111, 246, 218, 199, 185, 101, 164, 97, 107, 74, 103, 103, 120, 116, 99, 108, 116, 100, 50, 51, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 177, 97, 9, 223, 241, 64, 175, 77, 53, 89, 75, 17, 155, 12, 233, 96, 0, 191, 40, 120, 167, 80, 198, 44, 95, 8, 204, 166, 84, 127, 42, 238, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 78, 113, 95, 12, 76, 43, 83, 70, 0, 73, 86, 195, 179, 34, 128, 81, 4, 250, 51, 96, 100, 125, 27, 128, 87, 169, 31, 151, 240, 54, 32, 153, 164, 97, 107, 74, 104, 97, 117, 113, 54, 102, 107, 109, 50, 112, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 105, 186, 54, 170, 249, 204, 38, 26, 192, 120, 56, 240, 196, 246, 43, 44, 198, 229, 136, 46, 79, 232, 217, 26, 11, 121, 188, 64, 219, 248, 163, 12, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 22, 63, 12, 51, 248, 142, 251, 32, 254, 229, 146, 180, 158, 92, 184, 167, 174, 56, 7, 36, 44, 255, 232, 210, 105, 100, 91, 119, 175, 131, 253, 189, 164, 97, 107, 73, 98, 98, 114, 54, 51, 109, 52, 50, 113, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 203, 184, 251, 215, 212, 243, 163, 162, 149, 251, 10, 5, 247, 51, 16, 249, 187, 127, 149, 107, 203, 144, 35, 163, 237, 55, 48, 73, 242, 41, 173, 118, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 73, 225, 42, 186, 39, 237, 127, 50, 67, 148, 121, 129, 46, 50, 224, 108, 250, 149, 115, 99, 224, 174, 168, 120, 131, 208, 145, 56, 161, 122, 195, 243, 164, 97, 107, 74, 105, 107, 119, 54, 55, 122, 97, 50, 50, 104, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 73, 45, 133, 159, 207, 77, 61, 219, 163, 231, 141, 16, 77, 217, 89, 246, 85, 243, 30, 0, 233, 42, 243, 193, 51, 118, 247, 15, 206, 110, 0, 10, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 116, 71, 29, 61, 38, 161, 27, 157, 217, 187, 26, 208, 255, 189, 142, 155, 97, 216, 107, 187, 227, 60, 253, 115, 221, 24, 39, 182, 218, 160, 10, 89, 164, 97, 107, 82, 112, 111, 115, 116, 47, 51, 106, 115, 117, 101, 116, 120, 50, 97, 116, 107, 50, 117, 97, 112, 14, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 70, 199, 128, 24, 48, 116, 55, 65, 130, 214, 121, 137, 40, 50, 106, 9, 143, 135, 151, 142, 137, 195, 141, 25, 131, 110, 231, 180, 100, 0, 63, 145, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 175, 84, 117, 220, 158, 54, 58, 219, 123, 2, 39, 158, 91, 29, 99, 152, 184, 243, 171, 32, 46, 190, 220, 242, 114, 216, 170, 49, 171, 191, 243, 148, 164, 97, 107, 74, 120, 121, 99, 120, 50, 97, 109, 50, 50, 103, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 171, 182, 76, 54, 68, 49, 169, 102, 146, 53, 195, 110, 220, 169, 114, 12, 27, 71, 91, 180, 194, 232, 111, 20, 82, 195, 32, 167, 217, 40, 196, 22, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 94, 94, 230, 106, 27, 208, 62, 175, 146, 176, 4, 57, 18, 49, 211, 210, 151, 26, 34, 187, 187, 9, 246, 12, 243, 74, 251, 56, 63, 143, 205, 190, 164, 97, 107, 75, 116, 52, 52, 108, 104, 119, 110, 101, 51, 50, 120, 97, 112, 21, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 46, 219, 34, 115, 60, 17, 66, 211, 2, 132, 157, 132, 127, 60, 148, 160, 127, 175, 119, 40, 9, 200, 214, 178, 65, 16, 209, 137, 80, 46, 185, 19, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 239, 19, 61, 43, 66, 228, 95, 132, 2, 135, 222, 239, 35, 92, 147, 205, 94, 36, 64, 90, 17, 192, 248, 1, 87, 65, 141, 130, 245, 200, 233, 79, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 70, 37, 85, 170, 228, 229, 88, 196, 184, 94, 183, 228, 33, 42, 114, 58, 167, 224, 192, 152, 76, 4, 112, 92, 227, 207, 248, 64, 70, 127, 139, 184, 150, 10, 1, 113, 18, 32, 73, 45, 133, 159, 207, 77, 61, 219, 163, 231, 141, 16, 77, 217, 89, 246, 85, 243, 30, 0, 233, 42, 243, 193, 51, 118, 247, 15, 206, 110, 0, 10, 162, 97, 101, 140, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 47, 51, 106, 116, 105, 109, 106, 112, 52, 55, 100, 102, 50, 51, 97, 112, 0, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 49, 228, 95, 157, 230, 71, 195, 69, 121, 122, 151, 179, 234, 33, 21, 94, 119, 238, 206, 172, 228, 241, 34, 244, 37, 25, 250, 13, 119, 17, 169, 204, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 244, 66, 43, 214, 186, 178, 62, 250, 231, 139, 140, 248, 138, 152, 228, 41, 211, 33, 51, 220, 69, 226, 51, 60, 71, 149, 11, 56, 71, 64, 88, 91, 164, 97, 107, 73, 112, 109, 101, 105, 120, 51, 122, 50, 113, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 169, 119, 179, 14, 89, 68, 220, 242, 158, 47, 68, 110, 10, 20, 30, 228, 23, 41, 13, 121, 90, 18, 52, 153, 63, 103, 168, 40, 197, 245, 252, 73, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 43, 185, 206, 24, 51, 3, 92, 234, 110, 149, 185, 70, 104, 80, 169, 241, 4, 44, 42, 251, 101, 115, 188, 185, 140, 48, 41, 81, 242, 140, 118, 175, 164, 97, 107, 73, 121, 52, 116, 120, 122, 103, 99, 50, 111, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 146, 176, 232, 1, 32, 23, 28, 236, 136, 55, 207, 13, 90, 89, 214, 211, 95, 240, 141, 214, 221, 228, 13, 187, 37, 101, 207, 254, 116, 233, 143, 124, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 250, 74, 58, 59, 168, 246, 27, 22, 167, 225, 13, 178, 22, 90, 211, 3, 61, 58, 174, 187, 84, 83, 0, 146, 72, 20, 199, 151, 195, 38, 228, 204, 164, 97, 107, 74, 106, 104, 108, 122, 121, 109, 109, 107, 50, 111, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 133, 133, 240, 20, 76, 106, 108, 161, 111, 230, 126, 113, 228, 33, 9, 180, 194, 255, 87, 143, 108, 213, 182, 196, 58, 216, 140, 76, 249, 113, 73, 223, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 40, 247, 132, 183, 185, 210, 212, 184, 69, 11, 240, 238, 52, 124, 48, 231, 233, 215, 3, 143, 251, 249, 198, 211, 170, 95, 119, 220, 235, 174, 223, 1, 164, 97, 107, 73, 107, 104, 122, 98, 107, 108, 109, 50, 117, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 23, 127, 79, 18, 164, 16, 179, 92, 163, 190, 205, 150, 119, 47, 66, 59, 250, 159, 154, 113, 61, 160, 210, 13, 180, 122, 156, 243, 70, 63, 88, 2, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 108, 166, 97, 157, 203, 67, 29, 171, 186, 121, 11, 4, 179, 119, 247, 58, 227, 13, 160, 116, 29, 57, 142, 228, 6, 111, 68, 225, 244, 163, 94, 103, 164, 97, 107, 73, 112, 98, 107, 121, 52, 101, 122, 50, 122, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 166, 24, 158, 57, 212, 128, 230, 228, 55, 19, 175, 62, 23, 155, 242, 234, 33, 42, 52, 103, 94, 183, 166, 188, 143, 106, 36, 19, 203, 225, 134, 44, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 211, 101, 58, 211, 143, 190, 2, 160, 130, 216, 225, 34, 223, 107, 241, 147, 200, 45, 136, 58, 15, 196, 11, 40, 93, 159, 0, 49, 10, 219, 213, 147, 164, 97, 107, 72, 100, 99, 115, 102, 106, 50, 50, 122, 97, 112, 24, 24, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 152, 79, 88, 216, 125, 56, 39, 171, 115, 157, 229, 91, 102, 146, 99, 238, 220, 55, 25, 169, 65, 203, 59, 95, 213, 84, 141, 63, 150, 192, 29, 22, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 120, 163, 175, 43, 213, 112, 68, 193, 249, 141, 61, 251, 206, 147, 46, 199, 244, 69, 12, 181, 104, 88, 75, 141, 194, 7, 177, 178, 82, 181, 155, 231, 164, 97, 107, 73, 115, 51, 103, 119, 52, 100, 118, 50, 111, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 80, 241, 49, 224, 123, 153, 171, 21, 115, 51, 242, 206, 136, 156, 94, 247, 150, 51, 79, 145, 177, 76, 174, 137, 42, 117, 121, 102, 93, 15, 212, 55, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 83, 25, 163, 232, 184, 144, 161, 67, 253, 94, 106, 212, 40, 138, 79, 60, 110, 87, 153, 105, 1, 198, 236, 160, 205, 130, 48, 200, 27, 103, 101, 93, 164, 97, 107, 72, 112, 115, 102, 50, 118, 50, 50, 97, 97, 112, 24, 24, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 237, 69, 220, 21, 235, 0, 251, 207, 180, 220, 162, 181, 208, 159, 24, 84, 157, 14, 191, 110, 160, 167, 27, 64, 88, 6, 74, 88, 127, 113, 73, 35, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 18, 100, 192, 121, 96, 46, 248, 5, 168, 222, 29, 174, 118, 219, 74, 80, 108, 6, 64, 16, 58, 103, 209, 152, 214, 12, 103, 61, 143, 189, 213, 120, 164, 97, 107, 73, 120, 121, 119, 98, 118, 121, 108, 50, 122, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 208, 186, 80, 207, 250, 50, 153, 89, 178, 207, 115, 47, 100, 234, 188, 222, 212, 10, 85, 23, 59, 83, 89, 48, 35, 100, 141, 86, 164, 87, 28, 18, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 187, 176, 103, 187, 211, 181, 146, 191, 127, 244, 227, 80, 13, 35, 107, 83, 15, 173, 180, 36, 97, 81, 135, 176, 131, 226, 82, 117, 210, 213, 40, 114, 164, 97, 107, 82, 112, 111, 115, 116, 47, 51, 106, 115, 116, 53, 98, 100, 105, 113, 53, 108, 50, 54, 97, 112, 14, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 144, 80, 75, 57, 24, 60, 149, 27, 84, 252, 166, 167, 83, 219, 78, 85, 228, 70, 21, 28, 68, 184, 224, 203, 121, 61, 15, 31, 122, 78, 0, 68, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 100, 177, 173, 247, 38, 103, 40, 112, 206, 148, 78, 171, 95, 235, 148, 132, 84, 60, 35, 73, 101, 77, 101, 103, 246, 214, 233, 174, 63, 110, 163, 186, 164, 97, 107, 74, 117, 101, 112, 100, 99, 104, 114, 107, 50, 50, 97, 112, 22, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 63, 176, 52, 186, 28, 175, 250, 197, 44, 145, 241, 151, 125, 19, 149, 147, 34, 67, 224, 138, 244, 199, 174, 18, 106, 248, 183, 109, 180, 135, 185, 25, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 80, 4, 251, 140, 192, 14, 8, 143, 108, 147, 33, 136, 20, 93, 118, 130, 242, 150, 254, 70, 185, 249, 78, 71, 238, 176, 70, 152, 102, 136, 213, 115, 208, 5, 1, 113, 18, 32, 208, 186, 80, 207, 250, 50, 153, 89, 178, 207, 115, 47, 100, 234, 188, 222, 212, 10, 85, 23, 59, 83, 89, 48, 35, 100, 141, 86, 164, 87, 28, 18, 162, 97, 101, 134, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 112, 111, 115, 116, 47, 51, 106, 115, 114, 115, 104, 117, 98, 119, 103, 100, 50, 54, 97, 112, 0, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 9, 133, 14, 123, 228, 151, 161, 186, 32, 247, 224, 242, 40, 184, 195, 79, 24, 114, 181, 208, 97, 134, 135, 200, 231, 81, 177, 77, 171, 235, 73, 202, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 196, 161, 88, 104, 215, 224, 21, 247, 47, 27, 94, 164, 7, 37, 106, 42, 25, 30, 38, 221, 100, 116, 133, 40, 230, 101, 118, 100, 226, 233, 91, 171, 164, 97, 107, 73, 118, 100, 50, 106, 112, 111, 99, 50, 50, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 138, 74, 92, 132, 16, 62, 67, 158, 229, 95, 46, 168, 164, 161, 38, 136, 195, 38, 195, 56, 201, 223, 209, 241, 99, 160, 233, 45, 180, 105, 80, 86, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 131, 167, 85, 205, 52, 225, 4, 10, 167, 152, 195, 7, 219, 72, 229, 211, 113, 105, 123, 246, 250, 154, 209, 105, 120, 126, 76, 215, 64, 32, 246, 181, 164, 97, 107, 72, 121, 120, 50, 99, 113, 52, 50, 107, 97, 112, 24, 24, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 232, 54, 204, 48, 240, 69, 159, 169, 179, 46, 69, 151, 82, 98, 14, 223, 2, 209, 215, 10, 92, 46, 58, 92, 186, 200, 114, 142, 97, 126, 186, 96, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 177, 142, 2, 129, 114, 184, 111, 105, 96, 243, 138, 108, 10, 47, 1, 21, 227, 177, 239, 21, 188, 81, 109, 188, 121, 170, 53, 245, 255, 253, 227, 196, 164, 97, 107, 73, 121, 52, 104, 55, 111, 104, 50, 50, 117, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 105, 61, 155, 116, 138, 203, 236, 192, 105, 156, 36, 149, 103, 213, 13, 75, 145, 102, 66, 218, 139, 75, 52, 229, 245, 153, 70, 138, 18, 91, 45, 62, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 134, 222, 185, 197, 140, 48, 117, 32, 105, 198, 213, 28, 150, 192, 178, 162, 126, 195, 45, 1, 67, 21, 73, 86, 24, 227, 89, 135, 28, 234, 185, 115, 164, 97, 107, 74, 115, 102, 103, 53, 51, 120, 122, 99, 50, 116, 97, 112, 22, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 254, 33, 90, 1, 243, 0, 225, 82, 85, 27, 124, 159, 240, 66, 202, 97, 34, 15, 110, 234, 50, 104, 219, 72, 83, 145, 224, 237, 236, 249, 165, 214, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 177, 251, 104, 253, 187, 214, 171, 173, 135, 47, 181, 32, 51, 160, 192, 72, 123, 96, 12, 204, 147, 33, 69, 23, 181, 200, 188, 32, 129, 68, 251, 82, 164, 97, 107, 73, 122, 99, 97, 120, 111, 98, 100, 50, 117, 97, 112, 23, 97, 116, 216, 42, 88, 37, 0, 1, 113, 18, 32, 199, 8, 15, 44, 248, 140, 87, 150, 82, 201, 236, 45, 215, 104, 90, 29, 166, 170, 152, 0, 245, 125, 206, 152, 79, 165, 26, 42, 121, 103, 21, 191, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 26, 254, 15, 153, 10, 169, 100, 185, 102, 224, 31, 193, 167, 112, 28, 217, 193, 110, 86, 62, 246, 42, 231, 131, 116, 124, 19, 54, 212, 90, 120, 171, 97, 108, 216, 42, 88, 37, 0, 1, 113, 18, 32, 13, 231, 176, 221, 57, 204, 33, 79, 156, 58, 32, 27, 218, 34, 54, 59, 222, 154, 95, 39, 131, 154, 158, 98, 46, 44, 114, 78, 242, 187, 239, 225, 232, 5, 1, 113, 18, 32, 13, 231, 176, 221, 57, 204, 33, 79, 156, 58, 32, 27, 218, 34, 54, 59, 222, 154, 95, 39, 131, 154, 158, 98, 46, 44, 114, 78, 242, 187, 239, 225, 162, 97, 101, 139, 164, 97, 107, 88, 32, 97, 112, 112, 46, 98, 115, 107, 121, 46, 102, 101, 101, 100, 46, 108, 105, 107, 101, 47, 51, 106, 116, 106, 120, 121, 122, 99, 114, 109, 53, 50, 117, 97, 112, 0, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 236, 89, 254, 178, 129, 92, 166, 41, 220, 132, 34, 76, 95, 89, 116, 45, 100, 17, 61, 134, 59, 113, 175, 194, 255, 95, 41, 154, 127, 191, 243, 193, 164, 97, 107, 70, 121, 111, 114, 110, 50, 117, 97, 112, 24, 26, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 164, 30, 153, 193, 16, 235, 154, 153, 117, 106, 36, 52, 237, 21, 101, 130, 253, 111, 97, 96, 127, 240, 124, 0, 9, 26, 255, 109, 244, 37, 74, 190, 164, 97, 107, 73, 121, 50, 50, 55, 118, 115, 102, 50, 117, 97, 112, 23, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 37, 42, 195, 188, 152, 249, 194, 225, 131, 74, 83, 56, 136, 206, 131, 115, 88, 65, 8, 48, 156, 12, 14, 62, 47, 156, 42, 207, 42, 57, 94, 144, 164, 97, 107, 73, 122, 108, 109, 113, 119, 54, 115, 50, 111, 97, 112, 23, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 134, 79, 144, 24, 213, 157, 201, 227, 22, 186, 255, 89, 16, 120, 78, 16, 68, 85, 183, 164, 88, 109, 99, 42, 107, 6, 82, 148, 91, 63, 32, 103, 164, 97, 107, 74, 107, 114, 111, 110, 112, 111, 106, 103, 50, 111, 97, 112, 22, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 22, 47, 199, 153, 14, 108, 249, 235, 89, 213, 112, 68, 120, 13, 224, 9, 51, 192, 153, 6, 61, 207, 62, 185, 162, 106, 65, 70, 4, 53, 212, 117, 164, 97, 107, 71, 118, 97, 104, 108, 119, 50, 117, 97, 112, 24, 25, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 4, 111, 219, 16, 115, 62, 157, 149, 213, 178, 226, 56, 37, 133, 166, 234, 120, 111, 220, 169, 208, 200, 111, 23, 1, 199, 75, 96, 105, 53, 201, 198, 164, 97, 107, 72, 112, 108, 105, 113, 107, 100, 50, 122, 97, 112, 24, 24, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 160, 135, 25, 33, 8, 254, 206, 15, 14, 43, 155, 47, 129, 98, 1, 24, 205, 48, 224, 81, 89, 64, 222, 228, 252, 244, 162, 3, 102, 236, 225, 171, 164, 97, 107, 71, 121, 54, 120, 108, 98, 50, 105, 97, 112, 24, 25, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 187, 153, 156, 74, 2, 154, 203, 30, 31, 223, 43, 18, 105, 49, 198, 168, 89, 71, 168, 5, 145, 23, 232, 212, 178, 22, 55, 98, 38, 174, 182, 188, 164, 97, 107, 72, 113, 103, 119, 117, 54, 103, 50, 111, 97, 112, 24, 24, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 116, 218, 193, 105, 114, 146, 161, 34, 67, 204, 61, 97, 35, 201, 216, 232, 159, 28, 210, 75, 216, 115, 62, 156, 224, 239, 76, 124, 65, 185, 160, 38, 164, 97, 107, 71, 114, 105, 105, 116, 108, 50, 111, 97, 112, 24, 25, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 85, 146, 109, 109, 228, 197, 37, 8, 15, 243, 220, 65, 49, 100, 232, 74, 244, 94, 170, 115, 184, 64, 105, 195, 122, 88, 162, 8, 207, 55, 56, 80, 164, 97, 107, 71, 117, 121, 119, 106, 103, 50, 111, 97, 112, 24, 25, 97, 116, 246, 97, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 216, 63, 9, 226, 56, 168, 196, 59, 247, 202, 219, 6, 147, 99, 138, 215, 69, 253, 158, 20, 57, 106, 25, 37, 194, 85, 21, 233, 192, 175, 131, 121, 97, 108, 246, 246, 1, 1, 113, 18, 32, 194, 208, 65, 209, 251, 112, 226, 10, 88, 224, 198, 152, 110, 130, 152, 74, 244, 62, 239, 89, 138, 38, 110, 20, 226, 18, 223, 61, 226, 209, 203, 221, 165, 99, 100, 105, 100, 120, 32, 100, 105, 100, 58, 112, 108, 99, 58, 106, 103, 53, 105, 52, 121, 115, 55, 117, 107, 121, 99, 114, 97, 111, 103, 97, 106, 98, 108, 116, 102, 104, 106, 99, 115, 105, 103, 88, 64, 29, 39, 81, 96, 169, 179, 201, 124, 231, 151, 139, 128, 34, 11, 154, 4, 242, 131, 25, 14, 4, 36, 48, 120, 196, 54, 78, 223, 255, 75, 24, 24, 92, 97, 152, 34, 76, 187, 104, 90, 114, 170, 202, 97, 193, 101, 164, 204, 143, 217, 20, 105, 34, 94, 41, 237, 243, 216, 233, 47, 24, 93, 159, 252, 100, 100, 97, 116, 97, 216, 42, 88, 37, 0, 1, 113, 18, 32, 134, 248, 207, 253, 18, 215, 207, 4, 102, 215, 222, 172, 177, 121, 243, 120, 79, 212, 140, 106, 187, 83, 157, 189, 124, 145, 195, 226, 56, 204, 70, 24, 100, 112, 114, 101, 118, 216, 42, 88, 37, 0, 1, 113, 18, 32, 212, 193, 75, 5, 67, 225, 42, 42, 70, 45, 50, 174, 72, 70, 144, 74, 163, 8, 138, 115, 185, 167, 73, 52, 19, 75, 78, 254, 104, 164, 50, 95, 103, 118, 101, 114, 115, 105, 111, 110, 2], commit: [0, 1, 113, 18, 32, 194, 208, 65, 209, 251, 112, 226, 10, 88, 224, 198, 152, 110, 130, 152, 74, 244, 62, 239, 89, 138, 38, 110, 20, 226, 18, 223, 61, 226, 209, 203, 221], rebase: 20, tooBig: 20}]
Hi, sorry just wondering, I cannot find 'simple.dart' in version 4.1.0, is it to be released on version 5.0.0? Thank you for this library, currently using it for a flutter-based Cardano app with Nami wallet.
The decoder supports string or integer map keys, the toJSON method breaks if integer keys are used, either fix this or make clear what is supported, either way the text in the README needs updating to state what we are doing. as it is incorrect.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.