.file "arry.cpp"
.section .text._ZNSt6vectorIS_IdSaIdEESaIS1_EED2Ev,"axG",@progbits,_ZNSt6vectorIS_IdSaIdEESaIS1_EED5Ev,comdat
.align 2
.p2align 4,,15
.weak _ZNSt6vectorIS_IdSaIdEESaIS1_EED2Ev
.type _ZNSt6vectorIS_IdSaIdEESaIS1_EED2Ev, @function
_ZNSt6vectorIS_IdSaIdEESaIS1_EED2Ev:
.LFB3166:
.cfi_startproc
pushq %r12
.cfi_def_cfa_offset 16
.cfi_offset 12, -16
movq %rdi, %r12
pushq %rbp
.cfi_def_cfa_offset 24
.cfi_offset 6, -24
pushq %rbx
.cfi_def_cfa_offset 32
.cfi_offset 3, -32
movq 8(%rdi), %rbp
movq (%rdi), %rbx
cmpq %rbx, %rbp
je .L2
.p2align 4,,10
.p2align 3
.L8:
movq (%rbx), %rdi
testq %rdi, %rdi
je .L3
call _ZdlPv
.L3:
addq $24, %rbx
cmpq %rbx, %rbp
jne .L8
movq (%r12), %rbx
.L2:
testq %rbx, %rbx
je .L1
movq %rbx, %rdi
popq %rbx
.cfi_remember_state
.cfi_def_cfa_offset 24
popq %rbp
.cfi_def_cfa_offset 16
popq %r12
.cfi_def_cfa_offset 8
jmp _ZdlPv
.p2align 4,,10
.p2align 3
.L1:
.cfi_restore_state
popq %rbx
.cfi_def_cfa_offset 24
popq %rbp
.cfi_def_cfa_offset 16
popq %r12
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE3166:
.size _ZNSt6vectorIS_IdSaIdEESaIS1_EED2Ev, .-_ZNSt6vectorIS_IdSaIdEESaIS1_EED2Ev
.weak _ZNSt6vectorIS_IdSaIdEESaIS1_EED1Ev
.set _ZNSt6vectorIS_IdSaIdEESaIS1_EED1Ev,_ZNSt6vectorIS_IdSaIdEESaIS1_EED2Ev
.section .text._ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_,"axG",@progbits,_ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_,comdat
.p2align 4,,15
.weak _ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_
.type _ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_, @function
_ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_:
.LFB3363:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA3363
pushq %r15
.cfi_def_cfa_offset 16
.cfi_offset 15, -16
pushq %r14
.cfi_def_cfa_offset 24
.cfi_offset 14, -24
pushq %r13
.cfi_def_cfa_offset 32
.cfi_offset 13, -32
movabsq $2305843009213693951, %r13
pushq %r12
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
movq %rsi, %r12
pushq %rbp
.cfi_def_cfa_offset 48
.cfi_offset 6, -48
movq %rdx, %rbp
pushq %rbx
.cfi_def_cfa_offset 56
.cfi_offset 3, -56
movq %rdi, %rbx
subq $24, %rsp
.cfi_def_cfa_offset 80
testq %rsi, %rsi
movq %rdi, 8(%rsp)
jne .L36
jmp .L13
.p2align 4,,10
.p2align 3
.L44:
cmpq %r13, %rax
ja .L43
leaq 0(,%rax,8), %r15
movq %r15, %rdi
.LEHB0:
call _Znwm
movq %rax, %r14
.L16:
addq %r14, %r15
movq %r14, (%rbx)
movq %r14, 8(%rbx)
movq %r15, 16(%rbx)
movq 0(%rbp), %rsi
xorl %r15d, %r15d
movq 8(%rbp), %rcx
subq %rsi, %rcx
sarq $3, %rcx
testq %rcx, %rcx
je .L18
leaq 0(,%rcx,8), %r15
movq %r14, %rdi
movq %r15, %rdx
.L18:
leaq (%r14,%r15), %r8
movq %r8, 8(%rbx)
.L15:
addq $24, %rbx
subq $1, %r12
je .L13
.L36:
testq %rbx, %rbx
je .L15
movq 8(%rbp), %rax
subq 0(%rbp), %rax
movq $0, (%rbx)
movq $0, 8(%rbx)
movq $0, 16(%rbx)
sarq $3, %rax
testq %rax, %rax
jne .L44
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp .L16
.p2align 4,,10
.p2align 3
.L13:
addq $24, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 56
popq %rbx
.cfi_def_cfa_offset 48
popq %rbp
.cfi_def_cfa_offset 40
popq %r12
.cfi_def_cfa_offset 32
popq %r13
.cfi_def_cfa_offset 24
popq %r14
.cfi_def_cfa_offset 16
popq %r15
.cfi_def_cfa_offset 8
ret
.L43:
.cfi_restore_state
call _ZSt17__throw_bad_allocv
.LEHE0:
.L29:
movq %rax, %rdi
call __cxa_begin_catch
cmpq %rbx, 8(%rsp)
je .L26
.L35:
movq 8(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je .L24
call _ZdlPv
.L24:
addq $24, 8(%rsp)
cmpq %rbx, 8(%rsp)
jne .L35
.L26:
.LEHB1:
call __cxa_rethrow
.LEHE1:
.L30:
movq %rax, %rbx
call __cxa_end_catch
movq %rbx, %rdi
.LEHB2:
call _Unwind_Resume
.LEHE2:
.cfi_endproc
.LFE3363:
.globl __gxx_personality_v0
.section .gcc_except_table,"a",@progbits
.align 4
.LLSDA3363:
.byte 0xff
.byte 0x3
.uleb128 .LLSDATT3363-.LLSDATTD3363
.LLSDATTD3363:
.byte 0x1
.uleb128 .LLSDACSE3363-.LLSDACSB3363
.LLSDACSB3363:
.uleb128 .LEHB0-.LFB3363
.uleb128 .LEHE0-.LEHB0
.uleb128 .L29-.LFB3363
.uleb128 0x1
.uleb128 .LEHB1-.LFB3363
.uleb128 .LEHE1-.LEHB1
.uleb128 .L30-.LFB3363
.uleb128 0
.uleb128 .LEHB2-.LFB3363
.uleb128 .LEHE2-.LEHB2
.uleb128 0
.uleb128 0
.LLSDACSE3363:
.byte 0x1
.byte 0
.align 4
.long 0
.LLSDATT3363:
.section .text._ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_,"axG",@progbits,_ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_,comdat
.size _ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_, .-_ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_
.section .rodata.str1.1,"aMS",@progbits,1
.LC1:
.string "constructed"
.LC2:
.string "arry.cpp"
.LC3:
.string "lhs.size() == rhs.size()"
.section .text.startup,"ax",@progbits
.p2align 4,,15
.globl main
.type main, @function
main:
.LFB3085:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
.cfi_lsda 0x3,.LLSDA3085
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movl $32, %edi
pushq %rbx
.cfi_def_cfa_offset 24
.cfi_offset 3, -24
subq $72, %rsp
.cfi_def_cfa_offset 96
movq $0, 32(%rsp)
movq $0, 40(%rsp)
movq $0, 48(%rsp)
.LEHB3:
call _Znwm
.LEHE3:
leaq 32(%rax), %rdx
movq %rax, 32(%rsp)
movq $0, 24(%rax)
movl $480000, %edi
movq %rdx, 48(%rsp)
movq $0, (%rax)
movq $0, 8(%rax)
movq $0, 16(%rax)
movq %rdx, 40(%rsp)
movq $0, (%rsp)
movq $0, 8(%rsp)
movq $0, 16(%rsp)
.LEHB4:
call _Znwm
.LEHE4:
leaq 480000(%rax), %rdx
movl $20000, %esi
movq %rax, %rdi
movq %rax, (%rsp)
movq %rax, 8(%rsp)
movq %rdx, 16(%rsp)
leaq 32(%rsp), %rdx
.LEHB5:
call _ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPSt6vectorIdSaIdEEmS4_EEvT_T0_RKT1_
.LEHE5:
movq 32(%rsp), %rdi
movq 16(%rsp), %rax
testq %rdi, %rdi
movq %rax, 8(%rsp)
je .L47
call _ZdlPv
.L47:
movq (%rsp), %rcx
xorl %eax, %eax
.L51:
cvtsi2sdq %rax, %xmm0
movq (%rcx), %rdx
leaq 1(%rax), %rsi
addq $24, %rcx
movsd %xmm0, (%rdx)
cvtsi2sdq %rsi, %xmm0
leaq 2(%rax), %rsi
movsd %xmm0, 8(%rdx)
cvtsi2sdq %rsi, %xmm0
leaq 3(%rax), %rsi
addq $4, %rax
cmpq $80000, %rax
movsd %xmm0, 16(%rdx)
cvtsi2sdq %rsi, %xmm0
movsd %xmm0, 24(%rdx)
jne .L51
movl $.LC1, %esi
movl $_ZSt4cerr, %edi
.LEHB6:
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
movq %rax, %rdi
call _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
movq (%rsp), %r11
xorpd %xmm0, %xmm0
leaq 480000(%r11), %rbp
leaq 8(%r11), %rbx
leaq 480008(%r11), %r10
movapd %xmm0, %xmm3
.L52:
movq (%r11), %rsi
movq 8(%r11), %r9
movq %rbx, %r8
subq %rsi, %r9
sarq $3, %r9
leaq 1(%r9), %rdi
.p2align 4,,10
.p2align 3
.L57:
movq -8(%r8), %rcx
movq (%r8), %rax
subq %rcx, %rax
sarq $3, %rax
cmpq %rax, %r9
jne .L53
xorl %edx, %edx
testq %r9, %r9
movl $1, %eax
movapd %xmm3, %xmm2
je .L55
.p2align 4,,10
.p2align 3
.L56:
movsd (%rsi,%rdx,8), %xmm1
subsd (%rcx,%rdx,8), %xmm1
movq %rax, %rdx
addq $1, %rax
cmpq %rdi, %rax
mulsd %xmm1, %xmm1
addsd %xmm1, %xmm2
jne .L56
.L55:
addq $24, %r8
addsd %xmm2, %xmm0
cmpq %r10, %r8
jne .L57
addq $24, %r11
cmpq %rbp, %r11
jne .L52
movl $_ZSt4cout, %edi
call _ZNSo9_M_insertIdEERSoT_
movq %rax, %rdi
call _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.LEHE6:
movq %rsp, %rdi
call _ZNSt6vectorIS_IdSaIdEESaIS1_EED1Ev
addq $72, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 24
xorl %eax, %eax
popq %rbx
.cfi_def_cfa_offset 16
popq %rbp
.cfi_def_cfa_offset 8
ret
.L63:
.cfi_restore_state
movq (%rsp), %rdi
movq %rax, %rbx
testq %rdi, %rdi
je .L50
call _ZdlPv
.L50:
movq 32(%rsp), %rdi
testq %rdi, %rdi
je .L76
call _ZdlPv
.L76:
movq %rbx, %rdi
.LEHB7:
call _Unwind_Resume
.LEHE7:
.L61:
movq %rax, %rbx
jmp .L50
.L53:
movl $_ZZ12fast_sq_distISt6vectorIdSaIdEEEdRKT_S5_E19__PRETTY_FUNCTION__, %ecx
movl $9, %edx
movl $.LC2, %esi
movl $.LC3, %edi
call __assert_fail
.L62:
movq %rsp, %rdi
movq %rax, %rbx
call _ZNSt6vectorIS_IdSaIdEESaIS1_EED1Ev
jmp .L76
.cfi_endproc
.LFE3085:
.section .gcc_except_table
.LLSDA3085:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE3085-.LLSDACSB3085
.LLSDACSB3085:
.uleb128 .LEHB3-.LFB3085
.uleb128 .LEHE3-.LEHB3
.uleb128 0
.uleb128 0
.uleb128 .LEHB4-.LFB3085
.uleb128 .LEHE4-.LEHB4
.uleb128 .L61-.LFB3085
.uleb128 0
.uleb128 .LEHB5-.LFB3085
.uleb128 .LEHE5-.LEHB5
.uleb128 .L63-.LFB3085
.uleb128 0
.uleb128 .LEHB6-.LFB3085
.uleb128 .LEHE6-.LEHB6
.uleb128 .L62-.LFB3085
.uleb128 0
.uleb128 .LEHB7-.LFB3085
.uleb128 .LEHE7-.LEHB7
.uleb128 0
.uleb128 0
.LLSDACSE3085:
.section .text.startup
.size main, .-main
.p2align 4,,15
.type _GLOBAL__sub_I_main, @function
_GLOBAL__sub_I_main:
.LFB3429:
.cfi_startproc
subq $8, %rsp
.cfi_def_cfa_offset 16
movl $_ZStL8__ioinit, %edi
call _ZNSt8ios_base4InitC1Ev
movl $__dso_handle, %edx
movl $_ZStL8__ioinit, %esi
movl $_ZNSt8ios_base4InitD1Ev, %edi
addq $8, %rsp
.cfi_def_cfa_offset 8
jmp __cxa_atexit
.cfi_endproc
.LFE3429:
.size _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main
.section .init_array,"aw"
.align 8
.quad _GLOBAL__sub_I_main
.section .rodata
.align 32
.type _ZZ12fast_sq_distISt6vectorIdSaIdEEEdRKT_S5_E19__PRETTY_FUNCTION__, @object
.size _ZZ12fast_sq_distISt6vectorIdSaIdEEEdRKT_S5_E19__PRETTY_FUNCTION__, 77
_ZZ12fast_sq_distISt6vectorIdSaIdEEEdRKT_S5_E19__PRETTY_FUNCTION__:
.string "double fast_sq_dist(const VEC&, const VEC&) [with VEC = std::vector<double>]"
.local _ZStL8__ioinit
.comm _ZStL8__ioinit,1,1
.hidden __dso_handle
.ident "GCC: (Ubuntu/Linaro 4.7.0-7ubuntu3) 4.7.0"
.section .note.GNU-stack,"",@progbits
CS5maWxlCSJhcnJ5LmNwcCIKCS5zZWN0aW9uCS50ZXh0Ll9aTlN0NnZlY3RvcklTX0lkU2FJZEVFU2FJUzFfRUVEMkV2LCJheEciLEBwcm9nYml0cyxfWk5TdDZ2ZWN0b3JJU19JZFNhSWRFRVNhSVMxX0VFRDVFdixjb21kYXQKCS5hbGlnbiAyCgkucDJhbGlnbiA0LCwxNQoJLndlYWsJX1pOU3Q2dmVjdG9ySVNfSWRTYUlkRUVTYUlTMV9FRUQyRXYKCS50eXBlCV9aTlN0NnZlY3RvcklTX0lkU2FJZEVFU2FJUzFfRUVEMkV2LCBAZnVuY3Rpb24KX1pOU3Q2dmVjdG9ySVNfSWRTYUlkRUVTYUlTMV9FRUQyRXY6Ci5MRkIzMTY2OgoJLmNmaV9zdGFydHByb2MKCXB1c2hxCSVyMTIKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKCS5jZmlfb2Zmc2V0IDEyLCAtMTYKCW1vdnEJJXJkaSwgJXIxMgoJcHVzaHEJJXJicAoJLmNmaV9kZWZfY2ZhX29mZnNldCAyNAoJLmNmaV9vZmZzZXQgNiwgLTI0CglwdXNocQklcmJ4CgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDMyCgkuY2ZpX29mZnNldCAzLCAtMzIKCW1vdnEJOCglcmRpKSwgJXJicAoJbW92cQkoJXJkaSksICVyYngKCWNtcHEJJXJieCwgJXJicAoJamUJLkwyCgkucDJhbGlnbiA0LCwxMAoJLnAyYWxpZ24gMwouTDg6Cgltb3ZxCSglcmJ4KSwgJXJkaQoJdGVzdHEJJXJkaSwgJXJkaQoJamUJLkwzCgljYWxsCV9aZGxQdgouTDM6CglhZGRxCSQyNCwgJXJieAoJY21wcQklcmJ4LCAlcmJwCglqbmUJLkw4Cgltb3ZxCSglcjEyKSwgJXJieAouTDI6Cgl0ZXN0cQklcmJ4LCAlcmJ4CglqZQkuTDEKCW1vdnEJJXJieCwgJXJkaQoJcG9wcQklcmJ4CgkuY2ZpX3JlbWVtYmVyX3N0YXRlCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDI0Cglwb3BxCSVyYnAKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKCXBvcHEJJXIxMgoJLmNmaV9kZWZfY2ZhX29mZnNldCA4CglqbXAJX1pkbFB2CgkucDJhbGlnbiA0LCwxMAoJLnAyYWxpZ24gMwouTDE6CgkuY2ZpX3Jlc3RvcmVfc3RhdGUKCXBvcHEJJXJieAoJLmNmaV9kZWZfY2ZhX29mZnNldCAyNAoJcG9wcQklcmJwCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Cglwb3BxCSVyMTIKCS5jZmlfZGVmX2NmYV9vZmZzZXQgOAoJcmV0CgkuY2ZpX2VuZHByb2MKLkxGRTMxNjY6Cgkuc2l6ZQlfWk5TdDZ2ZWN0b3JJU19JZFNhSWRFRVNhSVMxX0VFRDJFdiwgLi1fWk5TdDZ2ZWN0b3JJU19JZFNhSWRFRVNhSVMxX0VFRDJFdgoJLndlYWsJX1pOU3Q2dmVjdG9ySVNfSWRTYUlkRUVTYUlTMV9FRUQxRXYKCS5zZXQJX1pOU3Q2dmVjdG9ySVNfSWRTYUlkRUVTYUlTMV9FRUQxRXYsX1pOU3Q2dmVjdG9ySVNfSWRTYUlkRUVTYUlTMV9FRUQyRXYKCS5zZWN0aW9uCS50ZXh0Ll9aTlN0MjJfX3VuaW5pdGlhbGl6ZWRfZmlsbF9uSUxiMEVFMTVfX3VuaW5pdF9maWxsX25JUFN0NnZlY3RvcklkU2FJZEVFbVM0X0VFdlRfVDBfUktUMV8sImF4RyIsQHByb2diaXRzLF9aTlN0MjJfX3VuaW5pdGlhbGl6ZWRfZmlsbF9uSUxiMEVFMTVfX3VuaW5pdF9maWxsX25JUFN0NnZlY3RvcklkU2FJZEVFbVM0X0VFdlRfVDBfUktUMV8sY29tZGF0CgkucDJhbGlnbiA0LCwxNQoJLndlYWsJX1pOU3QyMl9fdW5pbml0aWFsaXplZF9maWxsX25JTGIwRUUxNV9fdW5pbml0X2ZpbGxfbklQU3Q2dmVjdG9ySWRTYUlkRUVtUzRfRUV2VF9UMF9SS1QxXwoJLnR5cGUJX1pOU3QyMl9fdW5pbml0aWFsaXplZF9maWxsX25JTGIwRUUxNV9fdW5pbml0X2ZpbGxfbklQU3Q2dmVjdG9ySWRTYUlkRUVtUzRfRUV2VF9UMF9SS1QxXywgQGZ1bmN0aW9uCl9aTlN0MjJfX3VuaW5pdGlhbGl6ZWRfZmlsbF9uSUxiMEVFMTVfX3VuaW5pdF9maWxsX25JUFN0NnZlY3RvcklkU2FJZEVFbVM0X0VFdlRfVDBfUktUMV86Ci5MRkIzMzYzOgoJLmNmaV9zdGFydHByb2MKCS5jZmlfcGVyc29uYWxpdHkgMHgzLF9fZ3h4X3BlcnNvbmFsaXR5X3YwCgkuY2ZpX2xzZGEgMHgzLC5MTFNEQTMzNjMKCXB1c2hxCSVyMTUKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKCS5jZmlfb2Zmc2V0IDE1LCAtMTYKCXB1c2hxCSVyMTQKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMjQKCS5jZmlfb2Zmc2V0IDE0LCAtMjQKCXB1c2hxCSVyMTMKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMzIKCS5jZmlfb2Zmc2V0IDEzLCAtMzIKCW1vdmFic3EJJDIzMDU4NDMwMDkyMTM2OTM5NTEsICVyMTMKCXB1c2hxCSVyMTIKCS5jZmlfZGVmX2NmYV9vZmZzZXQgNDAKCS5jZmlfb2Zmc2V0IDEyLCAtNDAKCW1vdnEJJXJzaSwgJXIxMgoJcHVzaHEJJXJicAoJLmNmaV9kZWZfY2ZhX29mZnNldCA0OAoJLmNmaV9vZmZzZXQgNiwgLTQ4Cgltb3ZxCSVyZHgsICVyYnAKCXB1c2hxCSVyYngKCS5jZmlfZGVmX2NmYV9vZmZzZXQgNTYKCS5jZmlfb2Zmc2V0IDMsIC01NgoJbW92cQklcmRpLCAlcmJ4CglzdWJxCSQyNCwgJXJzcAoJLmNmaV9kZWZfY2ZhX29mZnNldCA4MAoJdGVzdHEJJXJzaSwgJXJzaQoJbW92cQklcmRpLCA4KCVyc3ApCglqbmUJLkwzNgoJam1wCS5MMTMKCS5wMmFsaWduIDQsLDEwCgkucDJhbGlnbiAzCi5MNDQ6CgljbXBxCSVyMTMsICVyYXgKCWphCS5MNDMKCWxlYXEJMCgsJXJheCw4KSwgJXIxNQoJbW92cQklcjE1LCAlcmRpCi5MRUhCMDoKCWNhbGwJX1pud20KCW1vdnEJJXJheCwgJXIxNAouTDE2OgoJYWRkcQklcjE0LCAlcjE1Cgltb3ZxCSVyMTQsICglcmJ4KQoJbW92cQklcjE0LCA4KCVyYngpCgltb3ZxCSVyMTUsIDE2KCVyYngpCgltb3ZxCTAoJXJicCksICVyc2kKCXhvcmwJJXIxNWQsICVyMTVkCgltb3ZxCTgoJXJicCksICVyY3gKCXN1YnEJJXJzaSwgJXJjeAoJc2FycQkkMywgJXJjeAoJdGVzdHEJJXJjeCwgJXJjeAoJamUJLkwxOAoJbGVhcQkwKCwlcmN4LDgpLCAlcjE1Cgltb3ZxCSVyMTQsICVyZGkKCW1vdnEJJXIxNSwgJXJkeAoJY2FsbAltZW1tb3ZlCi5MMTg6CglsZWFxCSglcjE0LCVyMTUpLCAlcjgKCW1vdnEJJXI4LCA4KCVyYngpCi5MMTU6CglhZGRxCSQyNCwgJXJieAoJc3VicQkkMSwgJXIxMgoJamUJLkwxMwouTDM2OgoJdGVzdHEJJXJieCwgJXJieAoJamUJLkwxNQoJbW92cQk4KCVyYnApLCAlcmF4CglzdWJxCTAoJXJicCksICVyYXgKCW1vdnEJJDAsICglcmJ4KQoJbW92cQkkMCwgOCglcmJ4KQoJbW92cQkkMCwgMTYoJXJieCkKCXNhcnEJJDMsICVyYXgKCXRlc3RxCSVyYXgsICVyYXgKCWpuZQkuTDQ0Cgl4b3JsCSVyMTVkLCAlcjE1ZAoJeG9ybAklcjE0ZCwgJXIxNGQKCWptcAkuTDE2CgkucDJhbGlnbiA0LCwxMAoJLnAyYWxpZ24gMwouTDEzOgoJYWRkcQkkMjQsICVyc3AKCS5jZmlfcmVtZW1iZXJfc3RhdGUKCS5jZmlfZGVmX2NmYV9vZmZzZXQgNTYKCXBvcHEJJXJieAoJLmNmaV9kZWZfY2ZhX29mZnNldCA0OAoJcG9wcQklcmJwCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDQwCglwb3BxCSVyMTIKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMzIKCXBvcHEJJXIxMwoJLmNmaV9kZWZfY2ZhX29mZnNldCAyNAoJcG9wcQklcjE0CgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Cglwb3BxCSVyMTUKCS5jZmlfZGVmX2NmYV9vZmZzZXQgOAoJcmV0Ci5MNDM6CgkuY2ZpX3Jlc3RvcmVfc3RhdGUKCWNhbGwJX1pTdDE3X190aHJvd19iYWRfYWxsb2N2Ci5MRUhFMDoKLkwyOToKCW1vdnEJJXJheCwgJXJkaQoJY2FsbAlfX2N4YV9iZWdpbl9jYXRjaAoJY21wcQklcmJ4LCA4KCVyc3ApCglqZQkuTDI2Ci5MMzU6Cgltb3ZxCTgoJXJzcCksICVyYXgKCW1vdnEJKCVyYXgpLCAlcmRpCgl0ZXN0cQklcmRpLCAlcmRpCglqZQkuTDI0CgljYWxsCV9aZGxQdgouTDI0OgoJYWRkcQkkMjQsIDgoJXJzcCkKCWNtcHEJJXJieCwgOCglcnNwKQoJam5lCS5MMzUKLkwyNjoKLkxFSEIxOgoJY2FsbAlfX2N4YV9yZXRocm93Ci5MRUhFMToKLkwzMDoKCW1vdnEJJXJheCwgJXJieAoJY2FsbAlfX2N4YV9lbmRfY2F0Y2gKCW1vdnEJJXJieCwgJXJkaQouTEVIQjI6CgljYWxsCV9VbndpbmRfUmVzdW1lCi5MRUhFMjoKCS5jZmlfZW5kcHJvYwouTEZFMzM2MzoKCS5nbG9ibAlfX2d4eF9wZXJzb25hbGl0eV92MAoJLnNlY3Rpb24JLmdjY19leGNlcHRfdGFibGUsImEiLEBwcm9nYml0cwoJLmFsaWduIDQKLkxMU0RBMzM2MzoKCS5ieXRlCTB4ZmYKCS5ieXRlCTB4MwoJLnVsZWIxMjggLkxMU0RBVFQzMzYzLS5MTFNEQVRURDMzNjMKLkxMU0RBVFREMzM2MzoKCS5ieXRlCTB4MQoJLnVsZWIxMjggLkxMU0RBQ1NFMzM2My0uTExTREFDU0IzMzYzCi5MTFNEQUNTQjMzNjM6CgkudWxlYjEyOCAuTEVIQjAtLkxGQjMzNjMKCS51bGViMTI4IC5MRUhFMC0uTEVIQjAKCS51bGViMTI4IC5MMjktLkxGQjMzNjMKCS51bGViMTI4IDB4MQoJLnVsZWIxMjggLkxFSEIxLS5MRkIzMzYzCgkudWxlYjEyOCAuTEVIRTEtLkxFSEIxCgkudWxlYjEyOCAuTDMwLS5MRkIzMzYzCgkudWxlYjEyOCAwCgkudWxlYjEyOCAuTEVIQjItLkxGQjMzNjMKCS51bGViMTI4IC5MRUhFMi0uTEVIQjIKCS51bGViMTI4IDAKCS51bGViMTI4IDAKLkxMU0RBQ1NFMzM2MzoKCS5ieXRlCTB4MQoJLmJ5dGUJMAoJLmFsaWduIDQKCS5sb25nCTAKCi5MTFNEQVRUMzM2MzoKCS5zZWN0aW9uCS50ZXh0Ll9aTlN0MjJfX3VuaW5pdGlhbGl6ZWRfZmlsbF9uSUxiMEVFMTVfX3VuaW5pdF9maWxsX25JUFN0NnZlY3RvcklkU2FJZEVFbVM0X0VFdlRfVDBfUktUMV8sImF4RyIsQHByb2diaXRzLF9aTlN0MjJfX3VuaW5pdGlhbGl6ZWRfZmlsbF9uSUxiMEVFMTVfX3VuaW5pdF9maWxsX25JUFN0NnZlY3RvcklkU2FJZEVFbVM0X0VFdlRfVDBfUktUMV8sY29tZGF0Cgkuc2l6ZQlfWk5TdDIyX191bmluaXRpYWxpemVkX2ZpbGxfbklMYjBFRTE1X191bmluaXRfZmlsbF9uSVBTdDZ2ZWN0b3JJZFNhSWRFRW1TNF9FRXZUX1QwX1JLVDFfLCAuLV9aTlN0MjJfX3VuaW5pdGlhbGl6ZWRfZmlsbF9uSUxiMEVFMTVfX3VuaW5pdF9maWxsX25JUFN0NnZlY3RvcklkU2FJZEVFbVM0X0VFdlRfVDBfUktUMV8KCS5zZWN0aW9uCS5yb2RhdGEuc3RyMS4xLCJhTVMiLEBwcm9nYml0cywxCi5MQzE6Cgkuc3RyaW5nCSJjb25zdHJ1Y3RlZCIKLkxDMjoKCS5zdHJpbmcJImFycnkuY3BwIgouTEMzOgoJLnN0cmluZwkibGhzLnNpemUoKSA9PSByaHMuc2l6ZSgpIgoJLnNlY3Rpb24JLnRleHQuc3RhcnR1cCwiYXgiLEBwcm9nYml0cwoJLnAyYWxpZ24gNCwsMTUKCS5nbG9ibAltYWluCgkudHlwZQltYWluLCBAZnVuY3Rpb24KbWFpbjoKLkxGQjMwODU6CgkuY2ZpX3N0YXJ0cHJvYwoJLmNmaV9wZXJzb25hbGl0eSAweDMsX19neHhfcGVyc29uYWxpdHlfdjAKCS5jZmlfbHNkYSAweDMsLkxMU0RBMzA4NQoJcHVzaHEJJXJicAoJLmNmaV9kZWZfY2ZhX29mZnNldCAxNgoJLmNmaV9vZmZzZXQgNiwgLTE2Cgltb3ZsCSQzMiwgJWVkaQoJcHVzaHEJJXJieAoJLmNmaV9kZWZfY2ZhX29mZnNldCAyNAoJLmNmaV9vZmZzZXQgMywgLTI0CglzdWJxCSQ3MiwgJXJzcAoJLmNmaV9kZWZfY2ZhX29mZnNldCA5NgoJbW92cQkkMCwgMzIoJXJzcCkKCW1vdnEJJDAsIDQwKCVyc3ApCgltb3ZxCSQwLCA0OCglcnNwKQouTEVIQjM6CgljYWxsCV9abndtCi5MRUhFMzoKCWxlYXEJMzIoJXJheCksICVyZHgKCW1vdnEJJXJheCwgMzIoJXJzcCkKCW1vdnEJJDAsIDI0KCVyYXgpCgltb3ZsCSQ0ODAwMDAsICVlZGkKCW1vdnEJJXJkeCwgNDgoJXJzcCkKCW1vdnEJJDAsICglcmF4KQoJbW92cQkkMCwgOCglcmF4KQoJbW92cQkkMCwgMTYoJXJheCkKCW1vdnEJJXJkeCwgNDAoJXJzcCkKCW1vdnEJJDAsICglcnNwKQoJbW92cQkkMCwgOCglcnNwKQoJbW92cQkkMCwgMTYoJXJzcCkKLkxFSEI0OgoJY2FsbAlfWm53bQouTEVIRTQ6CglsZWFxCTQ4MDAwMCglcmF4KSwgJXJkeAoJbW92bAkkMjAwMDAsICVlc2kKCW1vdnEJJXJheCwgJXJkaQoJbW92cQklcmF4LCAoJXJzcCkKCW1vdnEJJXJheCwgOCglcnNwKQoJbW92cQklcmR4LCAxNiglcnNwKQoJbGVhcQkzMiglcnNwKSwgJXJkeAouTEVIQjU6CgljYWxsCV9aTlN0MjJfX3VuaW5pdGlhbGl6ZWRfZmlsbF9uSUxiMEVFMTVfX3VuaW5pdF9maWxsX25JUFN0NnZlY3RvcklkU2FJZEVFbVM0X0VFdlRfVDBfUktUMV8KLkxFSEU1OgoJbW92cQkzMiglcnNwKSwgJXJkaQoJbW92cQkxNiglcnNwKSwgJXJheAoJdGVzdHEJJXJkaSwgJXJkaQoJbW92cQklcmF4LCA4KCVyc3ApCglqZQkuTDQ3CgljYWxsCV9aZGxQdgouTDQ3OgoJbW92cQkoJXJzcCksICVyY3gKCXhvcmwJJWVheCwgJWVheAouTDUxOgoJY3Z0c2kyc2RxCSVyYXgsICV4bW0wCgltb3ZxCSglcmN4KSwgJXJkeAoJbGVhcQkxKCVyYXgpLCAlcnNpCglhZGRxCSQyNCwgJXJjeAoJbW92c2QJJXhtbTAsICglcmR4KQoJY3Z0c2kyc2RxCSVyc2ksICV4bW0wCglsZWFxCTIoJXJheCksICVyc2kKCW1vdnNkCSV4bW0wLCA4KCVyZHgpCgljdnRzaTJzZHEJJXJzaSwgJXhtbTAKCWxlYXEJMyglcmF4KSwgJXJzaQoJYWRkcQkkNCwgJXJheAoJY21wcQkkODAwMDAsICVyYXgKCW1vdnNkCSV4bW0wLCAxNiglcmR4KQoJY3Z0c2kyc2RxCSVyc2ksICV4bW0wCgltb3ZzZAkleG1tMCwgMjQoJXJkeCkKCWpuZQkuTDUxCgltb3ZsCSQuTEMxLCAlZXNpCgltb3ZsCSRfWlN0NGNlcnIsICVlZGkKLkxFSEI2OgoJY2FsbAlfWlN0bHNJU3QxMWNoYXJfdHJhaXRzSWNFRVJTdDEzYmFzaWNfb3N0cmVhbUljVF9FUzVfUEtjCgltb3ZxCSVyYXgsICVyZGkKCWNhbGwJX1pTdDRlbmRsSWNTdDExY2hhcl90cmFpdHNJY0VFUlN0MTNiYXNpY19vc3RyZWFtSVRfVDBfRVM2XwoJbW92cQkoJXJzcCksICVyMTEKCXhvcnBkCSV4bW0wLCAleG1tMAoJbGVhcQk0ODAwMDAoJXIxMSksICVyYnAKCWxlYXEJOCglcjExKSwgJXJieAoJbGVhcQk0ODAwMDgoJXIxMSksICVyMTAKCW1vdmFwZAkleG1tMCwgJXhtbTMKLkw1MjoKCW1vdnEJKCVyMTEpLCAlcnNpCgltb3ZxCTgoJXIxMSksICVyOQoJbW92cQklcmJ4LCAlcjgKCXN1YnEJJXJzaSwgJXI5CglzYXJxCSQzLCAlcjkKCWxlYXEJMSglcjkpLCAlcmRpCgkucDJhbGlnbiA0LCwxMAoJLnAyYWxpZ24gMwouTDU3OgoJbW92cQktOCglcjgpLCAlcmN4Cgltb3ZxCSglcjgpLCAlcmF4CglzdWJxCSVyY3gsICVyYXgKCXNhcnEJJDMsICVyYXgKCWNtcHEJJXJheCwgJXI5CglqbmUJLkw1MwoJeG9ybAklZWR4LCAlZWR4Cgl0ZXN0cQklcjksICVyOQoJbW92bAkkMSwgJWVheAoJbW92YXBkCSV4bW0zLCAleG1tMgoJamUJLkw1NQoJLnAyYWxpZ24gNCwsMTAKCS5wMmFsaWduIDMKLkw1NjoKCW1vdnNkCSglcnNpLCVyZHgsOCksICV4bW0xCglzdWJzZAkoJXJjeCwlcmR4LDgpLCAleG1tMQoJbW92cQklcmF4LCAlcmR4CglhZGRxCSQxLCAlcmF4CgljbXBxCSVyZGksICVyYXgKCW11bHNkCSV4bW0xLCAleG1tMQoJYWRkc2QJJXhtbTEsICV4bW0yCglqbmUJLkw1NgouTDU1OgoJYWRkcQkkMjQsICVyOAoJYWRkc2QJJXhtbTIsICV4bW0wCgljbXBxCSVyMTAsICVyOAoJam5lCS5MNTcKCWFkZHEJJDI0LCAlcjExCgljbXBxCSVyYnAsICVyMTEKCWpuZQkuTDUyCgltb3ZsCSRfWlN0NGNvdXQsICVlZGkKCWNhbGwJX1pOU285X01faW5zZXJ0SWRFRVJTb1RfCgltb3ZxCSVyYXgsICVyZGkKCWNhbGwJX1pTdDRlbmRsSWNTdDExY2hhcl90cmFpdHNJY0VFUlN0MTNiYXNpY19vc3RyZWFtSVRfVDBfRVM2XwouTEVIRTY6Cgltb3ZxCSVyc3AsICVyZGkKCWNhbGwJX1pOU3Q2dmVjdG9ySVNfSWRTYUlkRUVTYUlTMV9FRUQxRXYKCWFkZHEJJDcyLCAlcnNwCgkuY2ZpX3JlbWVtYmVyX3N0YXRlCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDI0Cgl4b3JsCSVlYXgsICVlYXgKCXBvcHEJJXJieAoJLmNmaV9kZWZfY2ZhX29mZnNldCAxNgoJcG9wcQklcmJwCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDgKCXJldAouTDYzOgoJLmNmaV9yZXN0b3JlX3N0YXRlCgltb3ZxCSglcnNwKSwgJXJkaQoJbW92cQklcmF4LCAlcmJ4Cgl0ZXN0cQklcmRpLCAlcmRpCglqZQkuTDUwCgljYWxsCV9aZGxQdgouTDUwOgoJbW92cQkzMiglcnNwKSwgJXJkaQoJdGVzdHEJJXJkaSwgJXJkaQoJamUJLkw3NgoJY2FsbAlfWmRsUHYKLkw3NjoKCW1vdnEJJXJieCwgJXJkaQouTEVIQjc6CgljYWxsCV9VbndpbmRfUmVzdW1lCi5MRUhFNzoKLkw2MToKCW1vdnEJJXJheCwgJXJieAoJam1wCS5MNTAKLkw1MzoKCW1vdmwJJF9aWjEyZmFzdF9zcV9kaXN0SVN0NnZlY3RvcklkU2FJZEVFRWRSS1RfUzVfRTE5X19QUkVUVFlfRlVOQ1RJT05fXywgJWVjeAoJbW92bAkkOSwgJWVkeAoJbW92bAkkLkxDMiwgJWVzaQoJbW92bAkkLkxDMywgJWVkaQoJY2FsbAlfX2Fzc2VydF9mYWlsCi5MNjI6Cgltb3ZxCSVyc3AsICVyZGkKCW1vdnEJJXJheCwgJXJieAoJY2FsbAlfWk5TdDZ2ZWN0b3JJU19JZFNhSWRFRVNhSVMxX0VFRDFFdgoJam1wCS5MNzYKCS5jZmlfZW5kcHJvYwouTEZFMzA4NToKCS5zZWN0aW9uCS5nY2NfZXhjZXB0X3RhYmxlCi5MTFNEQTMwODU6CgkuYnl0ZQkweGZmCgkuYnl0ZQkweGZmCgkuYnl0ZQkweDEKCS51bGViMTI4IC5MTFNEQUNTRTMwODUtLkxMU0RBQ1NCMzA4NQouTExTREFDU0IzMDg1OgoJLnVsZWIxMjggLkxFSEIzLS5MRkIzMDg1CgkudWxlYjEyOCAuTEVIRTMtLkxFSEIzCgkudWxlYjEyOCAwCgkudWxlYjEyOCAwCgkudWxlYjEyOCAuTEVIQjQtLkxGQjMwODUKCS51bGViMTI4IC5MRUhFNC0uTEVIQjQKCS51bGViMTI4IC5MNjEtLkxGQjMwODUKCS51bGViMTI4IDAKCS51bGViMTI4IC5MRUhCNS0uTEZCMzA4NQoJLnVsZWIxMjggLkxFSEU1LS5MRUhCNQoJLnVsZWIxMjggLkw2My0uTEZCMzA4NQoJLnVsZWIxMjggMAoJLnVsZWIxMjggLkxFSEI2LS5MRkIzMDg1CgkudWxlYjEyOCAuTEVIRTYtLkxFSEI2CgkudWxlYjEyOCAuTDYyLS5MRkIzMDg1CgkudWxlYjEyOCAwCgkudWxlYjEyOCAuTEVIQjctLkxGQjMwODUKCS51bGViMTI4IC5MRUhFNy0uTEVIQjcKCS51bGViMTI4IDAKCS51bGViMTI4IDAKLkxMU0RBQ1NFMzA4NToKCS5zZWN0aW9uCS50ZXh0LnN0YXJ0dXAKCS5zaXplCW1haW4sIC4tbWFpbgoJLnAyYWxpZ24gNCwsMTUKCS50eXBlCV9HTE9CQUxfX3N1Yl9JX21haW4sIEBmdW5jdGlvbgpfR0xPQkFMX19zdWJfSV9tYWluOgouTEZCMzQyOToKCS5jZmlfc3RhcnRwcm9jCglzdWJxCSQ4LCAlcnNwCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Cgltb3ZsCSRfWlN0TDhfX2lvaW5pdCwgJWVkaQoJY2FsbAlfWk5TdDhpb3NfYmFzZTRJbml0QzFFdgoJbW92bAkkX19kc29faGFuZGxlLCAlZWR4Cgltb3ZsCSRfWlN0TDhfX2lvaW5pdCwgJWVzaQoJbW92bAkkX1pOU3Q4aW9zX2Jhc2U0SW5pdEQxRXYsICVlZGkKCWFkZHEJJDgsICVyc3AKCS5jZmlfZGVmX2NmYV9vZmZzZXQgOAoJam1wCV9fY3hhX2F0ZXhpdAoJLmNmaV9lbmRwcm9jCi5MRkUzNDI5OgoJLnNpemUJX0dMT0JBTF9fc3ViX0lfbWFpbiwgLi1fR0xPQkFMX19zdWJfSV9tYWluCgkuc2VjdGlvbgkuaW5pdF9hcnJheSwiYXciCgkuYWxpZ24gOAoJLnF1YWQJX0dMT0JBTF9fc3ViX0lfbWFpbgoJLnNlY3Rpb24JLnJvZGF0YQoJLmFsaWduIDMyCgkudHlwZQlfWloxMmZhc3Rfc3FfZGlzdElTdDZ2ZWN0b3JJZFNhSWRFRUVkUktUX1M1X0UxOV9fUFJFVFRZX0ZVTkNUSU9OX18sIEBvYmplY3QKCS5zaXplCV9aWjEyZmFzdF9zcV9kaXN0SVN0NnZlY3RvcklkU2FJZEVFRWRSS1RfUzVfRTE5X19QUkVUVFlfRlVOQ1RJT05fXywgNzcKX1paMTJmYXN0X3NxX2Rpc3RJU3Q2dmVjdG9ySWRTYUlkRUVFZFJLVF9TNV9FMTlfX1BSRVRUWV9GVU5DVElPTl9fOgoJLnN0cmluZwkiZG91YmxlIGZhc3Rfc3FfZGlzdChjb25zdCBWRUMmLCBjb25zdCBWRUMmKSBbd2l0aCBWRUMgPSBzdGQ6OnZlY3Rvcjxkb3VibGU+XSIKCS5sb2NhbAlfWlN0TDhfX2lvaW5pdAoJLmNvbW0JX1pTdEw4X19pb2luaXQsMSwxCgkuaGlkZGVuCV9fZHNvX2hhbmRsZQoJLmlkZW50CSJHQ0M6IChVYnVudHUvTGluYXJvIDQuNy4wLTd1YnVudHUzKSA0LjcuMCIKCS5zZWN0aW9uCS5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMK