human
Give me a the Python program you requested given the following:
Complete the below
def load_cifar10_dataset(shape=((-1), 32, 32, 3), path='data/cifar10/', plotable=False, second=3):

    ''''The CIFAR-10 dataset consists of 60000 32x32 colour images in 10 classes, with
    6000 images per class. There are 50000 training images and 10000 test images.
    The dataset is divided into five training batches and one test batch, each with
    10000 images. The test batch contains exactly 1000 randomly-selected images from
    each class. The training batches contain the remaining images in random order,
    but some training batches may contain more images from one class than another.
    Between them, the training batches contain exactly 5000 images from each class.
    Parameters
    shape : tupe
    The shape of digit images: e.g. (-1, 3, 32, 32) , (-1, 32, 32, 3) , (-1, 32*32*3)
    plotable : True, False
    Whether to plot some image examples.
    second : int
    If ``plotable`` is True, ``second`` is the display time.
    path : string
    The path that the data is downloaded to, defaults is ``data/cifar10/``.
    Examples
    >>> X_train, y_train, X_test, y_test = tl.files.load_cifar10_dataset(shape=(-1, 32, 32, 3), plotable=True)
    Notes
    CIFAR-10 images can only be display without color change under uint8.
    >>> X_train = np.asarray(X_train, dtype=np.uint8)
    >>> plt.ion()
    >>> fig = plt.figure(1232)
    >>> count = 1
    >>> for row in range(10):
    >>>     for col in range(10):
    >>>         a = fig.add_subplot(10, 10, count)
    >>>         plt.imshow(X_train[count-1], interpolation=\'nearest\')
    >>>         plt.gca().xaxis.set_major_locator(plt.NullLocator())    # äžæŸç€ºå»åºŠ(tick)
    >>>         plt.gca().yaxis.set_major_locator(plt.NullLocator())
    >>>         count = count + 1
    >>> plt.draw()
    >>> plt.pause(3)
    References
    - `CIFAR website <https://www.cs.toronto.edu/~kriz/cifar.html>`_
    - `Data download link <https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz>`_
    - `Code references <https://teratail.com/questions/28932>`_'
    '''
assistant
#Here is the Python program you requested.
    print 'Load    or    Download    cifar10    >    {}'.format(path)
    def unpickle(file):
        fp = open(file, 'rb')
        if (sys.version_info.major == 2):
            data = pickle.load(fp)
        elif (sys.version_info.major == 3):
            data = pickle.load(fp, encoding='latin-1')
        fp.close()
        return data
    filename = 'cifar-10-python.tar.gz'
    url = 'https://www.cs.toronto.edu/~kriz/'
    maybe_download_and_extract(filename, path, url, extract=True)
    X_train = None
    y_train = []
    for i in range(1, 6):
        data_dic = unpickle(os.path.join(path, 'cifar-10-batches-py/', 'data_batch_{}'.format(i)))
        if (i == 1):
            X_train = data_dic['data']
        else:
            X_train = np.vstack((X_train, data_dic['data']))
        y_train += data_dic['labels']
    test_data_dic = unpickle(os.path.join(path, 'cifar-10-batches-py/', 'test_batch'))
    X_test = test_data_dic['data']
    y_test = np.array(test_data_dic['labels'])
    if (shape == ((-1), 3, 32, 32)):
        X_test = X_test.reshape(shape)
        X_train = X_train.reshape(shape)
    elif (shape == ((-1), 32, 32, 3)):
        X_test = X_test.reshape(shape, order='F')
        X_train = X_train.reshape(shape, order='F')
        X_test = np.transpose(X_test, (0, 2, 1, 3))
        X_train = np.transpose(X_train, (0, 2, 1, 3))
    else:
        X_test = X_test.reshape(shape)
        X_train = X_train.reshape(shape)
    y_train = np.array(y_train)
    if (plotable == True):
        print '\nCIFAR-10'
        import matplotlib.pyplot as plt
        fig = plt.figure(1)
        print ('Shape    of    a    training    image:    X_train[0]', X_train[0].shape)
        plt.ion()
        count = 1
        for row in range(10):
            for col in range(10):
                a = fig.add_subplot(10, 10, count)
                if (shape == ((-1), 3, 32, 32)):
                    plt.imshow(np.transpose(X_train[(count - 1)], (1, 2, 0)), interpolation='nearest')
                elif (shape == ((-1), 32, 32,...