text:
// automatically generated by the FlatBuffers compiler, do not modify
/* tslint:disable:class-name */

import { flatbuffers } from 'flatbuffers';
/**
 * @enum {number}
 */
export namespace org.apache.arrow.flatbuf {
    export enum MetadataVersion {
        /**
         * 0.1.0
         */
        V1 = 0,

        /**
         * 0.2.0
         */
        V2 = 1,

        /**
         * 0.3.0 -> 0.7.1
         */
        V3 = 2,

        /**
         * >= 0.8.0
         */
        V4 = 3
    }
}

/**
 * @enum {number}
 */
export namespace org.apache.arrow.flatbuf {
    export enum UnionMode {
        Sparse = 0,
        Dense = 1
    }
}

/**
 * @enum {number}
 */
export namespace org.apache.arrow.flatbuf {
    export enum Precision {
        HALF = 0,
        SINGLE = 1,
        DOUBLE = 2
    }
}

/**
 * @enum {number}
 */
export namespace org.apache.arrow.flatbuf {
    export enum DateUnit {
        DAY = 0,
        MILLISECOND = 1
    }
}

/**
 * @enum {number}
 */
export namespace org.apache.arrow.flatbuf {
    export enum TimeUnit {
        SECOND = 0,
        MILLISECOND = 1,
        MICROSECOND = 2,
        NANOSECOND = 3
    }
}

/**
 * @enum {number}
 */
export namespace org.apache.arrow.flatbuf {
    export enum IntervalUnit {
        YEAR_MONTH = 0,
        DAY_TIME = 1
    }
}

/**
 * ----------------------------------------------------------------------
 * Top-level Type value, enabling extensible type-specific metadata. We can
 * add new logical types to Type without breaking backwards compatibility
 *
 * @enum {number}
 */
export namespace org.apache.arrow.flatbuf {
    export enum Type {
        NONE = 0,
        Null = 1,
        Int = 2,
        FloatingPoint = 3,
        Binary = 4,
        Utf8 = 5,
        Bool = 6,
        Decimal = 7,
        Date = 8,
        Time = 9,
        Timestamp = 10,
        Interval = 11,
        List = 12,
        Struct_ = 13,
        Union = 14,
        FixedSizeBinary = 15,
        FixedSizeList = 16,
        Map = 17,
        Duration = 18
    }
}

/**
 * ----------------------------------------------------------------------
 * Endianness of the platform producing the data
 *
 * @enum {number}
 */
export namespace org.apache.arrow.flatbuf {
    export enum Endianness {
        Little = 0,
        Big = 1
    }
}

