Files
epics-base/modules/libcom/test/yajlTestCases.pm
Andrew Johnson a8e0de043c Support for 'single-quoted strings'
Also adds missing character flag VIC for 'r'.
The a5_spec_example test was copied from the JSON5 spec.
2020-08-09 00:33:07 -05:00

3389 lines
86 KiB
Raku

# Parser test cases from https://github.com/lloyd/yajl
#
# This file is generated, DO NOT EDIT!
#
# See comments in yajlTestConverter.pl for instructions on
# how to regenerate this file from the original yajl sources.
sub cases {
my $VAR1 = [
{
name => "codepoints_from_hex",
opts => [
-5
],
input => [
"\"\\x0a\\x07\\x21\\x40\\x7c\"",
""
],
gives => [
"string: '",
"\a!\@|'",
"memory leaks:\t0"
]
},
{
name => "doubles",
opts => [
-5
],
input => [
"[ .1e2, 10., +3.141569, -.1e4, NaN, Infinity, +Infinity, -Infinity ]",
""
],
gives => [
"array open '['",
"double: 10",
"double: 10",
"double: 3.14157",
"double: -1000",
"double: NaN",
"double: Infinity",
"double: Infinity",
"double: -Infinity",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "integers",
opts => [
-5
],
input => [
"[ +1,+2,+3,+4,+5,+6,+7,+8,+9,",
" 0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,",
" 0xa,0xb,0xc,0xd,0xe,0xf,",
" 0xA,0xB,0xC,0xD,0xE,0xF,",
" +0xfedcba98, -0x6789ABCD,",
" +123456789 , -123456789,",
" +2147483647, -2147483648,",
" 0x7fffFFFFffffFFFF, -0x7FFFffffFFFFffff,",
" 9223372036854775807, -9223372036854775807",
"]",
""
],
gives => [
"array open '['",
"integer: 1",
"integer: 2",
"integer: 3",
"integer: 4",
"integer: 5",
"integer: 6",
"integer: 7",
"integer: 8",
"integer: 9",
"integer: 1",
"integer: 2",
"integer: 3",
"integer: 4",
"integer: 5",
"integer: 6",
"integer: 7",
"integer: 8",
"integer: 9",
"integer: 10",
"integer: 11",
"integer: 12",
"integer: 13",
"integer: 14",
"integer: 15",
"integer: 10",
"integer: 11",
"integer: 12",
"integer: 13",
"integer: 14",
"integer: 15",
"integer: 4275878552",
"integer: -1737075661",
"integer: 123456789",
"integer: -123456789",
"integer: 2147483647",
"integer: -2147483648",
"integer: 9223372036854775807",
"integer: -9223372036854775807",
"integer: 9223372036854775807",
"integer: -9223372036854775807",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "invalid_hex_char",
opts => [
-5
],
input => [
"\"yabba dabba do \\x1g !!\"",
""
],
gives => [
"lexical error: invalid (non-hex) character occurs after '\\x' inside string.",
"memory leaks:\t0"
]
},
{
name => "map_identifiers",
opts => [
-5
],
input => [
"{",
" \$:1,",
" _:2,",
" A:3,",
" Z:4,",
" a:5,",
" z:6,",
" \$1:7,",
" _zz:8,",
" ZZ9\$Zalpha:9",
"}",
""
],
gives => [
"map open '{'",
"key: '\$'",
"integer: 1",
"key: '_'",
"integer: 2",
"key: 'A'",
"integer: 3",
"key: 'Z'",
"integer: 4",
"key: 'a'",
"integer: 5",
"key: 'z'",
"integer: 6",
"key: '\$1'",
"integer: 7",
"key: '_zz'",
"integer: 8",
"key: 'ZZ9\$Zalpha'",
"integer: 9",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "simple_with_comments",
opts => [
-5
],
input => [
"{",
" \"this\": \"is\", // ignore this",
" \"really\": \"simple\",",
" /* ignore",
"this",
"too * / ",
"** //",
"(/",
"******/",
" \"json\": \"right?\"",
"}",
""
],
gives => [
"map open '{'",
"key: 'this'",
"string: 'is'",
"key: 'really'",
"string: 'simple'",
"key: 'json'",
"string: 'right?'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "spec_example",
opts => [
-5
],
input => [
"{",
" // comments",
" unquoted: 'and you can quote me on that',",
" singleQuotes: 'I can use \"double quotes\" here',",
" lineBreaks: \"Look, Mom! \\",
"No \\\\n's!\",",
" hexadecimal: 0xdecaf,",
" leadingDecimalPoint: .8675309, andTrailing: 8675309.,",
" positiveSign: +1,",
" trailingComma: 'in objects', andIn: ['arrays',],",
" \"backwardsCompatible\": \"with JSON\",",
"}",
""
],
gives => [
"map open '{'",
"key: 'unquoted'",
"string: 'and you can quote me on that'",
"key: 'singleQuotes'",
"string: 'I can use \"double quotes\" here'",
"key: 'lineBreaks'",
"string: 'Look, Mom! No \\n's!'",
"key: 'hexadecimal'",
"integer: 912559",
"key: 'leadingDecimalPoint'",
"double: 0.867531",
"key: 'andTrailing'",
"double: 8.67531e+06",
"key: 'positiveSign'",
"integer: 1",
"key: 'trailingComma'",
"string: 'in objects'",
"key: 'andIn'",
"array open '['",
"string: 'arrays'",
"array close ']'",
"key: 'backwardsCompatible'",
"string: 'with JSON'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "strings",
opts => [
-5
],
input => [
"[",
" 'Hello\\!',",
" \"\\\"Evenin\\',\\\" said the barman.\",",
" // The following string has 3 different escaped line-endings,",
" // LF, CR, and CR+LF, which all disappear from the final string.",
" \"Well \\",
"hi \\\rthere \\\r",
"y'all!\",",
" \"\\b\\f\\n\\r\\t\\v\\\\\",",
" '\\A\\C\\/\\D\\C',",
"]",
""
],
gives => [
"array open '['",
"string: 'Hello!'",
"string: '\"Evenin',\" said the barman.'",
"string: 'Well hi there y'all!'",
"string: '\b\f",
"\r\t\13\\'",
"string: 'AC/DC'",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "trailing_commas",
opts => [
-5
],
input => [
"{\"array\":[1,2,],\"map\":{\"a\":1,},}",
""
],
gives => [
"map open '{'",
"key: 'array'",
"array open '['",
"integer: 1",
"integer: 2",
"array close ']'",
"key: 'map'",
"map open '{'",
"key: 'a'",
"integer: 1",
"map close '}'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "difficult_json_c_test_case_with_comments",
opts => [
"-c"
],
input => [
"{ \"glossary\": { /* you */ \"title\": /**/ \"example glossary\", /*should*/\"GlossDiv\": { \"title\": /*never*/\"S\", /*ever*/\"GlossList\": [ { \"ID\": \"SGML\", \"SortAs\": \"SGML\", \"GlossTerm\": \"Standard Generalized Markup Language\", \"Acronym\": \"SGML\", \"Abbrev\": \"ISO 8879:1986\", \"GlossDef\": \"A meta-markup language, used to create markup languages such as DocBook.\", /*see*/\"GlossSeeAlso\"/*this*/:/*coming*/[/*out*/\"GML\"/*of*/,/*the*/\"XML\"/*parser!*/, \"markup\"] /*hey*/}/*ho*/]/*hey*/}/*ho*/} } // and the parser won't even get this far, so chill. /* hah!",
""
],
gives => [
"map open '{'",
"key: 'glossary'",
"map open '{'",
"key: 'title'",
"string: 'example glossary'",
"key: 'GlossDiv'",
"map open '{'",
"key: 'title'",
"string: 'S'",
"key: 'GlossList'",
"array open '['",
"map open '{'",
"key: 'ID'",
"string: 'SGML'",
"key: 'SortAs'",
"string: 'SGML'",
"key: 'GlossTerm'",
"string: 'Standard Generalized Markup Language'",
"key: 'Acronym'",
"string: 'SGML'",
"key: 'Abbrev'",
"string: 'ISO 8879:1986'",
"key: 'GlossDef'",
"string: 'A meta-markup language, used to create markup languages such as DocBook.'",
"key: 'GlossSeeAlso'",
"array open '['",
"string: 'GML'",
"string: 'XML'",
"string: 'markup'",
"array close ']'",
"map close '}'",
"array close ']'",
"map close '}'",
"map close '}'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "simple_with_comments",
opts => [
"-c"
],
input => [
"{",
" \"this\": \"is\", // ignore this",
" \"really\": \"simple\",",
" /* ignore",
"this",
"too * / ",
"** //",
"(/",
"******/",
" \"json\": \"right?\"",
"}",
""
],
gives => [
"map open '{'",
"key: 'this'",
"string: 'is'",
"key: 'really'",
"string: 'simple'",
"key: 'json'",
"string: 'right?'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "false_then_garbage",
opts => [
"-g"
],
input => [
"falsex"
],
gives => [
"bool: false",
"memory leaks:\t0"
]
},
{
name => "null_then_garbage",
opts => [
"-g"
],
input => [
"nullx",
""
],
gives => [
"null",
"memory leaks:\t0"
]
},
{
name => "true_then_garbage",
opts => [
"-g"
],
input => [
"truex"
],
gives => [
"bool: true",
"memory leaks:\t0"
]
},
{
name => "eof",
opts => [
"-m"
],
input => [
"{ \"123\":",
""
],
gives => [
"map open '{'",
"key: '123'",
"parse error: premature EOF",
"memory leaks:\t0"
]
},
{
name => "integers",
opts => [
"-m"
],
input => [
"1221 21",
""
],
gives => [
"integer: 1221",
"integer: 21",
"memory leaks:\t0"
]
},
{
name => "multiple",
opts => [
"-m"
],
input => [
"",
"{}",
"{}",
""
],
gives => [
"map open '{'",
"map close '}'",
"map open '{'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "stuff",
opts => [
"-m"
],
input => [
"{}",
"[]",
"[]",
"\"sdfasd\"",
123,
"{ \"123\" : 123 }",
"3.1e124",
""
],
gives => [
"map open '{'",
"map close '}'",
"array open '['",
"array close ']'",
"array open '['",
"array close ']'",
"string: 'sdfasd'",
"integer: 123",
"map open '{'",
"key: '123'",
"integer: 123",
"map close '}'",
"double: 3.1e+124",
"memory leaks:\t0"
]
},
{
name => "array_open",
opts => [
"-p"
],
input => [
"[",
""
],
gives => [
"array open '['",
"memory leaks:\t0"
]
},
{
name => "eof_str",
opts => [
"-p"
],
input => [
"\"abc"
],
gives => [
"memory leaks:\t0"
]
},
{
name => "map_open",
opts => [
"-p"
],
input => [
"{",
""
],
gives => [
"map open '{'",
"memory leaks:\t0"
]
},
{
name => "partial_ok",
opts => [
"-p"
],
input => [
"[ \"foo\", \"bar\"",
""
],
gives => [
"array open '['",
"string: 'foo'",
"string: 'bar'",
"memory leaks:\t0"
]
},
{
name => "array",
opts => [],
input => [
"[\"foo\",",
" \"bar\", \"baz\",",
" true,false,null,{\"key\":\"value\"},",
" [null,null,null,[]],",
" \"\\n\\r\\\\\"",
"]",
""
],
gives => [
"array open '['",
"string: 'foo'",
"string: 'bar'",
"string: 'baz'",
"bool: true",
"bool: false",
"null",
"map open '{'",
"key: 'key'",
"string: 'value'",
"map close '}'",
"array open '['",
"null",
"null",
"null",
"array open '['",
"array close ']'",
"array close ']'",
"string: '",
"\r\\'",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "array_close",
opts => [],
input => [
"]",
""
],
gives => [
"parse error: unallowed token at this point in JSON text",
"memory leaks:\t0"
]
},
{
name => "bignums",
opts => [],
input => [
"[ 9223372036854775807, -9223372036854775807 ]",
""
],
gives => [
"array open '['",
"integer: 9223372036854775807",
"integer: -9223372036854775807",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "bogus_char",
opts => [],
input => [
"[\"this\",\"is\",\"what\",\"should\",\"be\",",
" \"a happy bit of json\",",
" \"but someone, misspelled \\\"true\\\"\", ture,",
" \"who says JSON is easy for humans to generate?\"]",
""
],
gives => [
"array open '['",
"string: 'this'",
"string: 'is'",
"string: 'what'",
"string: 'should'",
"string: 'be'",
"string: 'a happy bit of json'",
"string: 'but someone, misspelled \"true\"'",
"lexical error: invalid string in json text.",
"memory leaks:\t0"
]
},
{
name => "codepoints_from_unicode_org",
opts => [],
input => [
"\"\\u004d\\u0430\\u4e8c\\ud800\\udf02\"",
""
],
gives => [
"string: 'M\320\260\344\272\214\360\220\214\202'",
"memory leaks:\t0"
]
},
{
name => "deep_arrays",
opts => [],
input => [
"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]"
],
gives => [
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array open '['",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "difficult_json_c_test_case",
opts => [],
input => [
"{ \"glossary\": { \"title\": \"example glossary\", \"GlossDiv\": { \"title\": \"S\", \"GlossList\": [ { \"ID\": \"SGML\", \"SortAs\": \"SGML\", \"GlossTerm\": \"Standard Generalized Markup Language\", \"Acronym\": \"SGML\", \"Abbrev\": \"ISO 8879:1986\", \"GlossDef\": \"A meta-markup language, used to create markup languages such as DocBook.\", \"GlossSeeAlso\": [\"GML\", \"XML\", \"markup\"] } ] } } }",
""
],
gives => [
"map open '{'",
"key: 'glossary'",
"map open '{'",
"key: 'title'",
"string: 'example glossary'",
"key: 'GlossDiv'",
"map open '{'",
"key: 'title'",
"string: 'S'",
"key: 'GlossList'",
"array open '['",
"map open '{'",
"key: 'ID'",
"string: 'SGML'",
"key: 'SortAs'",
"string: 'SGML'",
"key: 'GlossTerm'",
"string: 'Standard Generalized Markup Language'",
"key: 'Acronym'",
"string: 'SGML'",
"key: 'Abbrev'",
"string: 'ISO 8879:1986'",
"key: 'GlossDef'",
"string: 'A meta-markup language, used to create markup languages such as DocBook.'",
"key: 'GlossSeeAlso'",
"array open '['",
"string: 'GML'",
"string: 'XML'",
"string: 'markup'",
"array close ']'",
"map close '}'",
"array close ']'",
"map close '}'",
"map close '}'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "doubles",
opts => [],
input => [
"[ 0.1e2, 1e1, 3.141569, 10000000000000e-10]",
""
],
gives => [
"array open '['",
"double: 10",
"double: 10",
"double: 3.14157",
"double: 1000",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "doubles_in_array",
opts => [],
input => [
"[0.00011999999999999999, 6E-06, 6E-06, 1E-06, 1E-06]",
""
],
gives => [
"array open '['",
"double: 0.00012",
"double: 6e-06",
"double: 6e-06",
"double: 1e-06",
"double: 1e-06",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "empty_array",
opts => [],
input => [
"[]"
],
gives => [
"array open '['",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "empty_string",
opts => [],
input => [
"\"\"",
""
],
gives => [
"string: ''",
"memory leaks:\t0"
]
},
{
name => "escaped_bulgarian",
opts => [],
input => [
"[\"\\u0414\\u0430\",",
" \"\\u041c\\u0443\",",
" \"\\u0415\\u0431\\u0430\",",
" \"\\u041c\\u0430\\u0439\\u043a\\u0430\\u0442\\u0430\"]",
""
],
gives => [
"array open '['",
"string: '\320\224\320\260'",
"string: '\320\234\321\203'",
"string: '\320\225\320\261\320\260'",
"string: '\320\234\320\260\320\271\320\272\320\260\321\202\320\260'",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "escaped_foobar",
opts => [],
input => [
"\"\\u0066\\u006f\\u006f\\u0062\\u0061\\u0072\"",
""
],
gives => [
"string: 'foobar'",
"memory leaks:\t0"
]
},
{
name => "false",
opts => [],
input => [
"false",
""
],
gives => [
"bool: false",
"memory leaks:\t0"
]
},
{
name => "false_then_garbage",
opts => [],
input => [
"falsex"
],
gives => [
"bool: false",
"parse error: trailing garbage",
"memory leaks:\t0"
]
},
{
name => "issue_7",
opts => [],
input => [
"2009-10-20\@20:38:21.539575",
""
],
gives => [
"integer: 2009",
"parse error: trailing garbage",
"memory leaks:\t0"
]
},
{
name => "null_then_garbage",
opts => [],
input => [
"nullx",
""
],
gives => [
"null",
"parse error: trailing garbage",
"memory leaks:\t0"
]
},
{
name => "true_then_garbage",
opts => [],
input => [
"truex",
""
],
gives => [
"bool: true",
"parse error: trailing garbage",
"memory leaks:\t0"
]
},
{
name => "four_byte_utf8",
opts => [],
input => [
"{ \"U+10ABCD\": \"\364\212\257\215\" }",
""
],
gives => [
"map open '{'",
"key: 'U+10ABCD'",
"string: '\364\212\257\215'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "hex",
opts => [],
input => [
"0x1",
""
],
gives => [
"lexical error: probable hex number found, JSON5 is not enabled.",
"memory leaks:\t0"
]
},
{
name => "high_overflow",
opts => [],
input => [
"9223372036854775808"
],
gives => [
"parse error: integer overflow",
"memory leaks:\t0"
]
},
{
name => "infinity",
opts => [],
input => [
"Infinity",
""
],
gives => [
"lexical error: special number Infinity or NaN found, JSON5 is not enabled.",
"memory leaks:\t0"
]
},
{
name => "integers",
opts => [],
input => [
"[ 1,2,3,4,5,6,7,",
" 123456789 , -123456789,",
" 2147483647, -2147483647 ]",
""
],
gives => [
"array open '['",
"integer: 1",
"integer: 2",
"integer: 3",
"integer: 4",
"integer: 5",
"integer: 6",
"integer: 7",
"integer: 123456789",
"integer: -123456789",
"integer: 2147483647",
"integer: -2147483647",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "invalid_utf8",
opts => [],
input => [
"[\"\320\224\320\260 \320\234\321 \320\225\320\261\320\260 \320\234\320\260\320\271\320\272\320\260\321\202\320\260\"]",
""
],
gives => [
"array open '['",
"lexical error: invalid bytes in UTF8 string.",
"memory leaks:\t0"
]
},
{
name => "isolated_surrogate_marker",
opts => [],
input => [
"\"\\ud800\"",
""
],
gives => [
"string: '?'",
"memory leaks:\t0"
]
},
{
name => "leading_zero_in_number",
opts => [],
input => [
"{ \"bad thing\": 01 }",
""
],
gives => [
"map open '{'",
"key: 'bad thing'",
"integer: 0",
"parse error: after key and value, inside map, I expect ',' or '}'",
"memory leaks:\t0"
]
},
{
name => "lonely_minus_sign",
opts => [],
input => [
"[",
"\t\t\"foo\", true,",
"\t\ttrue, \"blue\",",
"\t\t\"baby where are you?\", \"oh boo hoo!\",",
" - ",
"]",
""
],
gives => [
"array open '['",
"string: 'foo'",
"bool: true",
"bool: true",
"string: 'blue'",
"string: 'baby where are you?'",
"string: 'oh boo hoo!'",
"lexical error: malformed number, a digit is required after the plus/minus sign.",
"memory leaks:\t0"
]
},
{
name => "lonely_number",
opts => [],
input => [
123456789
],
gives => [
"integer: 123456789",
"memory leaks:\t0"
]
},
{
name => "low_overflow",
opts => [],
input => [
"-9223372036854775808"
],
gives => [
"parse error: integer overflow",
"memory leaks:\t0"
]
},
{
name => "map_close",
opts => [],
input => [
"}",
""
],
gives => [
"parse error: unallowed token at this point in JSON text",
"memory leaks:\t0"
]
},
{
name => "minus_infinity",
opts => [],
input => [
"-Infinity",
""
],
gives => [
"lexical error: special number Infinity or NaN found, JSON5 is not enabled.",
"memory leaks:\t0"
]
},
{
name => "missing_integer_after_decimal_point",
opts => [],
input => [
"10.e2",
""
],
gives => [
"lexical error: malformed number, a digit is required after the decimal point.",
"memory leaks:\t0"
]
},
{
name => "missing_integer_after_exponent",
opts => [],
input => [
"10e",
""
],
gives => [
"lexical error: malformed number, a digit is required after the exponent.",
"memory leaks:\t0"
]
},
{
name => "multiple",
opts => [],
input => [
"",
"{}",
"{}",
""
],
gives => [
"map open '{'",
"map close '}'",
"parse error: trailing garbage",
"memory leaks:\t0"
]
},
{
name => "nan",
opts => [],
input => [
"NaN",
""
],
gives => [
"lexical error: special number Infinity or NaN found, JSON5 is not enabled.",
"memory leaks:\t0"
]
},
{
name => "non_utf8_char_in_string",
opts => [],
input => [
"{\"CoreletAPIVersion\":2,\"CoreletType\":\"standalone\",\"documentation\":\"A corelet that provides the capability to upload a folder\222s contents into a user\222s locker.\",\"functions\":[{\"documentation\":\"Displays a dialog box that allows user to select a folder on the local system.\",\"name\":\"ShowBrowseDialog\",\"parameters\":[{\"documentation\":\"The callback function for results.\",\"name\":\"callback\",\"required\":true,\"type\":\"callback\"}]},{\"documentation\":\"Uploads all mp3 files in the folder provided.\",\"name\":\"UploadFolder\",\"parameters\":[{\"documentation\":\"The path to upload mp3 files from.\",\"name\":\"path\",\"required\":true,\"type\":\"string\"},{\"documentation\":\"The callback function for progress.\",\"name\":\"callback\",\"required\":true,\"type\":\"callback\"}]},{\"documentation\":\"Returns the server name to the current locker service.\",\"name\":\"GetLockerService\",\"parameters\":[]},{\"documentation\":\"Changes the name of the locker service.\",\"name\":\"SetLockerService\",\"parameters\":[{\"documentation\":\"The value of the locker service to set active.\",\"name\":\"LockerService\",\"required\":true,\"type\":\"string\"}]},{\"documentation\":\"Downloads locker files to the suggested folder.\",\"name\":\"DownloadFile\",\"parameters\":[{\"documentation\":\"The origin path of the locker file.\",\"name\":\"path\",\"required\":true,\"type\":\"string\"},{\"documentation\":\"The Window destination path of the locker file.\",\"name\":\"destination\",\"required\":true,\"type\":\"integer\"},{\"documentation\":\"The callback function for progress.\",\"name\":\"callback\",\"required\":true,\"type\":\"callback\"}]}],\"name\":\"LockerUploader\",\"version\":{\"major\":0,\"micro\":1,\"minor\":0},\"versionString\":\"0.0.1\"}"
],
gives => [
"map open '{'",
"key: 'CoreletAPIVersion'",
"integer: 2",
"key: 'CoreletType'",
"string: 'standalone'",
"key: 'documentation'",
"lexical error: invalid bytes in UTF8 string.",
"memory leaks:\t0"
]
},
{
name => "partial_bad",
opts => [],
input => [
"[ \"foo\", \"bar\"",
""
],
gives => [
"array open '['",
"string: 'foo'",
"string: 'bar'",
"parse error: premature EOF",
"memory leaks:\t0"
]
},
{
name => "null",
opts => [],
input => [
"null",
""
],
gives => [
"null",
"memory leaks:\t0"
]
},
{
name => "nulls_and_bools",
opts => [],
input => [
"{",
"\t\"boolean, true\": true,",
"\t\"boolean, false\": false,",
"\t\"null\": null",
"}",
""
],
gives => [
"map open '{'",
"key: 'boolean, true'",
"bool: true",
"key: 'boolean, false'",
"bool: false",
"key: 'null'",
"null",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "simple",
opts => [],
input => [
"{",
" \"this\": \"is\",",
" \"really\": \"simple\",",
" \"json\": \"right?\"",
"}",
""
],
gives => [
"map open '{'",
"key: 'this'",
"string: 'is'",
"key: 'really'",
"string: 'simple'",
"key: 'json'",
"string: 'right?'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "simple_with_comments",
opts => [],
input => [
"{",
" \"this\": \"is\", // ignore this",
" \"really\": \"simple\",",
" /* ignore",
"this",
"too * / ",
"** //",
"(/",
"******/",
" \"json\": \"right?\"",
"}",
""
],
gives => [
"map open '{'",
"key: 'this'",
"string: 'is'",
"lexical error: probable comment found in input text, comments are not enabled.",
"memory leaks:\t0"
]
},
{
name => "string_invalid_escape",
opts => [],
input => [
"[\"\\n foo \\/ bar \\r\\f\\\\\\uffff\\t\\b\\\"\\\\ and you can't escape thi\\s\"]",
""
],
gives => [
"array open '['",
"lexical error: inside a string, '\\' occurs before a character which it may not.",
"memory leaks:\t0"
]
},
{
name => "string_invalid_hex_char",
opts => [],
input => [
"\"foo foo, blah blah \\u0123 \\u4567 \\u89ab \\uc/ef \\uABCD \\uEFFE bar baz bing\"",
""
],
gives => [
"lexical error: invalid (non-hex) character occurs after '\\u' inside string.",
"memory leaks:\t0"
]
},
{
name => "string_with_escapes",
opts => [],
input => [
"[\"\\n foo \\/ bar \\r\\f\\\\\\uffff\\t\\b\\\"\\\\\",",
" \"\\\"and this string has an escape at the beginning\",",
" \"and this string has no escapes\" ]",
""
],
gives => [
"array open '['",
"string: '",
" foo / bar \r\f\\\357\277\277\t\b\"\\'",
"string: '\"and this string has an escape at the beginning'",
"string: 'and this string has no escapes'",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "string_with_invalid_newline",
opts => [],
input => [
"\"la di dah. this is a string, and I can do this, \\n, but not this",
"\"",
""
],
gives => [
"lexical error: invalid character inside string.",
"memory leaks:\t0"
]
},
{
name => "three_byte_utf8",
opts => [],
input => [
"{\"matzue\": \"\346\235\276\346\261\237\", \"asakusa\": \"\346\265\205\350\215\211\"}",
""
],
gives => [
"map open '{'",
"key: 'matzue'",
"string: '\346\235\276\346\261\237'",
"key: 'asakusa'",
"string: '\346\265\205\350\215\211'",
"map close '}'",
"memory leaks:\t0"
]
},
{
name => "true",
opts => [],
input => [
"true",
""
],
gives => [
"bool: true",
"memory leaks:\t0"
]
},
{
name => "unescaped_bulgarian",
opts => [],
input => [
"[\"\320\224\320\260 \320\234\321\203 \320\225\320\261\320\260 \320\234\320\260\320\271\320\272\320\260\321\202\320\260\"]",
""
],
gives => [
"array open '['",
"string: '\320\224\320\260 \320\234\321\203 \320\225\320\261\320\260 \320\234\320\260\320\271\320\272\320\260\321\202\320\260'",
"array close ']'",
"memory leaks:\t0"
]
},
{
name => "zerobyte",
opts => [],
input => [
"\"\\u0000\"",
""
],
gives => [
"string: '\0'",
"memory leaks:\t0"
]
}
];
return @{$VAR1};
}
1;