Home
last modified time | relevance | path

Searched refs:scratch (Results 1 – 25 of 407) sorted by relevance

12345678910>>...17

/external/libopus/celt/mips/
Dkiss_fft_mipsr1.h99 kiss_fft_cpx scratch[13]; in kf_bfly5() local
128 scratch[0] = *Fout0; in kf_bfly5()
131 C_MUL(scratch[1] ,*Fout1, tw[u*fstride]); in kf_bfly5()
132 C_MUL(scratch[2] ,*Fout2, tw[2*u*fstride]); in kf_bfly5()
133 C_MUL(scratch[3] ,*Fout3, tw[3*u*fstride]); in kf_bfly5()
134 C_MUL(scratch[4] ,*Fout4, tw[4*u*fstride]); in kf_bfly5()
136 C_ADD( scratch[7],scratch[1],scratch[4]); in kf_bfly5()
137 C_SUB( scratch[10],scratch[1],scratch[4]); in kf_bfly5()
138 C_ADD( scratch[8],scratch[2],scratch[3]); in kf_bfly5()
139 C_SUB( scratch[9],scratch[2],scratch[3]); in kf_bfly5()
[all …]
/external/speex/libspeex/
Dkiss_fft.c96 kiss_fft_cpx scratch[6]; in kf_bfly4() local
110 C_MUL(scratch[0],Fout[m] , *tw1 ); in kf_bfly4()
111 C_MUL(scratch[1],Fout[m2] , *tw2 ); in kf_bfly4()
112 C_MUL(scratch[2],Fout[m3] , *tw3 ); in kf_bfly4()
114 C_SUB( scratch[5] , *Fout, scratch[1] ); in kf_bfly4()
115 C_ADDTO(*Fout, scratch[1]); in kf_bfly4()
116 C_ADD( scratch[3] , scratch[0] , scratch[2] ); in kf_bfly4()
117 C_SUB( scratch[4] , scratch[0] , scratch[2] ); in kf_bfly4()
118 C_SUB( Fout[m2], *Fout, scratch[3] ); in kf_bfly4()
122 C_ADDTO( *Fout , scratch[3] ); in kf_bfly4()
[all …]
/external/eigen/unsupported/Eigen/src/FFT/
Dei_kissfft_impl.h111 Complex scratch[6]; in bfly4() local
114 scratch[0] = Fout[k+m] * m_twiddles[k*fstride]; in bfly4()
115 scratch[1] = Fout[k+2*m] * m_twiddles[k*fstride*2]; in bfly4()
116 scratch[2] = Fout[k+3*m] * m_twiddles[k*fstride*3]; in bfly4()
117 scratch[5] = Fout[k] - scratch[1]; in bfly4()
119 Fout[k] += scratch[1]; in bfly4()
120 scratch[3] = scratch[0] + scratch[2]; in bfly4()
121 scratch[4] = scratch[0] - scratch[2]; in bfly4()
122scratch[4] = Complex( scratch[4].imag()*negative_if_inverse , -scratch[4].real()* negative_if_inve… in bfly4()
124 Fout[k+2*m] = Fout[k] - scratch[3]; in bfly4()
[all …]
/external/libopus/celt/
Dkiss_fft.c137 kiss_fft_cpx scratch[6]; in kf_bfly4() local
149 C_MUL(scratch[0],Fout[m] , *tw1 ); in kf_bfly4()
150 C_MUL(scratch[1],Fout[m2] , *tw2 ); in kf_bfly4()
151 C_MUL(scratch[2],Fout[m3] , *tw3 ); in kf_bfly4()
153 C_SUB( scratch[5] , *Fout, scratch[1] ); in kf_bfly4()
154 C_ADDTO(*Fout, scratch[1]); in kf_bfly4()
155 C_ADD( scratch[3] , scratch[0] , scratch[2] ); in kf_bfly4()
156 C_SUB( scratch[4] , scratch[0] , scratch[2] ); in kf_bfly4()
157 C_SUB( Fout[m2], *Fout, scratch[3] ); in kf_bfly4()
161 C_ADDTO( *Fout , scratch[3] ); in kf_bfly4()
[all …]
/external/mesa3d/src/mesa/drivers/dri/nouveau/
Dnouveau_scratch.c39 struct nouveau_scratch_state *scratch = in nouveau_get_scratch() local
40 &to_nouveau_context(ctx)->scratch; in nouveau_get_scratch()
43 if (scratch->buf && size <= NOUVEAU_SCRATCH_SIZE - scratch->offset) { in nouveau_get_scratch()
44 nouveau_bo_ref(scratch->bo[scratch->index], bo); in nouveau_get_scratch()
46 buf = scratch->buf + scratch->offset; in nouveau_get_scratch()
47 *offset = scratch->offset; in nouveau_get_scratch()
48 scratch->offset += size; in nouveau_get_scratch()
51 scratch->index = (scratch->index + 1) % NOUVEAU_SCRATCH_COUNT; in nouveau_get_scratch()
52 nouveau_bo_ref(scratch->bo[scratch->index], bo); in nouveau_get_scratch()
55 buf = scratch->buf = (*bo)->map; in nouveau_get_scratch()
[all …]
/external/boringssl/src/decrepit/xts/
Dxts.c71 } tweak, scratch; in CRYPTO_xts128_encrypt() local
84 OPENSSL_memcpy(scratch.c, inp, 16); in CRYPTO_xts128_encrypt()
85 scratch.u[0] ^= tweak.u[0]; in CRYPTO_xts128_encrypt()
86 scratch.u[1] ^= tweak.u[1]; in CRYPTO_xts128_encrypt()
88 scratch.u[0] = ((uint64_t *)inp)[0] ^ tweak.u[0]; in CRYPTO_xts128_encrypt()
89 scratch.u[1] = ((uint64_t *)inp)[1] ^ tweak.u[1]; in CRYPTO_xts128_encrypt()
91 (*ctx->block1)(scratch.c, scratch.c, ctx->key1); in CRYPTO_xts128_encrypt()
93 scratch.u[0] ^= tweak.u[0]; in CRYPTO_xts128_encrypt()
94 scratch.u[1] ^= tweak.u[1]; in CRYPTO_xts128_encrypt()
95 OPENSSL_memcpy(out, scratch.c, 16); in CRYPTO_xts128_encrypt()
[all …]
/external/toybox/lib/
Dinterestingtimes.c66 int scan_key_getsize(char *scratch, int miliwait, unsigned *xx, unsigned *yy) in scan_key_getsize() argument
70 if (512&(key = scan_key(scratch, miliwait))) { in scan_key_getsize()
148 int scan_key(char *scratch, int miliwait) in scan_key() argument
160 if (*scratch) { in scan_key()
166 scratch[(1+*scratch)&15] = 0; in scan_key()
167 sscanf(scratch+1, "\033%n[%n%3u%n;%n%3u%nR%n", pos, pos+1, &y, in scan_key()
171 *scratch = 0; in scan_key()
173 } else for (i=0; i<6; i++) if (pos[i]==*scratch) maybe = 1; in scan_key()
178 for (j = 0; j<*scratch; j++) if (scratch[j+1] != test[j]) break; in scan_key()
179 if (j == *scratch) { in scan_key()
[all …]
/external/v8/src/ppc/
Dmacro-assembler-ppc.cc177 void MacroAssembler::Drop(Register count, Register scratch) { in Drop() argument
178 ShiftLeftImm(scratch, count, Operand(kPointerSizeLog2)); in Drop()
179 add(sp, sp, scratch); in Drop()
282 void MacroAssembler::InNewSpace(Register object, Register scratch, in InNewSpace() argument
285 CheckPageFlag(object, scratch, MemoryChunk::kIsInNewSpaceMask, cond, branch); in InNewSpace()
466 Register scratch) { in RecordWriteCodeEntryField() argument
476 DCHECK(scratch.is(r8)); in RecordWriteCodeEntryField()
480 addi(scratch, js_function, Operand(offset - kHeapObjectTag)); in RecordWriteCodeEntryField()
481 LoadP(ip, MemOperand(scratch)); in RecordWriteCodeEntryField()
490 CheckPageFlag(code_entry, scratch, in RecordWriteCodeEntryField()
[all …]
Dmacro-assembler-ppc.h158 void Drop(Register count, Register scratch = r0);
198 Register addr, Register scratch,
202 void CheckPageFlag(Register object, Register scratch, int mask, Condition cc,
207 void JumpIfNotInNewSpace(Register object, Register scratch, Label* branch) { in JumpIfNotInNewSpace() argument
208 InNewSpace(object, scratch, eq, branch); in JumpIfNotInNewSpace()
213 void JumpIfInNewSpace(Register object, Register scratch, Label* branch) { in JumpIfInNewSpace() argument
214 InNewSpace(object, scratch, ne, branch); in JumpIfInNewSpace()
235 Register object, int offset, Register value, Register scratch,
245 Register context, int offset, Register value, Register scratch,
251 RecordWriteField(context, offset + kHeapObjectTag, value, scratch,
[all …]
/external/v8/src/mips64/
Dmacro-assembler-mips64.cc199 Register scratch, in InNewSpace() argument
203 CheckPageFlag(object, scratch, MemoryChunk::kIsInNewSpaceMask, cc, branch); in InNewSpace()
413 Register scratch) { in RecordWriteCodeEntryField() argument
423 DCHECK(scratch.is(a5)); in RecordWriteCodeEntryField()
427 Daddu(scratch, js_function, Operand(offset - kHeapObjectTag)); in RecordWriteCodeEntryField()
428 ld(at, MemOperand(scratch)); in RecordWriteCodeEntryField()
437 CheckPageFlag(code_entry, scratch, in RecordWriteCodeEntryField()
439 CheckPageFlag(js_function, scratch, in RecordWriteCodeEntryField()
442 const Register dst = scratch; in RecordWriteCodeEntryField()
475 Register scratch, in RememberedSetHelper() argument
[all …]
Dmacro-assembler-mips64.h283 void Swap(Register reg1, Register reg2, Register scratch = no_reg);
411 Register scratch,
416 Register scratch,
424 Register scratch, in JumpIfNotInNewSpace() argument
426 InNewSpace(object, scratch, eq, branch); in JumpIfNotInNewSpace()
432 Register scratch, in JumpIfInNewSpace() argument
434 InNewSpace(object, scratch, ne, branch); in JumpIfInNewSpace()
464 Register scratch,
478 Register scratch,
488 scratch,
[all …]
/external/v8/src/mips/
Dmacro-assembler-mips.cc183 Register scratch, in InNewSpace() argument
187 CheckPageFlag(object, scratch, MemoryChunk::kIsInNewSpaceMask, cc, branch); in InNewSpace()
397 Register scratch) { in RecordWriteCodeEntryField() argument
407 DCHECK(scratch.is(t1)); in RecordWriteCodeEntryField()
411 Addu(scratch, js_function, Operand(offset - kHeapObjectTag)); in RecordWriteCodeEntryField()
412 lw(at, MemOperand(scratch)); in RecordWriteCodeEntryField()
421 CheckPageFlag(code_entry, scratch, in RecordWriteCodeEntryField()
423 CheckPageFlag(js_function, scratch, in RecordWriteCodeEntryField()
426 const Register dst = scratch; in RecordWriteCodeEntryField()
459 Register scratch, in RememberedSetHelper() argument
[all …]
Dmacro-assembler-mips.h254 void Swap(Register reg1, Register reg2, Register scratch = no_reg);
378 Register scratch,
383 Register scratch,
391 Register scratch, in JumpIfNotInNewSpace() argument
393 InNewSpace(object, scratch, eq, branch); in JumpIfNotInNewSpace()
399 Register scratch, in JumpIfInNewSpace() argument
401 InNewSpace(object, scratch, ne, branch); in JumpIfInNewSpace()
431 Register scratch,
445 Register scratch,
455 scratch,
[all …]
/external/mesa3d/src/gallium/drivers/swr/
Dswr_scratch.cpp88 struct swr_scratch_buffers *scratch; in swr_init_scratch_buffers() local
90 scratch = CALLOC_STRUCT(swr_scratch_buffers); in swr_init_scratch_buffers()
91 ctx->scratch = scratch; in swr_init_scratch_buffers()
97 struct swr_scratch_buffers *scratch = ctx->scratch; in swr_destroy_scratch_buffers() local
99 if (scratch) { in swr_destroy_scratch_buffers()
100 AlignedFree(scratch->vs_constants.base); in swr_destroy_scratch_buffers()
101 AlignedFree(scratch->fs_constants.base); in swr_destroy_scratch_buffers()
102 AlignedFree(scratch->vertex_buffer.base); in swr_destroy_scratch_buffers()
103 AlignedFree(scratch->index_buffer.base); in swr_destroy_scratch_buffers()
104 FREE(scratch); in swr_destroy_scratch_buffers()
/external/gemmlowp/meta/
Dlegacy_multi_thread_gemm.h34 void CacheFriendlyMatrixMatrix(std::uint8_t* scratch, const IN_TYPE* lhs, in CacheFriendlyMatrixMatrix() argument
46 scratch, lhs, rhs + i * chunk_size, m, optimal_n, k, in CacheFriendlyMatrixMatrix()
51 scratch, lhs, rhs + chunks_count_less_one * chunk_size, m, n_left, k, in CacheFriendlyMatrixMatrix()
54 operation.ExecuteCacheFriendlyMatrixMatrix(scratch, lhs, rhs, m, n, k, in CacheFriendlyMatrixMatrix()
67 void ExecuteMatrixMatrix(std::uint8_t* scratch, const std::uint8_t* lhs, in ExecuteMatrixMatrix() argument
71 CacheFriendlyMatrixMatrix(scratch, lhs, rhs, m, n, k, result, result_stride, in ExecuteMatrixMatrix()
75 void ExecuteCacheFriendlyMatrixMatrix(std::uint8_t* scratch, in ExecuteCacheFriendlyMatrixMatrix() argument
81 gemm_q8_strided(scratch, lhs, rhs, m, n, k, lhs_offset, rhs_offset, in ExecuteCacheFriendlyMatrixMatrix()
97 void ExecuteMatrixMatrix(std::uint8_t* scratch, const std::uint8_t* lhs, in ExecuteMatrixMatrix() argument
101 CacheFriendlyMatrixMatrix(scratch, lhs, rhs, m, n, k, result, result_stride, in ExecuteMatrixMatrix()
[all …]
Dlegacy_multi_thread_gemv.h39 void ExecuteMatrixMatrix(std::uint8_t* scratch, const std::uint8_t* lhs, in ExecuteMatrixMatrix() argument
43 gemv_q8(scratch, lhs, rhs, n, k, lhs_offset, rhs_offset, sum_offset, in ExecuteMatrixMatrix()
59 void ExecuteMatrixMatrix(std::uint8_t* scratch, const std::uint8_t* lhs, in ExecuteMatrixMatrix() argument
63 gemv_f(scratch, lhs, rhs, n, k, lhs_offset, rhs_offset, result_offset, in ExecuteMatrixMatrix()
78 void ExecuteMatrixMatrix(std::uint8_t* scratch, const std::uint8_t* lhs, in ExecuteMatrixMatrix() argument
82 gemv_i32(scratch, lhs, rhs, n, k, lhs_offset, rhs_offset, result); in ExecuteMatrixMatrix()
100 std::uint8_t* scratch, const std::uint8_t* lhs, in multi_thread_gemv_q8() argument
110 operation.ExecuteMatrixMatrix(scratch, lhs, rhs, 1, n, k, result, n); in multi_thread_gemv_q8()
112 internal::MultiThreadedMatrixMatrix(pool, max_threads, scratch, lhs, rhs, 1, in multi_thread_gemv_q8()
124 std::uint8_t* scratch, const std::uint8_t* lhs, in multi_thread_gemv_f() argument
[all …]
Dmulti_thread_gemv.h39 void ExecuteMatrixMatrix(std::uint8_t* scratch, const std::uint8_t* lhs, in ExecuteMatrixMatrix() argument
43 gemv_q8(scratch, lhs, rhs, n, k, lhs_offset, rhs_offset, sum_offset, in ExecuteMatrixMatrix()
59 void ExecuteMatrixMatrix(std::uint8_t* scratch, const std::uint8_t* lhs, in ExecuteMatrixMatrix() argument
63 gemv_f(scratch, lhs, rhs, n, k, lhs_offset, rhs_offset, result_offset, in ExecuteMatrixMatrix()
78 void ExecuteMatrixMatrix(std::uint8_t* scratch, const std::uint8_t* lhs, in ExecuteMatrixMatrix() argument
82 gemv_i32(scratch, lhs, rhs, n, k, lhs_offset, rhs_offset, result); in ExecuteMatrixMatrix()
100 std::uint8_t* scratch, const std::uint8_t* lhs, in multi_thread_gemv_q8() argument
110 operation.ExecuteMatrixMatrix(scratch, lhs, rhs, 1, n, k, result, n); in multi_thread_gemv_q8()
112 internal::MultiThreadedMatrixMatrix(pool, max_threads, scratch, lhs, rhs, 1, in multi_thread_gemv_q8()
124 std::uint8_t* scratch, const std::uint8_t* lhs, in multi_thread_gemv_f() argument
[all …]
Dmulti_thread_gemm.h30 int kernel_k, std::uint8_t* scratch, int m_start, in PrepareGemmTask() argument
35 task.scratch = scratch; in PrepareGemmTask()
52 return scratch + Executor::template EstimateScratchSize<Params>( in PrepareGemmTask()
75 std::uint8_t* scratch = params.scratch; in PrepareGemmTasks() local
80 scratch = PrepareGemmTask<Executor, Params>( in PrepareGemmTasks()
81 params, kernel_m, kernel_n, kernel_k, scratch, i * m_chunk, m_chunk, in PrepareGemmTasks()
86 scratch, sum_m, params.m - sum_m, 0, in PrepareGemmTasks()
91 scratch = PrepareGemmTask<Executor, Params>( in PrepareGemmTasks()
92 params, kernel_m, kernel_n, kernel_k, scratch, 0, params.m, in PrepareGemmTasks()
97 scratch, 0, params.m, sum_n, in PrepareGemmTasks()
Dlegacy_single_thread_gemm.h29 void gemm_q8_strided(std::uint8_t* scratch, const std::uint8_t* lhs, in gemm_q8_strided() argument
52 params.scratch = scratch; in gemm_q8_strided()
74 void gemv_q8(std::uint8_t* scratch, const std::uint8_t* lhs, in gemv_q8() argument
96 params.scratch = scratch; in gemv_q8()
122 void gemm_i32_strided(std::uint8_t* scratch, const std::uint8_t* lhs, in gemm_i32_strided() argument
145 params.scratch = scratch; in gemm_i32_strided()
163 void gemv_i32(std::uint8_t* scratch, const std::uint8_t* lhs, in gemv_i32() argument
185 params.scratch = scratch; in gemv_i32()
207 void gemm_f_strided(std::uint8_t* scratch, const std::uint8_t* lhs, in gemm_f_strided() argument
229 params.scratch = scratch; in gemm_f_strided()
[all …]
/external/vixl/src/aarch32/
Dmacro-assembler-aarch32.cc548 Register scratch, in MemOperandComputationHelper() argument
552 VIXL_ASSERT(!AliasesAvailableScratchRegister(scratch)); in MemOperandComputationHelper()
592 sub(cond, scratch, base, sub_pc_offset); in MemOperandComputationHelper()
594 if (add_offset == 0) return MemOperand(scratch, load_store_offset); in MemOperandComputationHelper()
597 base = scratch; in MemOperandComputationHelper()
603 add(cond, scratch, base, add_offset); in MemOperandComputationHelper()
604 return MemOperand(scratch, load_store_offset); in MemOperandComputationHelper()
751 UseScratchRegisterScope scratch(this); in Printf() local
752 scratch.ExcludeAll(); in Printf()
974 Register scratch = temps.Acquire(); in Delegate() local
[all …]
/external/mesa3d/src/gallium/drivers/nouveau/
Dnouveau_buffer.c899 if (!nv->scratch.runout) in nouveau_scratch_runout_release()
903 nv->scratch.runout)) in nouveau_scratch_runout_release()
906 nv->scratch.end = 0; in nouveau_scratch_runout_release()
907 nv->scratch.runout = NULL; in nouveau_scratch_runout_release()
919 if (nv->scratch.runout) in nouveau_scratch_runout()
920 n = nv->scratch.runout->nr; in nouveau_scratch_runout()
923 nv->scratch.runout = REALLOC(nv->scratch.runout, n == 0 ? 0 : in nouveau_scratch_runout()
924 (sizeof(*nv->scratch.runout) + (n + 0) * sizeof(void *)), in nouveau_scratch_runout()
925 sizeof(*nv->scratch.runout) + (n + 1) * sizeof(void *)); in nouveau_scratch_runout()
926 nv->scratch.runout->nr = n + 1; in nouveau_scratch_runout()
[all …]
/external/gemmlowp/test/
Dcorrectness_meta_gemm.cc176 void test(std::uint8_t* scratch, std::uint8_t* lhs, std::uint8_t* rhs, in test() argument
183 gemmlowp::meta::multi_thread_gemm_q8(pool, pool_size, scratch, lhs, rhs, m, n, in test()
188 void test_f(std::uint8_t* scratch, std::uint8_t* lhs, std::uint8_t* rhs, in test_f() argument
196 gemmlowp::meta::multi_thread_gemm_f(pool, pool_size, scratch, lhs, rhs, m, n, in test_f()
201 void test_i32(std::uint8_t* scratch, std::uint8_t* lhs, std::uint8_t* rhs, in test_i32() argument
209 gemmlowp::meta::multi_thread_gemm_i32(pool, pool_size, scratch, lhs, rhs, m, in test_i32()
215 int kd, std::uint8_t* scratch, std::uint8_t* left, in q_suite() argument
221 test(scratch, left, right, m, n, k, result, pool, t); in q_suite()
229 int kd, std::uint8_t* scratch, std::uint8_t* left, in f_suite() argument
235 test_f(scratch, left, right, m, n, k, result, pool, t); in f_suite()
[all …]
/external/v8/src/crankshaft/mips/
Dlithium-codegen-mips.cc415 Register LCodeGen::EmitLoadRegister(LOperand* op, Register scratch) { in EmitLoadRegister() argument
426 __ li(scratch, Operand(static_cast<int32_t>(literal->Number()))); in EmitLoadRegister()
429 __ li(scratch, Operand(Smi::FromInt(constant->Integer32Value()))); in EmitLoadRegister()
434 __ li(scratch, literal); in EmitLoadRegister()
436 return scratch; in EmitLoadRegister()
438 __ lw(scratch, ToMemOperand(op)); in EmitLoadRegister()
439 return scratch; in EmitLoadRegister()
442 return scratch; in EmitLoadRegister()
787 Register scratch = scratch0(); in DeoptimizeIf() local
790 __ Push(a1, scratch); in DeoptimizeIf()
[all …]
/external/boringssl/src/crypto/cipher_extra/
De_aesgcmsiv.c233 uint8_t scratch[16]; in gcm_siv_asm_polyval() local
235 OPENSSL_memset(scratch, 0, sizeof(scratch)); in gcm_siv_asm_polyval()
236 OPENSSL_memcpy(scratch, &ad[ad_len & ~15], ad_len & 15); in gcm_siv_asm_polyval()
237 aesgcmsiv_polyval_horner(out_tag, auth_key, scratch, 1); in gcm_siv_asm_polyval()
247 OPENSSL_memset(scratch, 0, sizeof(scratch)); in gcm_siv_asm_polyval()
248 OPENSSL_memcpy(scratch, &in[in_len & ~15], in_len & 15); in gcm_siv_asm_polyval()
249 aesgcmsiv_polyval_horner(out_tag, auth_key, scratch, 1); in gcm_siv_asm_polyval()
445 uint8_t scratch[16]; in aead_aes_gcm_siv_asm_open() local
447 OPENSSL_memset(scratch, 0, sizeof(scratch)); in aead_aes_gcm_siv_asm_open()
448 OPENSSL_memcpy(scratch, &ad[ad_len & ~15], ad_len & 15); in aead_aes_gcm_siv_asm_open()
[all …]
/external/v8/src/s390/
Dmacro-assembler-s390.h212 void Drop(Register count, Register scratch = r0);
384 void LoadW(Register dst, const MemOperand& opnd, Register scratch = no_reg);
386 void LoadlW(Register dst, const MemOperand& opnd, Register scratch = no_reg);
421 DoubleRegister scratch);
498 Register addr, Register scratch,
502 void CheckPageFlag(Register object, Register scratch, int mask, Condition cc,
507 void JumpIfNotInNewSpace(Register object, Register scratch, Label* branch) { in JumpIfNotInNewSpace() argument
508 InNewSpace(object, scratch, eq, branch); in JumpIfNotInNewSpace()
513 void JumpIfInNewSpace(Register object, Register scratch, Label* branch) { in JumpIfInNewSpace() argument
514 InNewSpace(object, scratch, ne, branch); in JumpIfInNewSpace()
[all …]

12345678910>>...17