def setup():
    from ctypes import CDLL, Structure, addressof, c_void_p, c_ulong, c_buffer, pointer
    from mmap import mmap
    FLAG_LEN=43

    ff = open("flag.txt", "r")

    class S(Structure):
        _fields_ = [
            (".", c_ulong),
            ("_", c_void_p),
        ]

    f = c_buffer(b" \x00\x00\x00\x04\x00\x00\x00\x15\x00\x00\x18>\x00\x00\xC0 \x00\x00\x00\x00\x00\x00\x00\x15\x00\x15\x00\x03\x00\x00\x00\x15\x00\x14\x00\x01\x00\x00\x00\x15\x00\x13\x00H\x00\x00\x00\x15\x00\x12\x00\x05\x00\x00\x00\x15\x00\x11\x00\x1C\x00\x00\x00\x15\x00\x10\x00\x19\x00\x00\x00\x15\x00\x0F\x00\v\x00\x00\x00\x15\x00\x0E\x00\xE4\x00\x00\x00\x15\x00\r\x00<\x00\x00\x00\x15\x00\f\x00\xE7\x00\x00\x00\x15\x00\v\x00\r\x00\x00\x00\x15\x00\x00\v\t\x00\x00\x00 \x00\x00\x00\x10\x00\x00\x00\x15\x00\x00\t\x00\x00\x00\x00 \x00\x00\x00 \x00\x00\x00T\x00\x00\x00\x04\x00\x00\x00\x15\x00\x06\x00\x04\x00\x00\x00 \x00\x00\x00(\x00\x00\x00T\x00\x00\x00\x0F\x00\x00\x00\x15\x00\x00\x03\x02\x00\x00\x00 \x00\x00\x008\x00\x00\x00\x15\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\xFF\x7F\x06\x00\x00\x00\x00\x00\x00\x00")

    s = S(len(f)//8 , addressof(f))

    fn = CDLL("libc.so.0").prctl

    fn(38, 1, 0, 0, 0) 
    fn(22, 2, pointer(s)) 


    flag = mmap(ff.fileno(), FLAG_LEN, flags=0x2).read()
    __flag__ = flag
    ff.close()

    return flag
