734 lines
35 KiB
Plaintext
734 lines
35 KiB
Plaintext
(module $h264_dec.wasm
|
|
(type (;0;) (func (param i32 i32)))
|
|
(type (;1;) (func))
|
|
(type (;2;) (func (param i32)))
|
|
(type (;3;) (func (result i32)))
|
|
(import "__pragma" "loopbound" (func $__pragma_loopbound (type 0)))
|
|
(func $__wasm_apply_data_relocs (type 1))
|
|
(func $h264_dec_init (type 1)
|
|
(local i32 i32 i32 i32)
|
|
global.get $__stack_pointer
|
|
i32.const 16
|
|
i32.sub
|
|
local.tee 0
|
|
global.set $__stack_pointer
|
|
local.get 0
|
|
i32.const 0
|
|
i32.store8 offset=15
|
|
i32.const 8450
|
|
i32.const 8450
|
|
call $__pragma_loopbound
|
|
i32.const -8450
|
|
local.set 1
|
|
loop ;; label = @1
|
|
i32.const 16672
|
|
local.get 1
|
|
i32.add
|
|
local.tee 2
|
|
i32.const 8450
|
|
i32.add
|
|
local.tee 3
|
|
local.get 3
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 2
|
|
i32.const 8451
|
|
i32.add
|
|
local.tee 2
|
|
local.get 2
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 1
|
|
i32.const 2
|
|
i32.add
|
|
local.tee 1
|
|
br_if 0 (;@1;)
|
|
end
|
|
i32.const 4050
|
|
i32.const 4050
|
|
call $__pragma_loopbound
|
|
i32.const -8100
|
|
local.set 2
|
|
loop ;; label = @1
|
|
i32.const 1024
|
|
local.get 2
|
|
i32.add
|
|
local.tee 1
|
|
i32.const 8100
|
|
i32.add
|
|
local.tee 3
|
|
local.get 3
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 1
|
|
i32.const 8101
|
|
i32.add
|
|
local.tee 3
|
|
local.get 3
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 1
|
|
i32.const 8102
|
|
i32.add
|
|
local.tee 3
|
|
local.get 3
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 1
|
|
i32.const 8103
|
|
i32.add
|
|
local.tee 1
|
|
local.get 1
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 2
|
|
i32.const 4
|
|
i32.add
|
|
local.tee 2
|
|
br_if 0 (;@1;)
|
|
end
|
|
i32.const 256
|
|
i32.const 256
|
|
call $__pragma_loopbound
|
|
i32.const -1024
|
|
local.set 2
|
|
loop ;; label = @1
|
|
i32.const 25136
|
|
local.get 2
|
|
i32.add
|
|
local.tee 1
|
|
i32.const 1024
|
|
i32.add
|
|
local.tee 3
|
|
local.get 3
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 1
|
|
i32.const 1025
|
|
i32.add
|
|
local.tee 3
|
|
local.get 3
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 1
|
|
i32.const 1026
|
|
i32.add
|
|
local.tee 3
|
|
local.get 3
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 1
|
|
i32.const 1027
|
|
i32.add
|
|
local.tee 1
|
|
local.get 1
|
|
i32.load8_u
|
|
local.get 0
|
|
i32.load8_u offset=15
|
|
i32.xor
|
|
i32.store8
|
|
local.get 2
|
|
i32.const 4
|
|
i32.add
|
|
local.tee 2
|
|
br_if 0 (;@1;)
|
|
end
|
|
i32.const 0
|
|
i64.const 34359738376
|
|
i64.store offset=16660 align=4
|
|
i32.const 0
|
|
i32.const 256
|
|
i32.store offset=16128
|
|
i32.const 0
|
|
i64.const 8589934592
|
|
i64.store offset=16652 align=4
|
|
i32.const 0
|
|
i64.const 1099511628128
|
|
i64.store offset=16120 align=4
|
|
i32.const 0
|
|
i64.const 4294967297
|
|
i64.store offset=16112 align=4
|
|
i32.const 0
|
|
i64.const 0
|
|
i64.store offset=16644 align=4
|
|
local.get 0
|
|
i32.const 16
|
|
i32.add
|
|
global.set $__stack_pointer)
|
|
(func $h264_dec_decode_one_macroblock (type 2) (param i32)
|
|
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
|
|
local.get 0
|
|
i32.load offset=552
|
|
local.set 1
|
|
local.get 0
|
|
i32.load offset=548
|
|
local.set 2
|
|
i32.const 2
|
|
i32.const 2
|
|
call $__pragma_loopbound
|
|
i32.const 64
|
|
local.get 1
|
|
i32.div_s
|
|
local.tee 3
|
|
i32.const 64
|
|
local.get 2
|
|
i32.div_s
|
|
local.tee 4
|
|
i32.mul
|
|
local.tee 5
|
|
i32.const 1
|
|
i32.shr_s
|
|
local.set 6
|
|
local.get 3
|
|
i32.const -1
|
|
i32.add
|
|
local.set 7
|
|
local.get 4
|
|
i32.const -1
|
|
i32.add
|
|
local.set 8
|
|
i32.const 1
|
|
local.set 9
|
|
i32.const 0
|
|
local.set 1
|
|
loop ;; label = @1
|
|
i32.const 1
|
|
i32.const 1
|
|
call $__pragma_loopbound
|
|
block ;; label = @2
|
|
local.get 0
|
|
i32.load offset=544
|
|
i32.const 2
|
|
i32.lt_s
|
|
br_if 0 (;@2;)
|
|
i32.const 0
|
|
local.set 10
|
|
i32.const 1024
|
|
local.get 1
|
|
i32.const 4050
|
|
i32.mul
|
|
i32.add
|
|
local.set 11
|
|
local.get 1
|
|
i32.const 3456
|
|
i32.mul
|
|
i32.const 9200
|
|
i32.add
|
|
local.set 12
|
|
loop ;; label = @3
|
|
i32.const 4
|
|
i32.const 4
|
|
call $__pragma_loopbound
|
|
i32.const 0
|
|
local.set 13
|
|
loop ;; label = @4
|
|
local.get 0
|
|
i32.load offset=12
|
|
local.set 14
|
|
local.get 0
|
|
i32.load offset=16
|
|
local.set 15
|
|
i32.const 4
|
|
i32.const 4
|
|
call $__pragma_loopbound
|
|
local.get 4
|
|
local.get 15
|
|
i32.mul
|
|
local.set 16
|
|
local.get 4
|
|
local.get 15
|
|
i32.const 1
|
|
i32.add
|
|
local.tee 17
|
|
i32.mul
|
|
i32.const -1
|
|
i32.add
|
|
local.set 18
|
|
i32.const 0
|
|
local.set 19
|
|
loop ;; label = @5
|
|
local.get 0
|
|
i32.load offset=552
|
|
local.set 1
|
|
i32.const 4
|
|
i32.const 4
|
|
call $__pragma_loopbound
|
|
local.get 19
|
|
local.get 14
|
|
i32.add
|
|
local.tee 2
|
|
local.get 1
|
|
i32.const 4
|
|
i32.div_s
|
|
i32.div_s
|
|
i32.const 64
|
|
i32.rem_s
|
|
local.set 1
|
|
block ;; label = @6
|
|
local.get 0
|
|
i32.load offset=540
|
|
br_if 0 (;@6;)
|
|
local.get 2
|
|
local.get 3
|
|
i32.mul
|
|
local.set 20
|
|
i32.const 0
|
|
local.set 2
|
|
i32.const 16672
|
|
local.get 1
|
|
i32.const 130
|
|
i32.mul
|
|
i32.add
|
|
local.set 21
|
|
local.get 15
|
|
local.set 22
|
|
i32.const 0
|
|
local.set 1
|
|
i32.const 0
|
|
local.set 23
|
|
loop ;; label = @7
|
|
block ;; label = @8
|
|
local.get 23
|
|
br_if 0 (;@8;)
|
|
local.get 19
|
|
local.get 1
|
|
i32.add
|
|
i32.const 9136
|
|
i32.add
|
|
local.get 16
|
|
local.get 2
|
|
i32.add
|
|
local.get 21
|
|
local.get 22
|
|
local.get 0
|
|
i32.load offset=548
|
|
i32.const 4
|
|
i32.div_s
|
|
i32.div_s
|
|
i32.const 64
|
|
i32.rem_s
|
|
i32.const 1
|
|
i32.shl
|
|
i32.add
|
|
local.tee 24
|
|
i32.load8_s
|
|
local.tee 25
|
|
i32.add
|
|
local.tee 26
|
|
local.get 8
|
|
i32.and
|
|
local.tee 23
|
|
local.get 11
|
|
local.get 20
|
|
local.get 24
|
|
i32.load8_s offset=1
|
|
i32.add
|
|
local.tee 24
|
|
local.get 3
|
|
i32.div_s
|
|
local.tee 27
|
|
i32.const 287
|
|
local.get 27
|
|
i32.const 287
|
|
i32.lt_s
|
|
select
|
|
local.tee 27
|
|
i32.const 0
|
|
local.get 27
|
|
i32.const 0
|
|
i32.gt_s
|
|
select
|
|
i32.const 45
|
|
i32.rem_u
|
|
i32.const 90
|
|
i32.mul
|
|
i32.add
|
|
local.tee 27
|
|
local.get 18
|
|
local.get 2
|
|
i32.add
|
|
local.get 25
|
|
i32.add
|
|
local.get 4
|
|
i32.div_s
|
|
local.tee 28
|
|
local.get 0
|
|
i32.load offset=8
|
|
local.tee 25
|
|
i32.const -1
|
|
i32.add
|
|
local.tee 29
|
|
local.get 28
|
|
local.get 25
|
|
i32.lt_s
|
|
select
|
|
local.tee 28
|
|
i32.const 0
|
|
local.get 28
|
|
i32.const 0
|
|
i32.gt_s
|
|
select
|
|
i32.const 45
|
|
i32.rem_u
|
|
i32.const 1
|
|
i32.shl
|
|
local.tee 28
|
|
i32.add
|
|
i32.load16_s
|
|
i32.mul
|
|
local.get 4
|
|
local.get 23
|
|
i32.sub
|
|
local.tee 30
|
|
local.get 27
|
|
local.get 26
|
|
local.get 4
|
|
i32.div_s
|
|
local.tee 26
|
|
local.get 29
|
|
local.get 26
|
|
local.get 25
|
|
i32.lt_s
|
|
select
|
|
local.tee 25
|
|
i32.const 0
|
|
local.get 25
|
|
i32.const 0
|
|
i32.gt_s
|
|
select
|
|
i32.const 45
|
|
i32.rem_u
|
|
i32.const 1
|
|
i32.shl
|
|
local.tee 25
|
|
i32.add
|
|
i32.load16_s
|
|
i32.mul
|
|
i32.add
|
|
local.get 3
|
|
local.get 24
|
|
local.get 7
|
|
i32.and
|
|
local.tee 26
|
|
i32.sub
|
|
i32.mul
|
|
local.get 6
|
|
i32.add
|
|
local.get 23
|
|
local.get 11
|
|
local.get 24
|
|
local.get 7
|
|
i32.add
|
|
local.get 3
|
|
i32.div_s
|
|
local.tee 24
|
|
i32.const 287
|
|
local.get 24
|
|
i32.const 287
|
|
i32.lt_s
|
|
select
|
|
local.tee 24
|
|
i32.const 0
|
|
local.get 24
|
|
i32.const 0
|
|
i32.gt_s
|
|
select
|
|
i32.const 45
|
|
i32.rem_u
|
|
i32.const 90
|
|
i32.mul
|
|
i32.add
|
|
local.tee 24
|
|
local.get 28
|
|
i32.add
|
|
i32.load16_s
|
|
i32.mul
|
|
local.get 30
|
|
local.get 24
|
|
local.get 25
|
|
i32.add
|
|
i32.load16_s
|
|
i32.mul
|
|
i32.add
|
|
local.get 26
|
|
i32.mul
|
|
i32.add
|
|
local.get 5
|
|
i32.div_s
|
|
i32.store8
|
|
end
|
|
local.get 1
|
|
i32.const 21
|
|
i32.eq
|
|
br_if 1 (;@6;)
|
|
local.get 22
|
|
i32.const 1
|
|
i32.add
|
|
local.set 22
|
|
local.get 2
|
|
local.get 4
|
|
i32.add
|
|
local.set 2
|
|
local.get 1
|
|
i32.const 7
|
|
i32.add
|
|
local.set 1
|
|
local.get 0
|
|
i32.load offset=540
|
|
local.set 23
|
|
br 0 (;@7;)
|
|
end
|
|
end
|
|
local.get 19
|
|
i32.const 1
|
|
i32.add
|
|
local.tee 19
|
|
i32.const 4
|
|
i32.ne
|
|
br_if 0 (;@5;)
|
|
end
|
|
i32.const 4
|
|
i32.const 4
|
|
call $__pragma_loopbound
|
|
i32.const 4
|
|
i32.const 4
|
|
call $__pragma_loopbound
|
|
local.get 12
|
|
local.get 14
|
|
i32.const 64
|
|
i32.rem_s
|
|
i32.const 54
|
|
i32.mul
|
|
i32.add
|
|
local.tee 1
|
|
local.get 15
|
|
i32.const 54
|
|
i32.rem_s
|
|
local.tee 2
|
|
i32.add
|
|
i32.const 0
|
|
i32.load offset=25136
|
|
i32.store8
|
|
local.get 12
|
|
local.get 14
|
|
i32.const 1
|
|
i32.add
|
|
i32.const 64
|
|
i32.rem_s
|
|
i32.const 54
|
|
i32.mul
|
|
i32.add
|
|
local.tee 22
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=4
|
|
i32.store8
|
|
local.get 12
|
|
local.get 14
|
|
i32.const 2
|
|
i32.add
|
|
i32.const 64
|
|
i32.rem_s
|
|
i32.const 54
|
|
i32.mul
|
|
i32.add
|
|
local.tee 23
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=8
|
|
i32.store8
|
|
local.get 12
|
|
local.get 14
|
|
i32.const 3
|
|
i32.add
|
|
i32.const 64
|
|
i32.rem_s
|
|
i32.const 54
|
|
i32.mul
|
|
i32.add
|
|
local.tee 24
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=12
|
|
i32.store8
|
|
i32.const 4
|
|
i32.const 4
|
|
call $__pragma_loopbound
|
|
local.get 1
|
|
local.get 17
|
|
i32.const 54
|
|
i32.rem_s
|
|
local.tee 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=64
|
|
i32.store8
|
|
local.get 22
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=68
|
|
i32.store8
|
|
local.get 23
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=72
|
|
i32.store8
|
|
local.get 24
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=76
|
|
i32.store8
|
|
i32.const 4
|
|
i32.const 4
|
|
call $__pragma_loopbound
|
|
local.get 1
|
|
local.get 15
|
|
i32.const 2
|
|
i32.add
|
|
i32.const 54
|
|
i32.rem_s
|
|
local.tee 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=128
|
|
i32.store8
|
|
local.get 22
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=132
|
|
i32.store8
|
|
local.get 23
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=136
|
|
i32.store8
|
|
local.get 24
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=140
|
|
i32.store8
|
|
i32.const 4
|
|
i32.const 4
|
|
call $__pragma_loopbound
|
|
local.get 1
|
|
local.get 15
|
|
i32.const 3
|
|
i32.add
|
|
i32.const 54
|
|
i32.rem_s
|
|
local.tee 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=192
|
|
i32.store8
|
|
local.get 22
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=196
|
|
i32.store8
|
|
local.get 23
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=200
|
|
i32.store8
|
|
local.get 24
|
|
local.get 2
|
|
i32.add
|
|
i32.const 25136
|
|
i32.load offset=204
|
|
i32.store8
|
|
local.get 13
|
|
i32.const 1
|
|
i32.add
|
|
local.tee 13
|
|
i32.const 4
|
|
i32.ne
|
|
br_if 0 (;@4;)
|
|
end
|
|
local.get 10
|
|
i32.const 1
|
|
i32.add
|
|
local.tee 10
|
|
local.get 0
|
|
i32.load offset=544
|
|
i32.const 2
|
|
i32.div_s
|
|
i32.lt_s
|
|
br_if 0 (;@3;)
|
|
end
|
|
end
|
|
i32.const 1
|
|
local.set 1
|
|
local.get 9
|
|
i32.const 1
|
|
i32.and
|
|
local.set 2
|
|
i32.const 0
|
|
local.set 9
|
|
local.get 2
|
|
br_if 0 (;@1;)
|
|
end)
|
|
(func $h264_dec_main (type 1)
|
|
i32.const 16112
|
|
call $h264_dec_decode_one_macroblock)
|
|
(func $__original_main (type 3) (result i32)
|
|
call $h264_dec_init
|
|
call $h264_dec_main
|
|
i32.const 0
|
|
i32.load8_s offset=9200
|
|
i32.const 0
|
|
i32.load8_s offset=9136
|
|
i32.add
|
|
i32.const -128
|
|
i32.ne)
|
|
(table (;0;) 1 1 funcref)
|
|
(memory (;0;) 1)
|
|
(global $__stack_pointer (mut i32) (i32.const 30256))
|
|
(global (;1;) i32 (i32.const 26160))
|
|
(global (;2;) i32 (i32.const 30256))
|
|
(export "memory" (memory 0))
|
|
(export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs))
|
|
(export "entrypoint" (func $h264_dec_main))
|
|
(export "main" (func $__original_main))
|
|
(export "__data_end" (global 1))
|
|
(export "__heap_base" (global 2))
|
|
(data $.data (i32.const 1024) "{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00}\00~\00~\00~\00~\00~\00~\00~\00}\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00x\00w\00w\00w\00w\00w\00w\00w\00x\00y\00y\00y\00y\00y\00y\00y\00y\00x\00x\00x\00z\00z\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\7f\00\82\00\87\00\89\00\8b\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8d\00\8e\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00x\00w\00w\00w\00w\00w\00w\00w\00x\00y\00y\00y\00y\00y\00y\00y\00y\00x\00x\00x\00z\00z\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\7f\00\82\00\87\00\89\00\8b\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8d\00\8e\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00x\00w\00w\00w\00w\00w\00w\00w\00x\00y\00y\00y\00y\00y\00y\00y\00y\00x\00x\00x\00z\00z\00|\00|\00|\00{\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\7f\00\82\00\87\00\89\00\8b\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8d\00\8e\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8f\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00|\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00|\00|\00|\00|\00|\00|\00{\00{\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00x\00w\00v\00v\00v\00v\00v\00v\00w\00x\00x\00x\00x\00x\00x\00x\00x\00x\00w\00w\00y\00y\00{\00{\00{\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\80\00\82\00\86\00\88\00\8a\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8c\00\8e\00\8f\00\8f\00\8f\00\8e\00\8e\00\8e\00\8e\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00|\00|\00|\00|\00|\00|\00|\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00w\00v\00v\00v\00v\00v\00v\00v\00v\00w\00x\00x\00x\00x\00x\00x\00x\00w\00w\00w\00y\00y\00{\00{\00{\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00}\00|\00{\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\81\00\80\00\83\00\86\00\88\00\8a\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8c\00\8e\00\8f\00\8f\00\8e\00\8d\00\8c\00\8c\00\8d\00\8e\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00}\00|\00|\00|\00|\00|\00|\00|\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00w\00v\00u\00u\00u\00u\00u\00u\00v\00w\00w\00w\00w\00w\00w\00w\00w\00v\00v\00v\00x\00x\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\81\00\81\00\83\00\85\00\87\00\89\00\8a\00\8a\00\8a\00\8a\00\8a\00\8a\00\8b\00\8e\00\8f\00\8f\00\8e\00\8c\00\8b\00\8b\00\8c\00\8d\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00}\00|\00|\00|\00|\00|\00|\00|\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00{\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00x\00x\00w\00v\00u\00u\00u\00u\00u\00u\00v\00w\00w\00w\00w\00w\00w\00w\00w\00v\00v\00v\00x\00x\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\81\00\81\00\83\00\85\00\87\00\89\00\8a\00\8a\00\8a\00\8a\00\8a\00\8a\00\8b\00\8e\00\8f\00\8f\00\8e\00\8c\00\8b\00\8b\00\8c\00\8d\00\8e\00\8e\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00~\00}\00|\00|\00|\00|\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00|\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00z\00y\00y\00x\00x\00w\00w\00v\00u\00t\00t\00u\00u\00u\00u\00v\00w\00w\00w\00w\00w\00w\00w\00w\00w\00w\00w\00x\00x\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\81\00\81\00\83\00\84\00\86\00\89\00\8a\00\8a\00\8a\00\8a\00\8a\00\8a\00\8b\00\8e\00\8e\00\8e\00\8d\00\8c\00\8b\00\8b\00\8c\00\8d\00\8d\00\8d\00\8d\00\8d\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\85\00\85\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00{\00{\00y\00y\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00z\00z\00z\00z\00z\00z\00z\00{\00{\00{\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00y\00w\00w\00v\00v\00u\00u\00t\00t\00s\00s\00t\00t\00u\00u\00v\00w\00w\00x\00x\00x\00x\00x\00x\00x\00x\00x\00x\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00z\00z\00z\00{\00{\00{\00{\00{\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00{\00{\00z\00z\00y\00x\00x\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\80\00\80\00\81\00\81\00\82\00\83\00\85\00\88\00\89\00\89\00\8a\00\8a\00\8b\00\8b\00\8c\00\8d\00\8d\00\8d\00\8c\00\8c\00\8b\00\8b\00\8b\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8c\00\8b\00\8a\00\89\00\89\00\88\00\88\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\87\00\86\00\85\00\84\00\84\00\85\00\85\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00{\00z\00x\00x\00y\00z\00{\00{\00{\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00x\00v\00v\00u\00u\00t\00t\00s\00s\00r\00r\00s\00t\00u\00u\00v\00w\00w\00x\00x\00x\00x\00x\00x\00x\00x\00x\00x\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00z\00z\00z\00{\00|\00|\00|\00|\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00{\00{\00z\00z\00y\00x\00x\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\80\00\80\00\81\00\81\00\82\00\82\00\84\00\87\00\88\00\89\00\8a\00\8a\00\8b\00\8b\00\8b\00\8c\00\8c\00\8c\00\8b\00\8b\00\8a\00\8a\00\8a\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8a\00\89\00\88\00\88\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\87\00\87\00\87\00\87\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\85\00\84\00\83\00\83\00\84\00\84\00\85\00\85\00\85\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00\86\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00{\00z\00x\00x\00y\00z\00{\00{\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00x\00v\00u\00u\00t\00t\00s\00s\00r\00r\00r\00s\00t\00u\00u\00v\00w\00x\00x\00x\00x\00y\00y\00y\00x\00x\00x\00x\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00z\00z\00z\00{\00|\00|\00|\00|\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00{\00{\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00{\00{\00z\00z\00y\00x\00x\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00{\00|\00|\00|\00|\00|\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00~\00~\00\7f\00\7f\00\7f\00\80\00\80\00\80\00\80\00\80\00\80\00\81\00\81\00\82\00\82\00\84\00\87\00\88\00\88\00\89\00\8a\00\8b\00\8b\00\8b\00\8c\00\8c\00\8c\00\8b\00\8b\00\8a\00\8a\00\8a\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8b\00\8a\00\89\00\88\00\87\00\87\00\86\00\86\00\85\00\85\00\85\00\85\00\86\00\86\00\86\00\86\00\86\00\86\00\85\00\85\00\85\00\85\00\85\00\85\00\85\00\85\00\84\00\83\00\83\00\84\00\84\00\85\00\84\00\84\00\85\00\85\00\85\00\85\00\85\00\85\00\85\00\85\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00|\00|\00{\00y\00x\00x\00y\00z\00z\00z\00z\00z\00z\00z\00z\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00{\00{\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00|\00{\00{\00{\00z\00v\00t\00t\00s\00s\00r\00r\00r\00r\00r\00s\00t\00u\00u\00u\00v\00x\00y\00y\00y\00y\00y\00y\00y\00y\00x\00x\00x\00y\00y\00y\00z\00z\00y\00y\00y\00z\00z\00z\00z\00y\00y\00y\00y\00z\00z\00z\00{\00|\00|\00|\00|\00{\00{\00{\00{\00z\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00y\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00z\00{\00{\00|\00|\00|\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00}\00"))
|