/**
 * These are stored in the flatbuffer in the Type union below
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Null {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Null
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Null {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Null= obj
         * @returns Null
         */
        static getRootAsNull(bb: flatbuffers.ByteBuffer, obj?: Null): Null {
            return (obj || new Null).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Null= obj
         * @returns Null
         */
        static getSizePrefixedRootAsNull(bb: flatbuffers.ByteBuffer, obj?: Null): Null {
            return (obj || new Null).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startNull(builder: flatbuffers.Builder) {
            builder.startObject(0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endNull(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createNull(builder: flatbuffers.Builder): flatbuffers.Offset {
            Null.startNull(builder);
            return Null.endNull(builder);
        }
    }
}
/**
 * A Struct_ in the flatbuffer metadata is the same as an Arrow Struct
 * (according to the physical memory layout). We used Struct_ here as
 * Struct is a reserved word in Flatbuffers
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Struct_ {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Struct_
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Struct_ {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Struct_= obj
         * @returns Struct_
         */
        static getRootAsStruct_(bb: flatbuffers.ByteBuffer, obj?: Struct_): Struct_ {
            return (obj || new Struct_).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Struct_= obj
         * @returns Struct_
         */
        static getSizePrefixedRootAsStruct_(bb: flatbuffers.ByteBuffer, obj?: Struct_): Struct_ {
            return (obj || new Struct_).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startStruct_(builder: flatbuffers.Builder) {
            builder.startObject(0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {
            Struct_.startStruct_(builder);
            return Struct_.endStruct_(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class List {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns List
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): List {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param List= obj
         * @returns List
         */
        static getRootAsList(bb: flatbuffers.ByteBuffer, obj?: List): List {
            return (obj || new List).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param List= obj
         * @returns List
         */
        static getSizePrefixedRootAsList(bb: flatbuffers.ByteBuffer, obj?: List): List {
            return (obj || new List).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startList(builder: flatbuffers.Builder) {
            builder.startObject(0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endList(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createList(builder: flatbuffers.Builder): flatbuffers.Offset {
            List.startList(builder);
            return List.endList(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class FixedSizeList {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns FixedSizeList
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeList {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param FixedSizeList= obj
         * @returns FixedSizeList
         */
        static getRootAsFixedSizeList(bb: flatbuffers.ByteBuffer, obj?: FixedSizeList): FixedSizeList {
            return (obj || new FixedSizeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param FixedSizeList= obj
         * @returns FixedSizeList
         */
        static getSizePrefixedRootAsFixedSizeList(bb: flatbuffers.ByteBuffer, obj?: FixedSizeList): FixedSizeList {
            return (obj || new FixedSizeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * Number of list items per value
         *
         * @returns number
         */
        listSize(): number {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startFixedSizeList(builder: flatbuffers.Builder) {
            builder.startObject(1);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number listSize
         */
        static addListSize(builder: flatbuffers.Builder, listSize: number) {
            builder.addFieldInt32(0, listSize, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endFixedSizeList(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createFixedSizeList(builder: flatbuffers.Builder, listSize: number): flatbuffers.Offset {
            FixedSizeList.startFixedSizeList(builder);
            FixedSizeList.addListSize(builder, listSize);
            return FixedSizeList.endFixedSizeList(builder);
        }
    }
}
/**
 * A Map is a logical nested type that is represented as
 *
 * List<entry: Struct<key: K, value: V>>
 *
 * In this layout, the keys and values are each respectively contiguous. We do
 * not constrain the key and value types, so the application is responsible
 * for ensuring that the keys are hashable and unique. Whether the keys are sorted
 * may be set in the metadata for this field
 *
 * In a Field with Map type, the Field has a child Struct field, which then
 * has two children: key type and the second the value type. The names of the
 * child fields may be respectively "entry", "key", and "value", but this is
 * not enforced
 *
 * Map
 *   - child[0] entry: Struct
 *     - child[0] key: K
 *     - child[1] value: V
 *
 * Neither the "entry" field nor the "key" field may be nullable.
 *
 * The metadata is structured so that Arrow systems without special handling
 * for Map can make Map an alias for List. The "layout" attribute for the Map
 * field must have the same contents as a List.
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Map {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Map
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Map {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Map= obj
         * @returns Map
         */
        static getRootAsMap(bb: flatbuffers.ByteBuffer, obj?: Map): Map {
            return (obj || new Map).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Map= obj
         * @returns Map
         */
        static getSizePrefixedRootAsMap(bb: flatbuffers.ByteBuffer, obj?: Map): Map {
            return (obj || new Map).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * Set to true if the keys within each value are sorted
         *
         * @returns boolean
         */
        keysSorted(): boolean {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startMap(builder: flatbuffers.Builder) {
            builder.startObject(1);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param boolean keysSorted
         */
        static addKeysSorted(builder: flatbuffers.Builder, keysSorted: boolean) {
            builder.addFieldInt8(0, +keysSorted, +false);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endMap(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createMap(builder: flatbuffers.Builder, keysSorted: boolean): flatbuffers.Offset {
            Map.startMap(builder);
            Map.addKeysSorted(builder, keysSorted);
            return Map.endMap(builder);
        }
    }
}
/**
 * A union is a complex type with children in Field
 * By default ids in the type vector refer to the offsets in the children
 * optionally typeIds provides an indirection between the child offset and the type id
 * for each child typeIds[offset] is the id used in the type vector
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Union {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Union
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Union {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Union= obj
         * @returns Union
         */
        static getRootAsUnion(bb: flatbuffers.ByteBuffer, obj?: Union): Union {
            return (obj || new Union).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Union= obj
         * @returns Union
         */
        static getSizePrefixedRootAsUnion(bb: flatbuffers.ByteBuffer, obj?: Union): Union {
            return (obj || new Union).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @returns org.apache.arrow.flatbuf.UnionMode
         */
        mode(): org.apache.arrow.flatbuf.UnionMode {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? /**  */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.UnionMode.Sparse;
        }

        /**
         * @param number index
         * @returns number
         */
        typeIds(index: number): number | null {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? this.bb!.readInt32(this.bb!.__vector(this.bb_pos + offset) + index * 4) : 0;
        }

        /**
         * @returns number
         */
        typeIdsLength(): number {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
        }

        /**
         * @returns Int32Array
         */
        typeIdsArray(): Int32Array | null {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? new Int32Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startUnion(builder: flatbuffers.Builder) {
            builder.startObject(2);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param org.apache.arrow.flatbuf.UnionMode mode
         */
        static addMode(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode) {
            builder.addFieldInt16(0, mode, org.apache.arrow.flatbuf.UnionMode.Sparse);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset typeIdsOffset
         */
        static addTypeIds(builder: flatbuffers.Builder, typeIdsOffset: flatbuffers.Offset) {
            builder.addFieldOffset(1, typeIdsOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param Array.<number> data
         * @returns flatbuffers.Offset
         */
        static createTypeIdsVector(builder: flatbuffers.Builder, data: number[] | Int32Array): flatbuffers.Offset {
            builder.startVector(4, data.length, 4);
            for (let i = data.length - 1; i >= 0; i--) {
                builder.addInt32(data[i]);
            }
            return builder.endVector();
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number numElems
         */
        static startTypeIdsVector(builder: flatbuffers.Builder, numElems: number) {
            builder.startVector(4, numElems, 4);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endUnion(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createUnion(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode, typeIdsOffset: flatbuffers.Offset): flatbuffers.Offset {
            Union.startUnion(builder);
            Union.addMode(builder, mode);
            Union.addTypeIds(builder, typeIdsOffset);
            return Union.endUnion(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Int {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Int
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Int {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Int= obj
         * @returns Int
         */
        static getRootAsInt(bb: flatbuffers.ByteBuffer, obj?: Int): Int {
            return (obj || new Int).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Int= obj
         * @returns Int
         */
        static getSizePrefixedRootAsInt(bb: flatbuffers.ByteBuffer, obj?: Int): Int {
            return (obj || new Int).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @returns number
         */
        bitWidth(): number {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;
        }

        /**
         * @returns boolean
         */
        isSigned(): boolean {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startInt(builder: flatbuffers.Builder) {
            builder.startObject(2);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number bitWidth
         */
        static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {
            builder.addFieldInt32(0, bitWidth, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param boolean isSigned
         */
        static addIsSigned(builder: flatbuffers.Builder, isSigned: boolean) {
            builder.addFieldInt8(1, +isSigned, +false);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endInt(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createInt(builder: flatbuffers.Builder, bitWidth: number, isSigned: boolean): flatbuffers.Offset {
            Int.startInt(builder);
            Int.addBitWidth(builder, bitWidth);
            Int.addIsSigned(builder, isSigned);
            return Int.endInt(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class FloatingPoint {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns FloatingPoint
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): FloatingPoint {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param FloatingPoint= obj
         * @returns FloatingPoint
         */
        static getRootAsFloatingPoint(bb: flatbuffers.ByteBuffer, obj?: FloatingPoint): FloatingPoint {
            return (obj || new FloatingPoint).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param FloatingPoint= obj
         * @returns FloatingPoint
         */
        static getSizePrefixedRootAsFloatingPoint(bb: flatbuffers.ByteBuffer, obj?: FloatingPoint): FloatingPoint {
            return (obj || new FloatingPoint).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @returns org.apache.arrow.flatbuf.Precision
         */
        precision(): org.apache.arrow.flatbuf.Precision {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? /**  */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Precision.HALF;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startFloatingPoint(builder: flatbuffers.Builder) {
            builder.startObject(1);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param org.apache.arrow.flatbuf.Precision precision
         */
        static addPrecision(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision) {
            builder.addFieldInt16(0, precision, org.apache.arrow.flatbuf.Precision.HALF);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endFloatingPoint(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createFloatingPoint(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision): flatbuffers.Offset {
            FloatingPoint.startFloatingPoint(builder);
            FloatingPoint.addPrecision(builder, precision);
            return FloatingPoint.endFloatingPoint(builder);
        }
    }
}
/**
 * Unicode with UTF-8 encoding
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Utf8 {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Utf8
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Utf8 {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Utf8= obj
         * @returns Utf8
         */
        static getRootAsUtf8(bb: flatbuffers.ByteBuffer, obj?: Utf8): Utf8 {
            return (obj || new Utf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Utf8= obj
         * @returns Utf8
         */
        static getSizePrefixedRootAsUtf8(bb: flatbuffers.ByteBuffer, obj?: Utf8): Utf8 {
            return (obj || new Utf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startUtf8(builder: flatbuffers.Builder) {
            builder.startObject(0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {
            Utf8.startUtf8(builder);
            return Utf8.endUtf8(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Binary {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Binary
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Binary {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Binary= obj
         * @returns Binary
         */
        static getRootAsBinary(bb: flatbuffers.ByteBuffer, obj?: Binary): Binary {
            return (obj || new Binary).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Binary= obj
         * @returns Binary
         */
        static getSizePrefixedRootAsBinary(bb: flatbuffers.ByteBuffer, obj?: Binary): Binary {
            return (obj || new Binary).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startBinary(builder: flatbuffers.Builder) {
            builder.startObject(0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endBinary(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createBinary(builder: flatbuffers.Builder): flatbuffers.Offset {
            Binary.startBinary(builder);
            return Binary.endBinary(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class FixedSizeBinary {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns FixedSizeBinary
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeBinary {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param FixedSizeBinary= obj
         * @returns FixedSizeBinary
         */
        static getRootAsFixedSizeBinary(bb: flatbuffers.ByteBuffer, obj?: FixedSizeBinary): FixedSizeBinary {
            return (obj || new FixedSizeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param FixedSizeBinary= obj
         * @returns FixedSizeBinary
         */
        static getSizePrefixedRootAsFixedSizeBinary(bb: flatbuffers.ByteBuffer, obj?: FixedSizeBinary): FixedSizeBinary {
            return (obj || new FixedSizeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * Number of bytes per value
         *
         * @returns number
         */
        byteWidth(): number {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startFixedSizeBinary(builder: flatbuffers.Builder) {
            builder.startObject(1);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number byteWidth
         */
        static addByteWidth(builder: flatbuffers.Builder, byteWidth: number) {
            builder.addFieldInt32(0, byteWidth, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endFixedSizeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createFixedSizeBinary(builder: flatbuffers.Builder, byteWidth: number): flatbuffers.Offset {
            FixedSizeBinary.startFixedSizeBinary(builder);
            FixedSizeBinary.addByteWidth(builder, byteWidth);
            return FixedSizeBinary.endFixedSizeBinary(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Bool {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Bool
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Bool {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Bool= obj
         * @returns Bool
         */
        static getRootAsBool(bb: flatbuffers.ByteBuffer, obj?: Bool): Bool {
            return (obj || new Bool).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Bool= obj
         * @returns Bool
         */
        static getSizePrefixedRootAsBool(bb: flatbuffers.ByteBuffer, obj?: Bool): Bool {
            return (obj || new Bool).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startBool(builder: flatbuffers.Builder) {
            builder.startObject(0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endBool(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createBool(builder: flatbuffers.Builder): flatbuffers.Offset {
            Bool.startBool(builder);
            return Bool.endBool(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Decimal {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Decimal
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Decimal {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Decimal= obj
         * @returns Decimal
         */
        static getRootAsDecimal(bb: flatbuffers.ByteBuffer, obj?: Decimal): Decimal {
            return (obj || new Decimal).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Decimal= obj
         * @returns Decimal
         */
        static getSizePrefixedRootAsDecimal(bb: flatbuffers.ByteBuffer, obj?: Decimal): Decimal {
            return (obj || new Decimal).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * Total number of decimal digits
         *
         * @returns number
         */
        precision(): number {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;
        }

        /**
         * Number of digits after the decimal point "."
         *
         * @returns number
         */
        scale(): number {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startDecimal(builder: flatbuffers.Builder) {
            builder.startObject(2);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number precision
         */
        static addPrecision(builder: flatbuffers.Builder, precision: number) {
            builder.addFieldInt32(0, precision, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number scale
         */
        static addScale(builder: flatbuffers.Builder, scale: number) {
            builder.addFieldInt32(1, scale, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endDecimal(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createDecimal(builder: flatbuffers.Builder, precision: number, scale: number): flatbuffers.Offset {
            Decimal.startDecimal(builder);
            Decimal.addPrecision(builder, precision);
            Decimal.addScale(builder, scale);
            return Decimal.endDecimal(builder);
        }
    }
}
/**
 * Date is either a 32-bit or 64-bit type representing elapsed time since UNIX
 * epoch (1970-01-01), stored in either of two units:
 *
 * * Milliseconds (64 bits) indicating UNIX time elapsed since the epoch (no
 *   leap seconds), where the values are evenly divisible by 86400000
 * * Days (32 bits) since the UNIX epoch
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Date {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Date
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Date {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Date= obj
         * @returns Date
         */
        static getRootAsDate(bb: flatbuffers.ByteBuffer, obj?: Date): Date {
            return (obj || new Date).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Date= obj
         * @returns Date
         */
        static getSizePrefixedRootAsDate(bb: flatbuffers.ByteBuffer, obj?: Date): Date {
            return (obj || new Date).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @returns org.apache.arrow.flatbuf.DateUnit
         */
        unit(): org.apache.arrow.flatbuf.DateUnit {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? /**  */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.DateUnit.MILLISECOND;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startDate(builder: flatbuffers.Builder) {
            builder.startObject(1);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param org.apache.arrow.flatbuf.DateUnit unit
         */
        static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit) {
            builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.DateUnit.MILLISECOND);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endDate(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createDate(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit): flatbuffers.Offset {
            Date.startDate(builder);
            Date.addUnit(builder, unit);
            return Date.endDate(builder);
        }
    }
}
/**
 * Time type. The physical storage type depends on the unit
 * - SECOND and MILLISECOND: 32 bits
 * - MICROSECOND and NANOSECOND: 64 bits
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Time {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Time
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Time {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Time= obj
         * @returns Time
         */
        static getRootAsTime(bb: flatbuffers.ByteBuffer, obj?: Time): Time {
            return (obj || new Time).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Time= obj
         * @returns Time
         */
        static getSizePrefixedRootAsTime(bb: flatbuffers.ByteBuffer, obj?: Time): Time {
            return (obj || new Time).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @returns org.apache.arrow.flatbuf.TimeUnit
         */
        unit(): org.apache.arrow.flatbuf.TimeUnit {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? /**  */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;
        }

        /**
         * @returns number
         */
        bitWidth(): number {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? this.bb!.readInt32(this.bb_pos + offset) : 32;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startTime(builder: flatbuffers.Builder) {
            builder.startObject(2);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param org.apache.arrow.flatbuf.TimeUnit unit
         */
        static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {
            builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number bitWidth
         */
        static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {
            builder.addFieldInt32(1, bitWidth, 32);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endTime(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createTime(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, bitWidth: number): flatbuffers.Offset {
            Time.startTime(builder);
            Time.addUnit(builder, unit);
            Time.addBitWidth(builder, bitWidth);
            return Time.endTime(builder);
        }
    }
}
/**
 * Time elapsed from the Unix epoch, 00:00:00.000 on 1 January 1970, excluding
 * leap seconds, as a 64-bit integer. Note that UNIX time does not include
 * leap seconds.
 *
 * The Timestamp metadata supports both "time zone naive" and "time zone
 * aware" timestamps. Read about the timezone attribute for more detail
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Timestamp {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Timestamp
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Timestamp {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Timestamp= obj
         * @returns Timestamp
         */
        static getRootAsTimestamp(bb: flatbuffers.ByteBuffer, obj?: Timestamp): Timestamp {
            return (obj || new Timestamp).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Timestamp= obj
         * @returns Timestamp
         */
        static getSizePrefixedRootAsTimestamp(bb: flatbuffers.ByteBuffer, obj?: Timestamp): Timestamp {
            return (obj || new Timestamp).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @returns org.apache.arrow.flatbuf.TimeUnit
         */
        unit(): org.apache.arrow.flatbuf.TimeUnit {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? /**  */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.SECOND;
        }

        /**
         * The time zone is a string indicating the name of a time zone, one of:
         *
         * * As used in the Olson time zone database (the "tz database" or
         *   "tzdata"), such as "America/New_York"
         * * An absolute time zone offset of the form +XX:XX or -XX:XX, such as +07:30
         *
         * Whether a timezone string is present indicates different semantics about
         * the data:
         *
         * * If the time zone is null or equal to an empty string, the data is "time
         *   zone naive" and shall be displayed *as is* to the user, not localized
         *   to the locale of the user. This data can be though of as UTC but
         *   without having "UTC" as the time zone, it is not considered to be
         *   localized to any time zone
         *
         * * If the time zone is set to a valid value, values can be displayed as
         *   "localized" to that time zone, even though the underlying 64-bit
         *   integers are identical to the same data stored in UTC. Converting
         *   between time zones is a metadata-only operation and does not change the
         *   underlying values
         *
         * @param flatbuffers.Encoding= optionalEncoding
         * @returns string|Uint8Array|null
         */
        timezone(): string | null;
        timezone(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
        timezone(optionalEncoding?: any): string | Uint8Array | null {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startTimestamp(builder: flatbuffers.Builder) {
            builder.startObject(2);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param org.apache.arrow.flatbuf.TimeUnit unit
         */
        static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {
            builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.SECOND);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset timezoneOffset
         */
        static addTimezone(builder: flatbuffers.Builder, timezoneOffset: flatbuffers.Offset) {
            builder.addFieldOffset(1, timezoneOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endTimestamp(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createTimestamp(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, timezoneOffset: flatbuffers.Offset): flatbuffers.Offset {
            Timestamp.startTimestamp(builder);
            Timestamp.addUnit(builder, unit);
            Timestamp.addTimezone(builder, timezoneOffset);
            return Timestamp.endTimestamp(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Interval {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Interval
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Interval {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Interval= obj
         * @returns Interval
         */
        static getRootAsInterval(bb: flatbuffers.ByteBuffer, obj?: Interval): Interval {
            return (obj || new Interval).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Interval= obj
         * @returns Interval
         */
        static getSizePrefixedRootAsInterval(bb: flatbuffers.ByteBuffer, obj?: Interval): Interval {
            return (obj || new Interval).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @returns org.apache.arrow.flatbuf.IntervalUnit
         */
        unit(): org.apache.arrow.flatbuf.IntervalUnit {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? /**  */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startInterval(builder: flatbuffers.Builder) {
            builder.startObject(1);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param org.apache.arrow.flatbuf.IntervalUnit unit
         */
        static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit) {
            builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endInterval(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createInterval(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit): flatbuffers.Offset {
            Interval.startInterval(builder);
            Interval.addUnit(builder, unit);
            return Interval.endInterval(builder);
        }
    }
}
/**
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Duration {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Duration
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Duration {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Duration= obj
         * @returns Duration
         */
        static getRootAsDuration(bb: flatbuffers.ByteBuffer, obj?: Duration): Duration {
            return (obj || new Duration).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Duration= obj
         * @returns Duration
         */
        static getSizePrefixedRootAsDuration(bb: flatbuffers.ByteBuffer, obj?: Duration): Duration {
            return (obj || new Duration).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @returns org.apache.arrow.flatbuf.TimeUnit
         */
        unit(): org.apache.arrow.flatbuf.TimeUnit {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? /**  */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startDuration(builder: flatbuffers.Builder) {
            builder.startObject(1);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param org.apache.arrow.flatbuf.TimeUnit unit
         */
        static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {
            builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endDuration(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createDuration(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit): flatbuffers.Offset {
            Duration.startDuration(builder);
            Duration.addUnit(builder, unit);
            return Duration.endDuration(builder);
        }
    }
}
/**
 * ----------------------------------------------------------------------
 * user defined key value pairs to add custom metadata to arrow
 * key namespacing is the responsibility of the user
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class KeyValue {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns KeyValue
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): KeyValue {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param KeyValue= obj
         * @returns KeyValue
         */
        static getRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue {
            return (obj || new KeyValue).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param KeyValue= obj
         * @returns KeyValue
         */
        static getSizePrefixedRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue {
            return (obj || new KeyValue).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.Encoding= optionalEncoding
         * @returns string|Uint8Array|null
         */
        key(): string | null;
        key(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
        key(optionalEncoding?: any): string | Uint8Array | null {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;
        }

        /**
         * @param flatbuffers.Encoding= optionalEncoding
         * @returns string|Uint8Array|null
         */
        value(): string | null;
        value(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
        value(optionalEncoding?: any): string | Uint8Array | null {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startKeyValue(builder: flatbuffers.Builder) {
            builder.startObject(2);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset keyOffset
         */
        static addKey(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset) {
            builder.addFieldOffset(0, keyOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset valueOffset
         */
        static addValue(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset) {
            builder.addFieldOffset(1, valueOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endKeyValue(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createKeyValue(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset, valueOffset: flatbuffers.Offset): flatbuffers.Offset {
            KeyValue.startKeyValue(builder);
            KeyValue.addKey(builder, keyOffset);
            KeyValue.addValue(builder, valueOffset);
            return KeyValue.endKeyValue(builder);
        }
    }
}
/**
 * ----------------------------------------------------------------------
 * Dictionary encoding metadata
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class DictionaryEncoding {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns DictionaryEncoding
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): DictionaryEncoding {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param DictionaryEncoding= obj
         * @returns DictionaryEncoding
         */
        static getRootAsDictionaryEncoding(bb: flatbuffers.ByteBuffer, obj?: DictionaryEncoding): DictionaryEncoding {
            return (obj || new DictionaryEncoding).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param DictionaryEncoding= obj
         * @returns DictionaryEncoding
         */
        static getSizePrefixedRootAsDictionaryEncoding(bb: flatbuffers.ByteBuffer, obj?: DictionaryEncoding): DictionaryEncoding {
            return (obj || new DictionaryEncoding).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * The known dictionary id in the application where this data is used. In
         * the file or streaming formats, the dictionary ids are found in the
         * DictionaryBatch messages
         *
         * @returns flatbuffers.Long
         */
        id(): flatbuffers.Long {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);
        }

        /**
         * The dictionary indices are constrained to be positive integers. If this
         * field is null, the indices must be signed int32
         *
         * @param org.apache.arrow.flatbuf.Int= obj
         * @returns org.apache.arrow.flatbuf.Int|null
         */
        indexType(obj?: org.apache.arrow.flatbuf.Int): org.apache.arrow.flatbuf.Int | null {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? (obj || new org.apache.arrow.flatbuf.Int).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;
        }

        /**
         * By default, dictionaries are not ordered, or the order does not have
         * semantic meaning. In some statistical, applications, dictionary-encoding
         * is used to represent ordered categorical data, and we provide a way to
         * preserve that metadata here
         *
         * @returns boolean
         */
        isOrdered(): boolean {
            let offset = this.bb!.__offset(this.bb_pos, 8);
            return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startDictionaryEncoding(builder: flatbuffers.Builder) {
            builder.startObject(3);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Long id
         */
        static addId(builder: flatbuffers.Builder, id: flatbuffers.Long) {
            builder.addFieldInt64(0, id, builder.createLong(0, 0));
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset indexTypeOffset
         */
        static addIndexType(builder: flatbuffers.Builder, indexTypeOffset: flatbuffers.Offset) {
            builder.addFieldOffset(1, indexTypeOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param boolean isOrdered
         */
        static addIsOrdered(builder: flatbuffers.Builder, isOrdered: boolean) {
            builder.addFieldInt8(2, +isOrdered, +false);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endDictionaryEncoding(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createDictionaryEncoding(builder: flatbuffers.Builder, id: flatbuffers.Long, indexTypeOffset: flatbuffers.Offset, isOrdered: boolean): flatbuffers.Offset {
            DictionaryEncoding.startDictionaryEncoding(builder);
            DictionaryEncoding.addId(builder, id);
            DictionaryEncoding.addIndexType(builder, indexTypeOffset);
            DictionaryEncoding.addIsOrdered(builder, isOrdered);
            return DictionaryEncoding.endDictionaryEncoding(builder);
        }
    }
}
/**
 * ----------------------------------------------------------------------
 * A field represents a named column in a record / row batch or child of a
 * nested type.
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Field {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Field
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Field {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Field= obj
         * @returns Field
         */
        static getRootAsField(bb: flatbuffers.ByteBuffer, obj?: Field): Field {
            return (obj || new Field).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Field= obj
         * @returns Field
         */
        static getSizePrefixedRootAsField(bb: flatbuffers.ByteBuffer, obj?: Field): Field {
            return (obj || new Field).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * Name is not required, in i.e. a List
         *
         * @param flatbuffers.Encoding= optionalEncoding
         * @returns string|Uint8Array|null
         */
        name(): string | null;
        name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
        name(optionalEncoding?: any): string | Uint8Array | null {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;
        }

        /**
         * Whether or not this field can contain nulls. Should be true in general.
         *
         * @returns boolean
         */
        nullable(): boolean {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;
        }

        /**
         * @returns org.apache.arrow.flatbuf.Type
         */
        typeType(): org.apache.arrow.flatbuf.Type {
            let offset = this.bb!.__offset(this.bb_pos, 8);
            return offset ? /**  */ (this.bb!.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Type.NONE;
        }

        /**
         * This is the type of the decoded value if the field is dictionary encoded.
         *
         * @param flatbuffers.Table obj
         * @returns ?flatbuffers.Table
         */
        type<T extends flatbuffers.Table>(obj: T): T | null {
            let offset = this.bb!.__offset(this.bb_pos, 10);
            return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;
        }

        /**
         * Present only if the field is dictionary encoded.
         *
         * @param org.apache.arrow.flatbuf.DictionaryEncoding= obj
         * @returns org.apache.arrow.flatbuf.DictionaryEncoding|null
         */
        dictionary(obj?: org.apache.arrow.flatbuf.DictionaryEncoding): org.apache.arrow.flatbuf.DictionaryEncoding | null {
            let offset = this.bb!.__offset(this.bb_pos, 12);
            return offset ? (obj || new org.apache.arrow.flatbuf.DictionaryEncoding).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;
        }

        /**
         * children apply only to nested data types like Struct, List and Union. For
         * primitive types children will have length 0.
         *
         * @param number index
         * @param org.apache.arrow.flatbuf.Field= obj
         * @returns org.apache.arrow.flatbuf.Field
         */
        children(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {
            let offset = this.bb!.__offset(this.bb_pos, 14);
            return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;
        }

        /**
         * @returns number
         */
        childrenLength(): number {
            let offset = this.bb!.__offset(this.bb_pos, 14);
            return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
        }

        /**
         * User-defined metadata
         *
         * @param number index
         * @param org.apache.arrow.flatbuf.KeyValue= obj
         * @returns org.apache.arrow.flatbuf.KeyValue
         */
        customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {
            let offset = this.bb!.__offset(this.bb_pos, 16);
            return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;
        }

        /**
         * @returns number
         */
        customMetadataLength(): number {
            let offset = this.bb!.__offset(this.bb_pos, 16);
            return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startField(builder: flatbuffers.Builder) {
            builder.startObject(7);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset nameOffset
         */
        static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset) {
            builder.addFieldOffset(0, nameOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param boolean nullable
         */
        static addNullable(builder: flatbuffers.Builder, nullable: boolean) {
            builder.addFieldInt8(1, +nullable, +false);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param org.apache.arrow.flatbuf.Type typeType
         */
        static addTypeType(builder: flatbuffers.Builder, typeType: org.apache.arrow.flatbuf.Type) {
            builder.addFieldInt8(2, typeType, org.apache.arrow.flatbuf.Type.NONE);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset typeOffset
         */
        static addType(builder: flatbuffers.Builder, typeOffset: flatbuffers.Offset) {
            builder.addFieldOffset(3, typeOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset dictionaryOffset
         */
        static addDictionary(builder: flatbuffers.Builder, dictionaryOffset: flatbuffers.Offset) {
            builder.addFieldOffset(4, dictionaryOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset childrenOffset
         */
        static addChildren(builder: flatbuffers.Builder, childrenOffset: flatbuffers.Offset) {
            builder.addFieldOffset(5, childrenOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param Array.<flatbuffers.Offset> data
         * @returns flatbuffers.Offset
         */
        static createChildrenVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {
            builder.startVector(4, data.length, 4);
            for (let i = data.length - 1; i >= 0; i--) {
                builder.addOffset(data[i]);
            }
            return builder.endVector();
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number numElems
         */
        static startChildrenVector(builder: flatbuffers.Builder, numElems: number) {
            builder.startVector(4, numElems, 4);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset customMetadataOffset
         */
        static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {
            builder.addFieldOffset(6, customMetadataOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param Array.<flatbuffers.Offset> data
         * @returns flatbuffers.Offset
         */
        static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {
            builder.startVector(4, data.length, 4);
            for (let i = data.length - 1; i >= 0; i--) {
                builder.addOffset(data[i]);
            }
            return builder.endVector();
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number numElems
         */
        static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {
            builder.startVector(4, numElems, 4);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endField(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        static createField(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, nullable: boolean, typeType: org.apache.arrow.flatbuf.Type, typeOffset: flatbuffers.Offset, dictionaryOffset: flatbuffers.Offset, childrenOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {
            Field.startField(builder);
            Field.addName(builder, nameOffset);
            Field.addNullable(builder, nullable);
            Field.addTypeType(builder, typeType);
            Field.addType(builder, typeOffset);
            Field.addDictionary(builder, dictionaryOffset);
            Field.addChildren(builder, childrenOffset);
            Field.addCustomMetadata(builder, customMetadataOffset);
            return Field.endField(builder);
        }
    }
}
/**
 * ----------------------------------------------------------------------
 * A Buffer represents a single contiguous memory segment
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Buffer {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Buffer
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Buffer {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * The relative offset into the shared memory page where the bytes for this
         * buffer starts
         *
         * @returns flatbuffers.Long
         */
        offset(): flatbuffers.Long {
            return this.bb!.readInt64(this.bb_pos);
        }

        /**
         * The absolute length (in bytes) of the memory buffer. The memory is found
         * from offset (inclusive) to offset + length (non-inclusive).
         *
         * @returns flatbuffers.Long
         */
        length(): flatbuffers.Long {
            return this.bb!.readInt64(this.bb_pos + 8);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Long offset
         * @param flatbuffers.Long length
         * @returns flatbuffers.Offset
         */
        static createBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Long, length: flatbuffers.Long): flatbuffers.Offset {
            builder.prep(8, 16);
            builder.writeInt64(length);
            builder.writeInt64(offset);
            return builder.offset();
        }

    }
}
/**
 * ----------------------------------------------------------------------
 * A Schema describes the columns in a row batch
 *
 * @constructor
 */
export namespace org.apache.arrow.flatbuf {
    export class Schema {
        bb: flatbuffers.ByteBuffer | null = null;

        bb_pos: number = 0;
        /**
         * @param number i
         * @param flatbuffers.ByteBuffer bb
         * @returns Schema
         */
        __init(i: number, bb: flatbuffers.ByteBuffer): Schema {
            this.bb_pos = i;
            this.bb = bb;
            return this;
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Schema= obj
         * @returns Schema
         */
        static getRootAsSchema(bb: flatbuffers.ByteBuffer, obj?: Schema): Schema {
            return (obj || new Schema).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * @param flatbuffers.ByteBuffer bb
         * @param Schema= obj
         * @returns Schema
         */
        static getSizePrefixedRootAsSchema(bb: flatbuffers.ByteBuffer, obj?: Schema): Schema {
            return (obj || new Schema).__init(bb.readInt32(bb.position()) + bb.position(), bb);
        }

        /**
         * endianness of the buffer
         * it is Little Endian by default
         * if endianness doesn't match the underlying system then the vectors need to be converted
         *
         * @returns org.apache.arrow.flatbuf.Endianness
         */
        endianness(): org.apache.arrow.flatbuf.Endianness {
            let offset = this.bb!.__offset(this.bb_pos, 4);
            return offset ? /**  */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Endianness.Little;
        }

        /**
         * @param number index
         * @param org.apache.arrow.flatbuf.Field= obj
         * @returns org.apache.arrow.flatbuf.Field
         */
        fields(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;
        }

        /**
         * @returns number
         */
        fieldsLength(): number {
            let offset = this.bb!.__offset(this.bb_pos, 6);
            return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
        }

        /**
         * @param number index
         * @param org.apache.arrow.flatbuf.KeyValue= obj
         * @returns org.apache.arrow.flatbuf.KeyValue
         */
        customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {
            let offset = this.bb!.__offset(this.bb_pos, 8);
            return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;
        }

        /**
         * @returns number
         */
        customMetadataLength(): number {
            let offset = this.bb!.__offset(this.bb_pos, 8);
            return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
        }

        /**
         * @param flatbuffers.Builder builder
         */
        static startSchema(builder: flatbuffers.Builder) {
            builder.startObject(3);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param org.apache.arrow.flatbuf.Endianness endianness
         */
        static addEndianness(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness) {
            builder.addFieldInt16(0, endianness, org.apache.arrow.flatbuf.Endianness.Little);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset fieldsOffset
         */
        static addFields(builder: flatbuffers.Builder, fieldsOffset: flatbuffers.Offset) {
            builder.addFieldOffset(1, fieldsOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param Array.<flatbuffers.Offset> data
         * @returns flatbuffers.Offset
         */
        static createFieldsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {
            builder.startVector(4, data.length, 4);
            for (let i = data.length - 1; i >= 0; i--) {
                builder.addOffset(data[i]);
            }
            return builder.endVector();
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number numElems
         */
        static startFieldsVector(builder: flatbuffers.Builder, numElems: number) {
            builder.startVector(4, numElems, 4);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset customMetadataOffset
         */
        static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {
            builder.addFieldOffset(2, customMetadataOffset, 0);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param Array.<flatbuffers.Offset> data
         * @returns flatbuffers.Offset
         */
        static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {
            builder.startVector(4, data.length, 4);
            for (let i = data.length - 1; i >= 0; i--) {
                builder.addOffset(data[i]);
            }
            return builder.endVector();
        }

        /**
         * @param flatbuffers.Builder builder
         * @param number numElems
         */
        static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {
            builder.startVector(4, numElems, 4);
        }

        /**
         * @param flatbuffers.Builder builder
         * @returns flatbuffers.Offset
         */
        static endSchema(builder: flatbuffers.Builder): flatbuffers.Offset {
            let offset = builder.endObject();
            return offset;
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset offset
         */
        static finishSchemaBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {
            builder.finish(offset);
        }

        /**
         * @param flatbuffers.Builder builder
         * @param flatbuffers.Offset offset
         */
        static finishSizePrefixedSchemaBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {
            builder.finish(offset, undefined);
        }

        static createSchema(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness, fieldsOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {
            Schema.startSchema(builder);
            Schema.addEndianness(builder, endianness);
            Schema.addFields(builder, fieldsOffset);
            Schema.addCustomMetadata(builder, customMetadataOffset);
            return Schema.endSchema(builder);
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
Milwaukee Common Council moves toward mail-in voting for 2020
By: Henry Redman - April 21, 2020 12:30 pm
A poll worker sits outside of Washington High School wearing a protective mask. (Photo by Isiah Holmes)
Weeks after thousands of Milwaukee residents went to the polls to vote in the April 7 election during the COVID-19 pandemic, the city's newly sworn in common council passed a resolution to move the city to entirely mail-in voting.
The new program, called SafeVote and introduced by Ald. Marina Dimitrijevic, would send an application for an absentee ballot and a postage-paid return envelope to all of Milwaukee's registered voters for the 2020 general election. The measure, included in a package with a number of other coronavirus related matters, passed unanimously.
"I believe the time is now to offer Milwaukee's determined and undaunted citizens a safe and sensible option for them to exercise their right to vote this fall," Dimitrijevic said in a news release about the measure.
Under the resolution, the Milwaukee Elections Commission — which had not returned a request for comment by publication — has 30 days to come up with a plan for how to accomplish the change. The details of the plan will then go back to the council for approval.
On April 7, with just five of its usual 180 polling locations open, long lines of voters stretched for blocks and health officials have connected at least seven cases of COVID-19 to in-person voting.
But even with the long lines, a majority of the ballots cast in Milwaukee were absentee, according to data from the Wisconsin Elections Commission. The city reported a total of 95,168 ballots were cast while more than 75,000 absentee ballots were returned to the city.
Statewide, proposals to move Wisconsin to a mail-in voting system for the remainder of 2020 have been dismissed, likely leaving a patchwork of plans set up by individual municipalities.
The Milwaukee Common Council is next scheduled to meet May 27.
by Henry Redman, Wisconsin Examiner

Milwaukee Common Council moves toward mail-in voting for 2020

by Henry Redman, Wisconsin Examiner
April 21, 2020

Henry Redman
Henry Redman is a staff reporter for the Wisconsin Examiner who focuses on covering Wisconsin's towns and rural areas. He previously covered crime and courts at the Daily Jefferson County Union. A lifelong Midwesterner, he was born in Cleveland, Ohio and graduated from Loyola University Chicago with a degree in journalism in May 2019.
Partisan attempts to restrict voting snare voters… by Melanie Conklin April 20, 2021
Wisconsin Legislature follows a nationwide systemic… by Melanie Conklin April 6, 2021
Proposed Wisconsin elections laws could be illegal by Melanie Conklin May 3, 2021

redpajama_set_name: RedPajamaCommonCrawl


I live in a rural area, I have a huge old canvas tent in the shed and thought of throwing that over the aviary and then a sprinkler on the aviary roof, which would wet the canvas, providing some protection for the birds. I will be interested to read others thoughts.
okay I have been researching this, cinnamons have washed out body color so I am torn between 2 and 4! I'll go with 4. I am often wrong and probably am again but this is a great way to learn.
No. 1, no..... No. 4?? okay I am going to stick to No. 4 Can I phone a friend??? (Laughing out loud)!
They are all beautiful birds, I see Jeanie likes a bath! By The Way I just loved the Chef from the Muppets - loved it when he put the holes in the donuts (with a gun!)! That always just broke me up.
I Need Lessons On Addling!
You would be familar with Lady and Buttons who just raised Jellybean, Pinto, Cashew and Peanut. Lady laid two eggs before the last of her chicks left the nesting box and I addled them, along with the next 7 she laid (9 all up), I have been waiting for her to lose interest in these dud eggs and I looked in the nesting box this morning and there are 3 babies!!!!!!!!!! I was so shocked that I actually went back into the aviary to double check I wasn't seeing things! Now I shook those eggs good (or so I thought!) but obviously not enough! I seriously am in shock, those babes must have meant to be hatched!!!!! Geez!!!!!!
Thanks for the great explanation! Clear and simple, a bit like me! (Laughing out loud)!
It's Not Easy Being Green !
They are beautiful! I had not heard before that pet shops don't like them! Amazing!
budgie_addict replied to Daz's topic in Win That First Prize!
I am always keen to learn more about our feathered friends, even though I have no plans to enter the show ring myself!
That's it! I have had this bird hanging about the backyard for a couple of months now. I tried finding out what it was and couldn't and then in this thread there's a picture! The Grey Butcherbird! He comes to try to steal the dogs food and I was worried for my birds because of that nasty looking hook on the end of his beak. One good thing though is the dogs are constantly chasing him away.
I wish to agree with Lovey, sadly it does happen in all forms of breeding. In the pursuit of the perfect cat, dog or bird mistakes happen. I have a dog who is the result of bad breeding. The "breeder" I got him from was so keen to cash in on the designer small dog market, that she did not care for the welfare of the offspring. As a result the pup that I adopted (and all his siblings) were born with a brain stem dysfunction which resulted in the pups having gross motor and coordination problems. And she continued to try to breed from these dogs! Now I am not saying all breeders do this, I know there are many, many caring breeders out there. But the ones that are motivated by the almighty $ are the worry. And I am sure there are none here on this board. The breeder where I got my dog from has now been shut down and prosecuted, although she has now opened a pet shop!!
I am no expert and I am sure someone will be along soon with more experience that I have. But my first thought was, I am sure in the budgie world there are some hens that simply are not good Mums and perhaps should not be breeding. The other thought was how old is Pebbles, I believe it is ideal if the pair are 18 months old, that way they have the maturity to raise their babies with optimal success. I love your birds names, very cute!
I Did Not Steal Your Lasagne!
Aawww! Too cute! I am so looking forward to the time when I can have an inside budgie! (when my two cats have departed - mind you I love them dearly too!) In the meantime I am happy to avairy gaze! (Laughing out loud)!
Hi! I haven't looked in on this thread for a while - How your babies have grown! And such beautiful birds! Congratulations!
What Do "starving" Budgies Look Like?
That's great, they were really enjoying themselves so please tell us what was in the bowl!
This is not my aviary but will share some photos if I can remember to take my camera when I go to visit! She told me on the phone last night that she found an old pump in the shed so has rigged that up so there is now a small bubbling fountain in the bird bath - when she gets her birds they will be so spoilt!
Hi! After my first, very happy and successful venture into breeding budgies, I have a question. When budgies mate does the sperm stay viable in the females reproductive tract for a few days thus fertilising a few eggs. Or is it one mating results in one fertilised egg? Perhaps someone knows of a web site that gives detailed info on this topic. I have googled this question but not come up with much of an answer!
Thanks Daz and Bubbles, I shall pass that info on. This aviary is looking great, she has landscaped it with Aussie native grasses, an old bird bath with small rocks in it so it's not too deep, and she has even bought a small gum tree that she plans to bonsai in it's pot to keep it's size under control (if the birds don't eat it!). The aviary is looking like something out of the Aussie bush!
Hi! Asking this for a girlfriend....She is just setting up a small 2m (width) X 2m (depth) walk in aviary. I have been helping with perches, flooring, feed dishes etc. but she was wondering how many birds could she house comfortably in an aviary this size. I thought 15 - 20 but promised I would ask the experts! Thanks for any advice you could share.
Thanks for your thoughts Rainbow. I have had Beau from a baby and he is now 2 years old. I am not sure of Clouds age, I spotted her in one of those tiny pet shop cages and just had to bring her home!
How Many Of You Have Bought A Bird Without A Vet Check?
None of mine were Vet checked! You got me thinking because whenever any of my other pets, cat or dog, came home I had them at the vet - checked, wormed, flead and vacinations done within that first week. My budgies only got that lonely month of quarantine!


text:
SATURDAY IS THE DEADLINE TO REQUEST A VOTE-BY-MAIL BALLOT IN THE MAIL
Supervisor of Elections David H. Stafford reminds voters who wish to be mailed a vote-by-mail ballot for the March 17 Presidential Preference Primary Election to request their ballot no later than Saturday, March 7. The Florida legislature last year moved the request deadline from the 6th day before an election to the 10th day. Voters can make their request by using the online form at EscambiaVotes.com or by contacting the Supervisor of Elections by mail, phone (850) 595-3900, fax (850) 595-3914, or e-mail ([email protected]com). Requests must include the voter's date of birth and address. Voters may track the status of their ballot by clicking Track My Ballot at EscambiaVotes.com.
The U.S. Postal Service recommends voters mail ballots at least one week before the due date. Completed vote-by-mail ballots must be received in the Elections Office no later than 7:00 p.m. on Election Day, Tuesday, March 17. Voters may now drop-off a vote-by-mail ballot during early voting hours at any of the nine area early voting locations. Visit EscambiaVotes.com for a listing of early voting hours and locations. Voters are still prohibited from returning their completed vote-by-mail ballot at an Election Day polling place.
After Saturday's deadline, a voter may still pick up a vote-by-mail ballot in person from the Elections Office through Monday, March 16.
For further information on vote-by-mail ballots, early voting, or precincts and polling locations, please contact us at (850) 595-3900, [email protected] or visit EscambiaVotes.com.


Branches United Methodist Is the nonprofit organization I selected for this poster campaign series. The reason I chose them is simply because they are more than an organization. THE reason I state that their more than an organization is due to the fact that they see each other as a second family. Branches United Methodist is an institution that works with youth and adults to assist them in their lives and guide them hand in hand.MY poster series was created to embody the Code and mentality of the staff at Branches. Which is to go, and lend a helping hand, whether it be for the community or a member of the congregation. The reason I chose to use hands for the main visuals was due to the fact that Branches takes it to the next step. Instead of an organization building itself up. The people of Branches band together as a collective to build the world around. Which demonstrated to me personally that this was an institution that I could see myself being apart off.
All in all Branches is program is structured in a three tier set up. In which the grow programs help enrich and build students that fall in to the Grades of Kindergarten through 5th grade. While the Climb Program is structured for middle school and high school students. Finally the achieve program which helps with managing finances and prepping you to battle the real world.


There are times wheո you coսld bе overwhelmed with job or tension іn tҺe worκ plаce and youг efficiency сould pߋssibly be dropping. Ιf you taҡe time ߋff, then yօu moѕt likely wοuld be re-energized.
Ӎany folks whiϲh discover tҺemselves іnto thіs situation typically taҝe benefit оf phony doctor's notes. Тhese are papers tҺаt mention tɦe customer іs unwell aոd ought tߋ not proceed job or ѡill bе pardoned fгom work. Уou as well cɑn makе սse of tҺis clinical reason to ɡet tҺɑt time you sо wished tо handle ƴour individual ƿroblems. Use an effective excuse like a doctor's note to get out of work and relax.
Νonetheless, thеre aге thiոgs you must learn ɑbout fake doctor's notes. Τhese facts coսld help yߋu takе advantage оf the physician's notes. If yօu intend tο take time off from your location of job, theѕe are paгticularly essential.
Fake doctor's notes tҺat job аrе thօse produced and made lіke actual physician's note. Ҭhese items come in layouts, layouts, аnԁ manufactured like the ill notes released by real certified medical professionals. Ҭo make anу one ߋf this phony doctor's note woгk for yoս, guarantee thеse informаtion οn the looҟ and layout aгe in area.
Fake medical professional's notes tо take some time off must have verifiable infօrmation. Ƭhe names, address, ɑnd phone number of thе physician ԝill be proven. If tɦese details coսld ոot be validated, your manager maу have reason to tҺink that yoսr note is not actual.
Tɦere are mɑny sources օf phony doctor's notes. Many are from the Internet. Yes, a ǥreat deal of web sites сaո bе accessed tօ acquire and download Ԁifferent models of health care justification notes. Ӏt is ѕtill crucial that yοu mɑke ƴour study well ɑnd select alternatives tɦat finest offer уоur inteгest.
The trick to obtaining accepted іs tɦat yߋu stick աith specific tҺat ensures thаt whоevеr you aгe submitting tɦе note to ԝould believe you. If ƴօu loved this post in addition tо ƴou would like tօ acquire mߋre info relating tо printable fake doctors note template kindly stop by thе webpage. A fake medical justification сould put you іnto pгoblem іf the employer uncovers you have actually lied witɦ tҺe note, so be cautious when utilizing phony sick notes tο acquire time off!
Lots օf folks who fіnd themselves іnto this situation օften tаke benefit οf fake doctor's notes.
Phony physician's notes tɦat work are thߋse made anԀ manufactured liҡe real medical professional's note. To makе any of this fake medical professional's note job fоr you, ensure these details on the appearance and layout arе іn location.
Fake medical professional's notes tߋ take time օff ought tօ hɑve proven informatioո.
There are many advantages of a printable doctor's note. One of those advantages is that you can save a copy of it once you had proven that it's working effectively. Another is that you can have access to it anytime you need. Lastly, you can customize it by yourself without having to pay additional charges or purchasing another one. Visit us to know how you can get a fake doctors' note.
Best eulogies can be found at eulogiesmadeeasy.com, go there and make your most heartfelt eulogy.


A soldier saved a heroic dog suffering trauma.
The news today tells of a UK soldier who adopted a hero sniffer dog that saved her from hidden explosives.
The Army medic Angie McDonnell owes her life to four-year-old Vidar after he found a stash of explosives hidden by the Taliban in Afghanistan. When she heard that the Belgian Malinois was suffering from post traumatic stress disorder and faced being put down, she made it her mission to give him a home.
Post traumatic stress disorder! This is the first time I've given consideration to a dog's mental state after going through horrific events. However, it stands to reason that man's best friend can suffer just as much trauma as a person.
Angie was on a routine patrol near Camp Bastion in April 2012 when Vidar detected the massive collection of guns and grenades. Then, explosives experts managed to recover and disable them.
Reservist Angie is convinced she and her comrades would have been on the receiving end of the weapons if Vidar had not hunted them down. She appreciated the heroic way the dog saved his army companions and became best friends with him.
It's great to hear about hero dogs. They perform so many courageous tasks for their human friends. They act as companions and help the disabled, they search and rescue, they work alongside and they never judge their human companions.
Maybe you can recall a way a dog helped someone in distress.
You're right. Sometimes, I wish people acted the same way.
Stories like this give us heart.
One of my co workers' dogs died recently from old age. In the dog's memory, my friend donated the cost of a bulletproof vest to an organization that buys vests for police K9 dogs in the United States. She got back the biography and picture of "her" dog. What a great idea to assist hero dogs! I am sharing your blog post on social media today.
What a wonderful way to commemorate a dog. They're remarkable creatures.
Ahh! What a heart warming story. It's tales like these which restore my faith in humanity!
It's great that a person can give back to an animal.
We took in a stray kitten a few years ago that has a nasty gash on his hind leg. As he grew up he continued doing odd things, like sucking on fleece white blankets (only white, and only fleece ones), searching around for food all night long, and then hiding it where the other cats couldn't find it. After much discussion with the vet, she decided whatever happened before we rescued him traumatized him. He was probably taken from his mother too soon which lead to the sucking on the fleece (maybe his moms belly was white fur, hence only sucking on white fleece), the searching and hiding food was probably because he was so young he didnt have his mom to show him where to get food, so he probably was eating garbage and hiding whatever he could from other animals. She said he will probably always do these habits because whatever happened has scared him in a sense. The cat is very loving, and loves to follow us around and cuddle, but freaks out if you have anything in your hand near him. He probably remembers being hurt by a human with something in their hand.
What a heart-wrenching story. I agree with the cat being removed from its mother too early. The same thing happened to a cat we adopted. Poor little animals--they have to survive as best they can.
Wow incredible story, thank you for sharing!
Very interesting story. I admit I'm not a big dog lover, but I certainly respect. They are cool animals and people should only be allowed to have one as a pet as long as they treat them well. Unfortunately, I've been attacked by a few dogs, so I'd never have one myself. My friends tell me that's a result of bad dog owners. This sounds like a wonderful dog though.
Experience teaches both humans and animals. Your bad memories tell you to shy away from dogs who hurt you. I guess there are food and bad in every creature.


text:
About Wendy
Contact Wendy
A View from Westminster – Local Newspaper Column – Unauthorised Encampments and Conference round up.
by Wendy Morton MP | Friday 14th October 2016 | News
At last we are seeing Walsall Council take proactive steps in tackling the on-going problem of unauthorized encampments, and I welcome the latest move to secure an injunction on 12 specific sites across the Borough. With the interest of local residents in mind, especially those who have had to endure the impact of anti-social behaviour, and the mess that is left behind, it is to be hoped that these measures will succeed. I will however continue to watch this closely and press for further action if needed.
Last week we saw the Conservative Party Conference being held in Birmingham and for me it was an opportunity to raise issues with a number of organisations and individuals and to discuss matters of interest to my constituents. I was able to meet with Guide Dogs for the Blind and learn more about talking buses, and their campaign to make buses accessible for everyone. I also met with Breast Cancer Care, the British Ceramic Confederation and the Princes Trust.
We heard Prime Minister Theresa May set out her vision for Britain as country that works for everyone, and for Britain outside the EU, as an independent and sovereign country. It was confirmed that Article 50 will be triggered by no later than the end of March 2017 and this will mark the start of the 2-year formal process to negotiate our withdrawal from the EU. The Government will also shortly introduce a Great Repeal Bill to remove the European Communities Act from the statute book on the day we leave, meaning that the authority of EU law in Britain will end.
No doubt there will be challenges ahead but I believe that where challenges exist so too do opportunities. Now is the time for Britain to go out with confidence, to seek and seize the new opportunities to secure trade deals, generate wealth and create jobs.
In closing, I cannot end without a mention for the many MacMillan coffee mornings that were held across my constituency as part of the World's Biggest Coffee Morning – St James Church in Brownhills, Autumn Close at High Heath, and the Hardwick Arms in Streetly to name but a few.
Thank you to everyone who invited me. As always, it is good to catch up over coffee and cake!
Wendy Morton MP
Promoted by J MacNamara on behalf of Wendy Morton, both of 82 Walsall Road, Aldridge, WS9 0JW.
Wendy Morton, Member of Parliament for Aldridge-Brownhills.


text:
Colorado falls from AP Top 25, Kansas moves to #1
The Buffs have had a rough couple of weeks.
By Sam Metivier Dec 16, 2019, 10:37am MST
Share All sharing options for: Colorado falls from AP Top 25, Kansas moves to #1
After spending nearly all season with a cute little number next to their name, the Colorado Buffaloes have fallen out of the AP Top 25.
The Buffs were ranked 20th two weeks ago, but lost to then-No. 2 Kansas in Lawrence. CU fell to No. 24, then lost at home to Northern Iowa before eking out a win on the road against Colorado State. The Buffs are still receiving votes — they have one fewer vote than Northern Iowa — but it's clear they're not a Top 25 team, not until they fix their offense.
Of note, Kansas rose to No. 1 in the newest poll. This season has been characterized by parity, and that's most obvious in that there have been five different teams — Michigan State, Kentucky, Duke, Louisville and now KU — ranked No. 1 in just eight weeks of polls.
Excluding Kansas, Colorado will face four more opponents currently ranked in the Top 25. Oregon rose to 8th after their road win at Michigan, Dayton is 13th (their only loss is to Kansas in overtime), Arizona is 16th, and Washington is 22nd.


Is it possible to make the sounds louder in the salon, and quieter in the cabin?
Does MSFS dislike long clips?
Dougs' gauge sound : Sounds only in VC and not external view. I'm lost!
FS2004 TOCW Horn sounds in wing view.