// File: /workspace/github_cpp_makefile_star2_O3/Joke-Shi[P]astrunc/sample/sample_all.cc
// Function: main
int main( int argc, const char **argv)
{
    std::string s_en = "The National People's Congress Standing Committee convened Monday to discuss amending "
                       "the Constitution.\n\n"
                       "Zhang Dejiang, chairman of the 12th NPC Standing Committee, presided over the meeting.\n\n"
                       "Li Zhanshu, member of the Standing Committee of the Political Bureau of the Communist "
                       "Party of China Central Committee, briefed lawmakers about a proposal by the Central "
                       "Committee on the revision to the Constitution.\n"
                       "The 19th CPC Central Committee adopted the proposal at its second plenary session this month.\n"
                       "\"Major theoretical achievements, principles and policies adopted at the 19th CPC National "
                       "Congress, particularly Xi Jinping Thought on Socialism with Chinese Characteristics for a New Era, "
                       "should be incorporated into the upcoming revision to the Constitution,\" said Li, also deputy head "
                       "of a group working on the revision.\n"
                       "\"We should keep pace with the times and improve the Constitution while maintaining its consistency, "
                       "stability and authority,\" Li said.\n"
                       "Amending of the Constitution should be done by adhering to the Party's leadership and socialist rule "
                       "of law, heading toward the correct political direction, following due process, being based on broad "
                       "consensus, embodying the will of the people and only amending part of it instead of revising it on a "
                       "large scale, Li said.\n"
                       "In 1982, the fifth NPC adopted the present Constitution, which underwent four amendments－in 1988, "
                       "1993, 1999 and 2004.\n"
                       "\"The Constitution has proved to be good legislation that fits in with China's reality and meets the "
                       "demands of the times,\" Li said, adding that because the Party and nation have undergone profound "
                       "changes since 2004, the Constitution should be adjusted accordingly.\n"
                       "Xinhua\n"
                       "He said: Chang suggested organizing a canine patrol squad at the museum and, in 1987, dogs came back. "
                       "At 1 year old, each dog is given a tailored training course. Most start their career as guard dogs "
                       "after three months of intense training.\n\n"
                       "Уорд Каннингем және оның соавторы Бо Леуф өздерінің « The Wiki Way: Quick Collaboration on the Web» "
                       "кітабында уики концепциясының мәнін былайша түсіндірген:\n"
                       "Уики әртүрлі беттер арасындағы байланысты оңай сітемелер жасау мүмкіндігі арқылы және сілтеме жасалған "
                       "беттердің бар-жоқтығын білдіру арқылы қамтамасыз етеді.";

    std::string s_zh = "Prometheus，它的价值在于可靠性，甚至在很恶劣的环境下，你都可以随时访问它和查看系统服务各种指标的统计信息。"
                       "如果你对统计数据需要100%的精确，它并不适用，例如：它不适用于实时计费系统。";

    std::string s_hy = "Chang- ը սկսեց աշխատել, երբ օգնում էր վերահսկել թանգարանը, երբ նա 20 տարեկան էր (abc): "
                       "1980-ական թվականներին մարդկային պահակները ցուցահանդեսային սրահներում միայն ձայնային "
                       "դետեկտորների օգնությամբ էին: Երբ ինչ-որ բան աննորմալ էր լսվում. նրանք գողություն կատարեցին դեպքի վայրում:";


    /** Begin split */
    { 
        std::vector< std::string > vs;
        int rc = astrunc::access::split( vs, s_en, astrunc::access::EN, -1);
        if ( 0 == rc) {
            for ( auto const &__s : vs ) {
                std::cout << ": -------------------------------------------------------------------------------[OK-EN]\n";
                std::cout << __s << std::endl;
            }
        } else { std::cerr << "[Error]: Split EN error\n"; }

        vs.clear();
        rc = astrunc::access::split( vs, s_zh, astrunc::access::ZH, 32);
        if ( 0 == rc) {
            for ( auto const &__s : vs ) {
                std::cout << ": -------------------------------------------------------------------------------[OK-ZH]\n";
                std::cout << __s << std::endl;
            }
        } else { std::cerr << "[Error]: Split ZH error\n"; }

        vs.clear();
        rc = astrunc::access::split( vs, s_hy, astrunc::access::HY, 32);
        if ( 0 == rc) {
            for ( auto const &__s : vs ) {
                std::cout << ": -------------------------------------------------------------------------------[OK-HY]\n";
                std::cout << __s << std::endl;
            }
        } else { std::cerr << "[Error]: Split HY error\n"; }

    }


    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
leaq 0x28(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x15cb(%rip), %rsi      # 0x82f6
leaq 0x1f6b(%rip), %rdx      # 0x8c9d
leaq 0x18(%rsp), %rdi
callq 0x7456
leaq 0x48(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1f52(%rip), %rsi      # 0x8c9e
leaq 0x2052(%rip), %rdx      # 0x8da5
leaq 0x38(%rsp), %rdi
callq 0x7456
leaq 0x68(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2039(%rip), %rsi      # 0x8da6
leaq 0x221d(%rip), %rdx      # 0x8f91
leaq 0x58(%rsp), %rdi
callq 0x7456
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x6e3c
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
movq $-0x1, %rdx
callq 0x40a0
testl %eax, %eax
je 0x6dcc
movq 0x4237(%rip), %rdi      # 0xaff0
leaq 0x222c(%rip), %rsi      # 0x8fec
movl $0x18, %edx
callq 0x2150
jmp 0x6e3c
movq (%rsp), %r12
movq 0x8(%rsp), %r13
cmpq %r13, %r12
je 0x6e3c
movq 0x41ef(%rip), %rbx      # 0xafd0
leaq 0x21aa(%rip), %r14      # 0x8f92
movl $0x59, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2150
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %rbx, %rdi
callq 0x2150
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2110
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
addq $0x20, %r12
cmpq %r13, %r12
jne 0x6de8
movq (%rsp), %r12
movq 0x8(%rsp), %rbx
cmpq %r12, %rbx
je 0x6e78
leaq 0x10(%r12), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x6e63
movq (%r14), %rsi
incq %rsi
callq 0x2130
leaq 0x20(%r14), %rax
addq $0x10, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x6e4f
movq %r12, 0x8(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x6eb5
movq %rsp, %rdi
leaq 0x38(%rsp), %rsi
movl $0x20, %edx
callq 0x3210
testl %eax, %eax
je 0x6eb0
movq 0x4153(%rip), %rdi      # 0xaff0
leaq 0x21bb(%rip), %rsi      # 0x905f
movl $0x18, %edx
callq 0x2150
jmp 0x6f1f
movq 0x8(%rsp), %r12
movq (%rsp), %r13
cmpq %r12, %r13
je 0x6f1f
movq 0x410b(%rip), %rbx      # 0xafd0
leaq 0x2139(%rip), %r14      # 0x9005
movl $0x59, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2150
movq (%r13), %rsi
movq 0x8(%r13), %rdx
movq %rbx, %rdi
callq 0x2150
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2110
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
addq $0x20, %r13
cmpq %r12, %r13
jne 0x6ecc
movq (%rsp), %r12
movq 0x8(%rsp), %rbx
cmpq %r12, %rbx
je 0x6f5b
leaq 0x10(%r12), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x6f46
movq (%r14), %rsi
incq %rsi
callq 0x2130
leaq 0x20(%r14), %rax
addq $0x10, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x6f32
movq %r12, 0x8(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0x6f98
movq %rsp, %rdi
leaq 0x58(%rsp), %rsi
movl $0x20, %edx
callq 0x5960
testl %eax, %eax
je 0x6f93
movq 0x4070(%rip), %rdi      # 0xaff0
leaq 0x214b(%rip), %rsi      # 0x90d2
movl $0x18, %edx
callq 0x2150
jmp 0x7002
movq 0x8(%rsp), %r12
movq (%rsp), %r13
cmpq %r12, %r13
je 0x7002
movq 0x4028(%rip), %rbx      # 0xafd0
leaq 0x20c9(%rip), %r14      # 0x9078
movl $0x59, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2150
movq (%r13), %rsi
movq 0x8(%r13), %rdx
movq %rbx, %rdi
callq 0x2150
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2110
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
addq $0x20, %r13
cmpq %r12, %r13
jne 0x6faf
movq %rsp, %rdi
callq 0x714a
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7021
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x2130
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
leaq 0x28(%rsp), %rbx
je 0x7042
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x2130
movq 0x18(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7059
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x2130
xorl %eax, %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x70a1
movq %rax, %rbx
leaq 0x28(%rsp), %r14
jmp 0x70c2
jmp 0x707f
jmp 0x707f
jmp 0x707f
movq %rax, %rbx
movq %rsp, %rdi
callq 0x714a
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x70a1
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x2130
leaq 0x28(%rsp), %r14
leaq 0x48(%rsp), %rax
movq 0x38(%rsp), %rdi
cmpq %rax, %rdi
je 0x70c2
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x2130
movq 0x18(%rsp), %rdi
cmpq %r14, %rdi
je 0x70d9
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x2130
movq %rbx, %rdi
callq 0x21a0
nop