#include <stddef.h>

int main();


int _start() {
    return main();
}

#include "baselib.h"
#include "moredefs.h"

int payload_main(void *arg) {
    //

    // End
    return 0;
}

int payload_start() {
    // Create new thread
    char newstack[1024];
    int res = clone(CLONE_FILES | CLONE_FS | CLONE_IO | CLONE_PTRACE | CLONE_VM, newstack, NULL, NULL, 0);

    // End
    return res;
}

int main() {
    int res;
    const char text_startup[] = "Payload is starting... ";
    const char text_success[] = "Success\n";
    const char text_failure[] = "Failed\n";

    print(text_startup, 1);

    // Start payload
    res = payload_start();

    // End
    print((res == 0)?text_success:text_failure, 1);
    return res;
}
