Tsint main(const CStringBuffer<CString>& a_crArguments, const CStringBuffer<CString>& a_crEnvironment)
    {   CALL
        IGNORE_UNUSED(a_crArguments);
        IGNORE_UNUSED(a_crEnvironment);

        // Use standard output stream of the current process.
        CStreamStdOutput stdoutput(true);

        CArray<Tbool> a;

        // Fill the array.
        a.insertFirst(false);
        a.insertFirst(true);
        a.insertLast(false);
        a.insertLast(true);
        a.insertIndex(2, true);

        // Show the array.
        stdoutput << a;

        // Copy the array.
        CArray<Tbool> b(a);

        // Reverse the array.
        b.reverse();

        // Show the reversed array.
        stdoutput << b;

        // Remove items from arrays.
        remove(stdoutput, a, true);
        remove(stdoutput, b, false);

        return IApplication::EXIT_WITH_SUCCESS;
    }