class TfxdBox extends AbstractFullBox {
    public long fragmentAbsoluteTime;
    public long fragmentAbsoluteDuration;

    public TfxdBox() {
        super("uuid");
    }

    @Override
    public byte[] getUserType() {
        return new byte[]{(byte) 0x6d, (byte) 0x1d, (byte) 0x9b, (byte) 0x05, (byte) 0x42, (byte) 0xd5, (byte) 0x44,
                (byte) 0xe6, (byte) 0x80, (byte) 0xe2, 0x14, (byte) 0x1d, (byte) 0xaf, (byte) 0xf7, (byte) 0x57, (byte) 0xb2};
    }

    @Override
    protected long getContentSize() {
        return getVersion() == 0x01 ? 20 : 12;
    }

    @Override
    public void _parseDetails(ByteBuffer content) {
        parseVersionAndFlags(content);

        if (getVersion() == 0x01) {
            fragmentAbsoluteTime = IsoTypeReader.readUInt64(content);
            fragmentAbsoluteDuration = IsoTypeReader.readUInt64(content);
        } else {
            fragmentAbsoluteTime = IsoTypeReader.readUInt32(content);
            fragmentAbsoluteDuration = IsoTypeReader.readUInt32(content);
        }
    }

    @Override
    protected void getContent(ByteBuffer byteBuffer) {<FILL_FUNCTION_BODY>}

    public long getFragmentAbsoluteTime() {
        return fragmentAbsoluteTime;
    }

    public long getFragmentAbsoluteDuration() {
        return fragmentAbsoluteDuration;
    }
}

        writeVersionAndFlags(byteBuffer);
        if (getVersion() == 0x01) {
            IsoTypeWriter.writeUInt64(byteBuffer, fragmentAbsoluteTime);
            IsoTypeWriter.writeUInt64(byteBuffer, fragmentAbsoluteDuration);
        } else {
            IsoTypeWriter.writeUInt32(byteBuffer, fragmentAbsoluteTime);
            IsoTypeWriter.writeUInt32(byteBuffer, fragmentAbsoluteDuration);
        }
    
<methods>public int getFlags() ,public int getVersion() ,public void setFlags(int) ,public void setVersion(int) <variables>protected int flags,protected int version