# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.8
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.





from sys import version_info
if version_info >= (2, 6, 0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_pyqrllib', [dirname(__file__)])
        except ImportError:
            import _pyqrllib
            return _pyqrllib
        if fp is not None:
            try:
                _mod = imp.load_module('_pyqrllib', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _pyqrllib = swig_import_helper()
    del swig_import_helper
else:
    import _pyqrllib
del version_info
try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.


def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)


def _swig_setattr(self, class_type, name, value):
    return _swig_setattr_nondynamic(self, class_type, name, value, 0)


def _swig_getattr_nondynamic(self, class_type, name, static=1):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    if (not static):
        return object.__getattr__(self, name)
    else:
        raise AttributeError(name)

def _swig_getattr(self, class_type, name):
    return _swig_getattr_nondynamic(self, class_type, name, 0)


def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object:
        pass
    _newclass = 0



def cdata(ptr, nelements=1):
    return _pyqrllib.cdata(ptr, nelements)
cdata = _pyqrllib.cdata

def memmove(data, indata):
    return _pyqrllib.memmove(data, indata)
memmove = _pyqrllib.memmove
class SwigPyIterator(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SwigPyIterator, name)

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _pyqrllib.delete_SwigPyIterator
    __del__ = lambda self: None

    def value(self):
        return _pyqrllib.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _pyqrllib.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _pyqrllib.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _pyqrllib.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _pyqrllib.SwigPyIterator_equal(self, x)

    def copy(self):
        return _pyqrllib.SwigPyIterator_copy(self)

    def next(self):
        return _pyqrllib.SwigPyIterator_next(self)

    def __next__(self):
        return _pyqrllib.SwigPyIterator___next__(self)

    def previous(self):
        return _pyqrllib.SwigPyIterator_previous(self)

    def advance(self, n):
        return _pyqrllib.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _pyqrllib.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _pyqrllib.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _pyqrllib.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _pyqrllib.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _pyqrllib.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _pyqrllib.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self
SwigPyIterator_swigregister = _pyqrllib.SwigPyIterator_swigregister
SwigPyIterator_swigregister(SwigPyIterator)


_pyqrllib.SHARED_PTR_DISOWN_swigconstant(_pyqrllib)
SHARED_PTR_DISOWN = _pyqrllib.SHARED_PTR_DISOWN
class ucharCArray(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ucharCArray, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ucharCArray, name)
    __repr__ = _swig_repr

    def __init__(self, nelements):
        this = _pyqrllib.new_ucharCArray(nelements)
        try:
            self.this.append(this)
        except Exception:
            self.this = this
    __swig_destroy__ = _pyqrllib.delete_ucharCArray
    __del__ = lambda self: None

    def __getitem__(self, index):
        return _pyqrllib.ucharCArray___getitem__(self, index)

    def __setitem__(self, index, value):
        return _pyqrllib.ucharCArray___setitem__(self, index, value)

    def cast(self):
        return _pyqrllib.ucharCArray_cast(self)
    __swig_getmethods__["frompointer"] = lambda x: _pyqrllib.ucharCArray_frompointer
    if _newclass:
        frompointer = staticmethod(_pyqrllib.ucharCArray_frompointer)
ucharCArray_swigregister = _pyqrllib.ucharCArray_swigregister
ucharCArray_swigregister(ucharCArray)

def ucharCArray_frompointer(t):
    return _pyqrllib.ucharCArray_frompointer(t)
ucharCArray_frompointer = _pyqrllib.ucharCArray_frompointer

class uintCArray(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, uintCArray, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, uintCArray, name)
    __repr__ = _swig_repr

    def __init__(self, nelements):
        this = _pyqrllib.new_uintCArray(nelements)
        try:
            self.this.append(this)
        except Exception:
            self.this = this
    __swig_destroy__ = _pyqrllib.delete_uintCArray
    __del__ = lambda self: None

    def __getitem__(self, index):
        return _pyqrllib.uintCArray___getitem__(self, index)

    def __setitem__(self, index, value):
        return _pyqrllib.uintCArray___setitem__(self, index, value)

    def cast(self):
        return _pyqrllib.uintCArray_cast(self)
    __swig_getmethods__["frompointer"] = lambda x: _pyqrllib.uintCArray_frompointer
    if _newclass:
        frompointer = staticmethod(_pyqrllib.uintCArray_frompointer)
uintCArray_swigregister = _pyqrllib.uintCArray_swigregister
uintCArray_swigregister(uintCArray)

def uintCArray_frompointer(t):
    return _pyqrllib.uintCArray_frompointer(t)
uintCArray_frompointer = _pyqrllib.uintCArray_frompointer

class uint32CArray(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, uint32CArray, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, uint32CArray, name)
    __repr__ = _swig_repr

    def __init__(self, nelements):
        this = _pyqrllib.new_uint32CArray(nelements)
        try:
            self.this.append(this)
        except Exception:
            self.this = this
    __swig_destroy__ = _pyqrllib.delete_uint32CArray
    __del__ = lambda self: None

    def __getitem__(self, index):
        return _pyqrllib.uint32CArray___getitem__(self, index)

    def __setitem__(self, index, value):
        return _pyqrllib.uint32CArray___setitem__(self, index, value)

    def cast(self):
        return _pyqrllib.uint32CArray_cast(self)
    __swig_getmethods__["frompointer"] = lambda x: _pyqrllib.uint32CArray_frompointer
    if _newclass:
        frompointer = staticmethod(_pyqrllib.uint32CArray_frompointer)
uint32CArray_swigregister = _pyqrllib.uint32CArray_swigregister
uint32CArray_swigregister(uint32CArray)

def uint32CArray_frompointer(t):
    return _pyqrllib.uint32CArray_frompointer(t)
uint32CArray_frompointer = _pyqrllib.uint32CArray_frompointer

class intVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, intVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, intVector, name)
    __repr__ = _swig_repr

    def iterator(self):
        return _pyqrllib.intVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pyqrllib.intVector___nonzero__(self)

    def __bool__(self):
        return _pyqrllib.intVector___bool__(self)

    def __len__(self):
        return _pyqrllib.intVector___len__(self)

    def __getslice__(self, i, j):
        return _pyqrllib.intVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pyqrllib.intVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pyqrllib.intVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pyqrllib.intVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pyqrllib.intVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pyqrllib.intVector___setitem__(self, *args)

    def pop(self):
        return _pyqrllib.intVector_pop(self)

    def append(self, x):
        return _pyqrllib.intVector_append(self, x)

    def empty(self):
        return _pyqrllib.intVector_empty(self)

    def size(self):
        return _pyqrllib.intVector_size(self)

    def swap(self, v):
        return _pyqrllib.intVector_swap(self, v)

    def begin(self):
        return _pyqrllib.intVector_begin(self)

    def end(self):
        return _pyqrllib.intVector_end(self)

    def rbegin(self):
        return _pyqrllib.intVector_rbegin(self)

    def rend(self):
        return _pyqrllib.intVector_rend(self)

    def clear(self):
        return _pyqrllib.intVector_clear(self)

    def get_allocator(self):
        return _pyqrllib.intVector_get_allocator(self)

    def pop_back(self):
        return _pyqrllib.intVector_pop_back(self)

    def erase(self, *args):
        return _pyqrllib.intVector_erase(self, *args)

    def __init__(self, *args):
        this = _pyqrllib.new_intVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def push_back(self, x):
        return _pyqrllib.intVector_push_back(self, x)

    def front(self):
        return _pyqrllib.intVector_front(self)

    def back(self):
        return _pyqrllib.intVector_back(self)

    def assign(self, n, x):
        return _pyqrllib.intVector_assign(self, n, x)

    def resize(self, *args):
        return _pyqrllib.intVector_resize(self, *args)

    def insert(self, *args):
        return _pyqrllib.intVector_insert(self, *args)

    def reserve(self, n):
        return _pyqrllib.intVector_reserve(self, n)

    def capacity(self):
        return _pyqrllib.intVector_capacity(self)
    __swig_destroy__ = _pyqrllib.delete_intVector
    __del__ = lambda self: None
intVector_swigregister = _pyqrllib.intVector_swigregister
intVector_swigregister(intVector)

class uintVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, uintVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, uintVector, name)
    __repr__ = _swig_repr

    def iterator(self):
        return _pyqrllib.uintVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pyqrllib.uintVector___nonzero__(self)

    def __bool__(self):
        return _pyqrllib.uintVector___bool__(self)

    def __len__(self):
        return _pyqrllib.uintVector___len__(self)

    def __getslice__(self, i, j):
        return _pyqrllib.uintVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pyqrllib.uintVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pyqrllib.uintVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pyqrllib.uintVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pyqrllib.uintVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pyqrllib.uintVector___setitem__(self, *args)

    def pop(self):
        return _pyqrllib.uintVector_pop(self)

    def append(self, x):
        return _pyqrllib.uintVector_append(self, x)

    def empty(self):
        return _pyqrllib.uintVector_empty(self)

    def size(self):
        return _pyqrllib.uintVector_size(self)

    def swap(self, v):
        return _pyqrllib.uintVector_swap(self, v)

    def begin(self):
        return _pyqrllib.uintVector_begin(self)

    def end(self):
        return _pyqrllib.uintVector_end(self)

    def rbegin(self):
        return _pyqrllib.uintVector_rbegin(self)

    def rend(self):
        return _pyqrllib.uintVector_rend(self)

    def clear(self):
        return _pyqrllib.uintVector_clear(self)

    def get_allocator(self):
        return _pyqrllib.uintVector_get_allocator(self)

    def pop_back(self):
        return _pyqrllib.uintVector_pop_back(self)

    def erase(self, *args):
        return _pyqrllib.uintVector_erase(self, *args)

    def __init__(self, *args):
        this = _pyqrllib.new_uintVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def push_back(self, x):
        return _pyqrllib.uintVector_push_back(self, x)

    def front(self):
        return _pyqrllib.uintVector_front(self)

    def back(self):
        return _pyqrllib.uintVector_back(self)

    def assign(self, n, x):
        return _pyqrllib.uintVector_assign(self, n, x)

    def resize(self, *args):
        return _pyqrllib.uintVector_resize(self, *args)

    def insert(self, *args):
        return _pyqrllib.uintVector_insert(self, *args)

    def reserve(self, n):
        return _pyqrllib.uintVector_reserve(self, n)

    def capacity(self):
        return _pyqrllib.uintVector_capacity(self)
    __swig_destroy__ = _pyqrllib.delete_uintVector
    __del__ = lambda self: None
uintVector_swigregister = _pyqrllib.uintVector_swigregister
uintVector_swigregister(uintVector)

class ucharVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ucharVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ucharVector, name)
    __repr__ = _swig_repr

    def iterator(self):
        return _pyqrllib.ucharVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pyqrllib.ucharVector___nonzero__(self)

    def __bool__(self):
        return _pyqrllib.ucharVector___bool__(self)

    def __len__(self):
        return _pyqrllib.ucharVector___len__(self)

    def __getslice__(self, i, j):
        return _pyqrllib.ucharVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pyqrllib.ucharVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pyqrllib.ucharVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pyqrllib.ucharVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pyqrllib.ucharVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pyqrllib.ucharVector___setitem__(self, *args)

    def pop(self):
        return _pyqrllib.ucharVector_pop(self)

    def append(self, x):
        return _pyqrllib.ucharVector_append(self, x)

    def empty(self):
        return _pyqrllib.ucharVector_empty(self)

    def size(self):
        return _pyqrllib.ucharVector_size(self)

    def swap(self, v):
        return _pyqrllib.ucharVector_swap(self, v)

    def begin(self):
        return _pyqrllib.ucharVector_begin(self)

    def end(self):
        return _pyqrllib.ucharVector_end(self)

    def rbegin(self):
        return _pyqrllib.ucharVector_rbegin(self)

    def rend(self):
        return _pyqrllib.ucharVector_rend(self)

    def clear(self):
        return _pyqrllib.ucharVector_clear(self)

    def get_allocator(self):
        return _pyqrllib.ucharVector_get_allocator(self)

    def pop_back(self):
        return _pyqrllib.ucharVector_pop_back(self)

    def erase(self, *args):
        return _pyqrllib.ucharVector_erase(self, *args)

    def __init__(self, *args):
        this = _pyqrllib.new_ucharVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def push_back(self, x):
        return _pyqrllib.ucharVector_push_back(self, x)

    def front(self):
        return _pyqrllib.ucharVector_front(self)

    def back(self):
        return _pyqrllib.ucharVector_back(self)

    def assign(self, n, x):
        return _pyqrllib.ucharVector_assign(self, n, x)

    def resize(self, *args):
        return _pyqrllib.ucharVector_resize(self, *args)

    def insert(self, *args):
        return _pyqrllib.ucharVector_insert(self, *args)

    def reserve(self, n):
        return _pyqrllib.ucharVector_reserve(self, n)

    def capacity(self):
        return _pyqrllib.ucharVector_capacity(self)
    __swig_destroy__ = _pyqrllib.delete_ucharVector
    __del__ = lambda self: None
ucharVector_swigregister = _pyqrllib.ucharVector_swigregister
ucharVector_swigregister(ucharVector)

class charVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, charVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, charVector, name)
    __repr__ = _swig_repr

    def iterator(self):
        return _pyqrllib.charVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pyqrllib.charVector___nonzero__(self)

    def __bool__(self):
        return _pyqrllib.charVector___bool__(self)

    def __len__(self):
        return _pyqrllib.charVector___len__(self)

    def __getslice__(self, i, j):
        return _pyqrllib.charVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pyqrllib.charVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pyqrllib.charVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pyqrllib.charVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pyqrllib.charVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pyqrllib.charVector___setitem__(self, *args)

    def pop(self):
        return _pyqrllib.charVector_pop(self)

    def append(self, x):
        return _pyqrllib.charVector_append(self, x)

    def empty(self):
        return _pyqrllib.charVector_empty(self)

    def size(self):
        return _pyqrllib.charVector_size(self)

    def swap(self, v):
        return _pyqrllib.charVector_swap(self, v)

    def begin(self):
        return _pyqrllib.charVector_begin(self)

    def end(self):
        return _pyqrllib.charVector_end(self)

    def rbegin(self):
        return _pyqrllib.charVector_rbegin(self)

    def rend(self):
        return _pyqrllib.charVector_rend(self)

    def clear(self):
        return _pyqrllib.charVector_clear(self)

    def get_allocator(self):
        return _pyqrllib.charVector_get_allocator(self)

    def pop_back(self):
        return _pyqrllib.charVector_pop_back(self)

    def erase(self, *args):
        return _pyqrllib.charVector_erase(self, *args)

    def __init__(self, *args):
        this = _pyqrllib.new_charVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def push_back(self, x):
        return _pyqrllib.charVector_push_back(self, x)

    def front(self):
        return _pyqrllib.charVector_front(self)

    def back(self):
        return _pyqrllib.charVector_back(self)

    def assign(self, n, x):
        return _pyqrllib.charVector_assign(self, n, x)

    def resize(self, *args):
        return _pyqrllib.charVector_resize(self, *args)

    def insert(self, *args):
        return _pyqrllib.charVector_insert(self, *args)

    def reserve(self, n):
        return _pyqrllib.charVector_reserve(self, n)

    def capacity(self):
        return _pyqrllib.charVector_capacity(self)
    __swig_destroy__ = _pyqrllib.delete_charVector
    __del__ = lambda self: None
charVector_swigregister = _pyqrllib.charVector_swigregister
charVector_swigregister(charVector)

class doubleVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, doubleVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, doubleVector, name)
    __repr__ = _swig_repr

    def iterator(self):
        return _pyqrllib.doubleVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pyqrllib.doubleVector___nonzero__(self)

    def __bool__(self):
        return _pyqrllib.doubleVector___bool__(self)

    def __len__(self):
        return _pyqrllib.doubleVector___len__(self)

    def __getslice__(self, i, j):
        return _pyqrllib.doubleVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pyqrllib.doubleVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pyqrllib.doubleVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pyqrllib.doubleVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pyqrllib.doubleVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pyqrllib.doubleVector___setitem__(self, *args)

    def pop(self):
        return _pyqrllib.doubleVector_pop(self)

    def append(self, x):
        return _pyqrllib.doubleVector_append(self, x)

    def empty(self):
        return _pyqrllib.doubleVector_empty(self)

    def size(self):
        return _pyqrllib.doubleVector_size(self)

    def swap(self, v):
        return _pyqrllib.doubleVector_swap(self, v)

    def begin(self):
        return _pyqrllib.doubleVector_begin(self)

    def end(self):
        return _pyqrllib.doubleVector_end(self)

    def rbegin(self):
        return _pyqrllib.doubleVector_rbegin(self)

    def rend(self):
        return _pyqrllib.doubleVector_rend(self)

    def clear(self):
        return _pyqrllib.doubleVector_clear(self)

    def get_allocator(self):
        return _pyqrllib.doubleVector_get_allocator(self)

    def pop_back(self):
        return _pyqrllib.doubleVector_pop_back(self)

    def erase(self, *args):
        return _pyqrllib.doubleVector_erase(self, *args)

    def __init__(self, *args):
        this = _pyqrllib.new_doubleVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def push_back(self, x):
        return _pyqrllib.doubleVector_push_back(self, x)

    def front(self):
        return _pyqrllib.doubleVector_front(self)

    def back(self):
        return _pyqrllib.doubleVector_back(self)

    def assign(self, n, x):
        return _pyqrllib.doubleVector_assign(self, n, x)

    def resize(self, *args):
        return _pyqrllib.doubleVector_resize(self, *args)

    def insert(self, *args):
        return _pyqrllib.doubleVector_insert(self, *args)

    def reserve(self, n):
        return _pyqrllib.doubleVector_reserve(self, n)

    def capacity(self):
        return _pyqrllib.doubleVector_capacity(self)
    __swig_destroy__ = _pyqrllib.delete_doubleVector
    __del__ = lambda self: None
doubleVector_swigregister = _pyqrllib.doubleVector_swigregister
doubleVector_swigregister(doubleVector)

class _string_list(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, _string_list, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, _string_list, name)
    __repr__ = _swig_repr

    def iterator(self):
        return _pyqrllib._string_list_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pyqrllib._string_list___nonzero__(self)

    def __bool__(self):
        return _pyqrllib._string_list___bool__(self)

    def __len__(self):
        return _pyqrllib._string_list___len__(self)

    def __getslice__(self, i, j):
        return _pyqrllib._string_list___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pyqrllib._string_list___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pyqrllib._string_list___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pyqrllib._string_list___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pyqrllib._string_list___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pyqrllib._string_list___setitem__(self, *args)

    def pop(self):
        return _pyqrllib._string_list_pop(self)

    def append(self, x):
        return _pyqrllib._string_list_append(self, x)

    def empty(self):
        return _pyqrllib._string_list_empty(self)

    def size(self):
        return _pyqrllib._string_list_size(self)

    def swap(self, v):
        return _pyqrllib._string_list_swap(self, v)

    def begin(self):
        return _pyqrllib._string_list_begin(self)

    def end(self):
        return _pyqrllib._string_list_end(self)

    def rbegin(self):
        return _pyqrllib._string_list_rbegin(self)

    def rend(self):
        return _pyqrllib._string_list_rend(self)

    def clear(self):
        return _pyqrllib._string_list_clear(self)

    def get_allocator(self):
        return _pyqrllib._string_list_get_allocator(self)

    def pop_back(self):
        return _pyqrllib._string_list_pop_back(self)

    def erase(self, *args):
        return _pyqrllib._string_list_erase(self, *args)

    def __init__(self, *args):
        this = _pyqrllib.new__string_list(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def push_back(self, x):
        return _pyqrllib._string_list_push_back(self, x)

    def front(self):
        return _pyqrllib._string_list_front(self)

    def back(self):
        return _pyqrllib._string_list_back(self)

    def assign(self, n, x):
        return _pyqrllib._string_list_assign(self, n, x)

    def resize(self, *args):
        return _pyqrllib._string_list_resize(self, *args)

    def insert(self, *args):
        return _pyqrllib._string_list_insert(self, *args)

    def reserve(self, n):
        return _pyqrllib._string_list_reserve(self, n)

    def capacity(self):
        return _pyqrllib._string_list_capacity(self)
    __swig_destroy__ = _pyqrllib.delete__string_list
    __del__ = lambda self: None
_string_list_swigregister = _pyqrllib._string_list_swigregister
_string_list_swigregister(_string_list)

class _string_list_list(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, _string_list_list, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, _string_list_list, name)
    __repr__ = _swig_repr

    def iterator(self):
        return _pyqrllib._string_list_list_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pyqrllib._string_list_list___nonzero__(self)

    def __bool__(self):
        return _pyqrllib._string_list_list___bool__(self)

    def __len__(self):
        return _pyqrllib._string_list_list___len__(self)

    def __getslice__(self, i, j):
        return _pyqrllib._string_list_list___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pyqrllib._string_list_list___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pyqrllib._string_list_list___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pyqrllib._string_list_list___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pyqrllib._string_list_list___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pyqrllib._string_list_list___setitem__(self, *args)

    def pop(self):
        return _pyqrllib._string_list_list_pop(self)

    def append(self, x):
        return _pyqrllib._string_list_list_append(self, x)

    def empty(self):
        return _pyqrllib._string_list_list_empty(self)

    def size(self):
        return _pyqrllib._string_list_list_size(self)

    def swap(self, v):
        return _pyqrllib._string_list_list_swap(self, v)

    def begin(self):
        return _pyqrllib._string_list_list_begin(self)

    def end(self):
        return _pyqrllib._string_list_list_end(self)

    def rbegin(self):
        return _pyqrllib._string_list_list_rbegin(self)

    def rend(self):
        return _pyqrllib._string_list_list_rend(self)

    def clear(self):
        return _pyqrllib._string_list_list_clear(self)

    def get_allocator(self):
        return _pyqrllib._string_list_list_get_allocator(self)

    def pop_back(self):
        return _pyqrllib._string_list_list_pop_back(self)

    def erase(self, *args):
        return _pyqrllib._string_list_list_erase(self, *args)

    def __init__(self, *args):
        this = _pyqrllib.new__string_list_list(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def push_back(self, x):
        return _pyqrllib._string_list_list_push_back(self, x)

    def front(self):
        return _pyqrllib._string_list_list_front(self)

    def back(self):
        return _pyqrllib._string_list_list_back(self)

    def assign(self, n, x):
        return _pyqrllib._string_list_list_assign(self, n, x)

    def resize(self, *args):
        return _pyqrllib._string_list_list_resize(self, *args)

    def insert(self, *args):
        return _pyqrllib._string_list_list_insert(self, *args)

    def reserve(self, n):
        return _pyqrllib._string_list_list_reserve(self, n)

    def capacity(self):
        return _pyqrllib._string_list_list_capacity(self)
    __swig_destroy__ = _pyqrllib.delete__string_list_list
    __del__ = lambda self: None
_string_list_list_swigregister = _pyqrllib._string_list_list_swigregister
_string_list_list_swigregister(_string_list_list)


_pyqrllib.ADDRESS_HASH_SIZE_swigconstant(_pyqrllib)
ADDRESS_HASH_SIZE = _pyqrllib.ADDRESS_HASH_SIZE

def bin2hstr(*args):
    return _pyqrllib.bin2hstr(*args)
bin2hstr = _pyqrllib.bin2hstr

def str2bin(s):
    return _pyqrllib.str2bin(s)
str2bin = _pyqrllib.str2bin

def hstr2bin(s):
    return _pyqrllib.hstr2bin(s)
hstr2bin = _pyqrllib.hstr2bin

def bin2mnemonic(vec):
    return _pyqrllib.bin2mnemonic(vec)
bin2mnemonic = _pyqrllib.bin2mnemonic

def mnemonic2bin(mnemonic):
    return _pyqrllib.mnemonic2bin(mnemonic)
mnemonic2bin = _pyqrllib.mnemonic2bin

def getRandomSeed(seed_size, entropy):
    return _pyqrllib.getRandomSeed(seed_size, entropy)
getRandomSeed = _pyqrllib.getRandomSeed

def getHashChainSeed(seed, seed_shift, count):
    return _pyqrllib.getHashChainSeed(seed, seed_shift, count)
getHashChainSeed = _pyqrllib.getHashChainSeed

def sha2_256(input):
    return _pyqrllib.sha2_256(input)
sha2_256 = _pyqrllib.sha2_256

def sha2_256_n(input, count):
    return _pyqrllib.sha2_256_n(input, count)
sha2_256_n = _pyqrllib.sha2_256_n

def shake128(hash_size, input):
    return _pyqrllib.shake128(hash_size, input)
shake128 = _pyqrllib.shake128

def shake256(hash_size, data):
    return _pyqrllib.shake256(hash_size, data)
shake256 = _pyqrllib.shake256

_pyqrllib.SHA2_256_swigconstant(_pyqrllib)
SHA2_256 = _pyqrllib.SHA2_256

_pyqrllib.SHAKE_128_swigconstant(_pyqrllib)
SHAKE_128 = _pyqrllib.SHAKE_128

_pyqrllib.SHAKE_256_swigconstant(_pyqrllib)
SHAKE_256 = _pyqrllib.SHAKE_256

_pyqrllib.SHA256_2X_swigconstant(_pyqrllib)
SHA256_2X = _pyqrllib.SHA256_2X

_pyqrllib.XMSS_swigconstant(_pyqrllib)
XMSS = _pyqrllib.XMSS
class QRLDescriptor(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, QRLDescriptor, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, QRLDescriptor, name)
    __repr__ = _swig_repr

    def __init__(self, hashFunction, signatureType, height, addrFormatType):
        this = _pyqrllib.new_QRLDescriptor(hashFunction, signatureType, height, addrFormatType)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def getHashFunction(self):
        return _pyqrllib.QRLDescriptor_getHashFunction(self)

    def getSignatureType(self):
        return _pyqrllib.QRLDescriptor_getSignatureType(self)

    def getHeight(self):
        return _pyqrllib.QRLDescriptor_getHeight(self)

    def getAddrFormatType(self):
        return _pyqrllib.QRLDescriptor_getAddrFormatType(self)
    __swig_getmethods__["fromExtendedSeed"] = lambda x: _pyqrllib.QRLDescriptor_fromExtendedSeed
    if _newclass:
        fromExtendedSeed = staticmethod(_pyqrllib.QRLDescriptor_fromExtendedSeed)
    __swig_getmethods__["fromExtendedPK"] = lambda x: _pyqrllib.QRLDescriptor_fromExtendedPK
    if _newclass:
        fromExtendedPK = staticmethod(_pyqrllib.QRLDescriptor_fromExtendedPK)
    __swig_getmethods__["fromBytes"] = lambda x: _pyqrllib.QRLDescriptor_fromBytes
    if _newclass:
        fromBytes = staticmethod(_pyqrllib.QRLDescriptor_fromBytes)
    __swig_getmethods__["getSize"] = lambda x: _pyqrllib.QRLDescriptor_getSize
    if _newclass:
        getSize = staticmethod(_pyqrllib.QRLDescriptor_getSize)

    def getBytes(self):
        return _pyqrllib.QRLDescriptor_getBytes(self)
    __swig_destroy__ = _pyqrllib.delete_QRLDescriptor
    __del__ = lambda self: None
QRLDescriptor_swigregister = _pyqrllib.QRLDescriptor_swigregister
QRLDescriptor_swigregister(QRLDescriptor)

def QRLDescriptor_fromExtendedSeed(extended_seed):
    return _pyqrllib.QRLDescriptor_fromExtendedSeed(extended_seed)
QRLDescriptor_fromExtendedSeed = _pyqrllib.QRLDescriptor_fromExtendedSeed

def QRLDescriptor_fromExtendedPK(extended_pk):
    return _pyqrllib.QRLDescriptor_fromExtendedPK(extended_pk)
QRLDescriptor_fromExtendedPK = _pyqrllib.QRLDescriptor_fromExtendedPK

def QRLDescriptor_fromBytes(bytes):
    return _pyqrllib.QRLDescriptor_fromBytes(bytes)
QRLDescriptor_fromBytes = _pyqrllib.QRLDescriptor_fromBytes

def QRLDescriptor_getSize():
    return _pyqrllib.QRLDescriptor_getSize()
QRLDescriptor_getSize = _pyqrllib.QRLDescriptor_getSize


_pyqrllib.PICOSHA2_BUFFER_SIZE_FOR_INPUT_ITERATOR_swigconstant(_pyqrllib)
PICOSHA2_BUFFER_SIZE_FOR_INPUT_ITERATOR = _pyqrllib.PICOSHA2_BUFFER_SIZE_FOR_INPUT_ITERATOR

def mask_8bit(x):
    return _pyqrllib.mask_8bit(x)
mask_8bit = _pyqrllib.mask_8bit

def mask_32bit(x):
    return _pyqrllib.mask_32bit(x)
mask_32bit = _pyqrllib.mask_32bit

def ch(x, y, z):
    return _pyqrllib.ch(x, y, z)
ch = _pyqrllib.ch

def maj(x, y, z):
    return _pyqrllib.maj(x, y, z)
maj = _pyqrllib.maj

def rotr(x, n):
    return _pyqrllib.rotr(x, n)
rotr = _pyqrllib.rotr

def bsig0(x):
    return _pyqrllib.bsig0(x)
bsig0 = _pyqrllib.bsig0

def bsig1(x):
    return _pyqrllib.bsig1(x)
bsig1 = _pyqrllib.bsig1

def shr(x, n):
    return _pyqrllib.shr(x, n)
shr = _pyqrllib.shr

def ssig0(x):
    return _pyqrllib.ssig0(x)
ssig0 = _pyqrllib.ssig0

def ssig1(x):
    return _pyqrllib.ssig1(x)
ssig1 = _pyqrllib.ssig1
class hash256_one_by_one(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, hash256_one_by_one, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, hash256_one_by_one, name)
    __repr__ = _swig_repr

    def __init__(self):
        this = _pyqrllib.new_hash256_one_by_one()
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def init(self):
        return _pyqrllib.hash256_one_by_one_init(self)

    def finish(self):
        return _pyqrllib.hash256_one_by_one_finish(self)
    __swig_destroy__ = _pyqrllib.delete_hash256_one_by_one
    __del__ = lambda self: None
hash256_one_by_one_swigregister = _pyqrllib.hash256_one_by_one_swigregister
hash256_one_by_one_swigregister(hash256_one_by_one)
cvar = _pyqrllib.cvar
add_constant = cvar.add_constant
initial_message_digest = cvar.initial_message_digest


def get_hash_hex_string(*args):
    return _pyqrllib.get_hash_hex_string(*args)
get_hash_hex_string = _pyqrllib.get_hash_hex_string

def hash256_hex_string(src, hex_str):
    return _pyqrllib.hash256_hex_string(src, hex_str)
hash256_hex_string = _pyqrllib.hash256_hex_string
class QRLHelper(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, QRLHelper, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, QRLHelper, name)
    __repr__ = _swig_repr

    def __init__(self):
        this = _pyqrllib.new_QRLHelper()
        try:
            self.this.append(this)
        except Exception:
            self.this = this
    __swig_getmethods__["getAddress"] = lambda x: _pyqrllib.QRLHelper_getAddress
    if _newclass:
        getAddress = staticmethod(_pyqrllib.QRLHelper_getAddress)
    __swig_getmethods__["addressIsValid"] = lambda x: _pyqrllib.QRLHelper_addressIsValid
    if _newclass:
        addressIsValid = staticmethod(_pyqrllib.QRLHelper_addressIsValid)
    __swig_destroy__ = _pyqrllib.delete_QRLHelper
    __del__ = lambda self: None
QRLHelper_swigregister = _pyqrllib.QRLHelper_swigregister
QRLHelper_swigregister(QRLHelper)

def QRLHelper_getAddress(extended_pk):
    return _pyqrllib.QRLHelper_getAddress(extended_pk)
QRLHelper_getAddress = _pyqrllib.QRLHelper_getAddress

def QRLHelper_addressIsValid(address):
    return _pyqrllib.QRLHelper_addressIsValid(address)
QRLHelper_addressIsValid = _pyqrllib.QRLHelper_addressIsValid

class xmss_params(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, xmss_params, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, xmss_params, name)
    __repr__ = _swig_repr
    __swig_setmethods__["wots_par"] = _pyqrllib.xmss_params_wots_par_set
    __swig_getmethods__["wots_par"] = _pyqrllib.xmss_params_wots_par_get
    if _newclass:
        wots_par = _swig_property(_pyqrllib.xmss_params_wots_par_get, _pyqrllib.xmss_params_wots_par_set)
    __swig_setmethods__["n"] = _pyqrllib.xmss_params_n_set
    __swig_getmethods__["n"] = _pyqrllib.xmss_params_n_get
    if _newclass:
        n = _swig_property(_pyqrllib.xmss_params_n_get, _pyqrllib.xmss_params_n_set)
    __swig_setmethods__["h"] = _pyqrllib.xmss_params_h_set
    __swig_getmethods__["h"] = _pyqrllib.xmss_params_h_get
    if _newclass:
        h = _swig_property(_pyqrllib.xmss_params_h_get, _pyqrllib.xmss_params_h_set)
    __swig_setmethods__["k"] = _pyqrllib.xmss_params_k_set
    __swig_getmethods__["k"] = _pyqrllib.xmss_params_k_get
    if _newclass:
        k = _swig_property(_pyqrllib.xmss_params_k_get, _pyqrllib.xmss_params_k_set)

    def __init__(self):
        this = _pyqrllib.new_xmss_params()
        try:
            self.this.append(this)
        except Exception:
            self.this = this
    __swig_destroy__ = _pyqrllib.delete_xmss_params
    __del__ = lambda self: None
xmss_params_swigregister = _pyqrllib.xmss_params_swigregister
xmss_params_swigregister(xmss_params)

class XmssBase(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, XmssBase, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, XmssBase, name)

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _pyqrllib.delete_XmssBase
    __del__ = lambda self: None

    def sign(self, message):
        return _pyqrllib.XmssBase_sign(self, message)
    __swig_getmethods__["verify"] = lambda x: _pyqrllib.XmssBase_verify
    if _newclass:
        verify = staticmethod(_pyqrllib.XmssBase_verify)

    def getSK(self):
        return _pyqrllib.XmssBase_getSK(self)

    def getPK(self):
        return _pyqrllib.XmssBase_getPK(self)

    def getDescriptor(self):
        return _pyqrllib.XmssBase_getDescriptor(self)

    def getDescriptorBytes(self):
        return _pyqrllib.XmssBase_getDescriptorBytes(self)

    def getHeight(self):
        return _pyqrllib.XmssBase_getHeight(self)

    def getSeed(self):
        return _pyqrllib.XmssBase_getSeed(self)

    def getExtendedSeed(self):
        return _pyqrllib.XmssBase_getExtendedSeed(self)

    def getRoot(self):
        return _pyqrllib.XmssBase_getRoot(self)

    def getPKSeed(self):
        return _pyqrllib.XmssBase_getPKSeed(self)

    def getSKSeed(self):
        return _pyqrllib.XmssBase_getSKSeed(self)

    def getSKPRF(self):
        return _pyqrllib.XmssBase_getSKPRF(self)

    def getAddress(self):
        return _pyqrllib.XmssBase_getAddress(self)

    def getNumberSignatures(self):
        return _pyqrllib.XmssBase_getNumberSignatures(self)

    def getRemainingSignatures(self):
        return _pyqrllib.XmssBase_getRemainingSignatures(self)

    def getIndex(self):
        return _pyqrllib.XmssBase_getIndex(self)

    def setIndex(self, new_index):
        return _pyqrllib.XmssBase_setIndex(self, new_index)

    def getSignatureSize(self):
        return _pyqrllib.XmssBase_getSignatureSize(self)
    __swig_getmethods__["getHeightFromSigSize"] = lambda x: _pyqrllib.XmssBase_getHeightFromSigSize
    if _newclass:
        getHeightFromSigSize = staticmethod(_pyqrllib.XmssBase_getHeightFromSigSize)

    def getSecretKeySize(self):
        return _pyqrllib.XmssBase_getSecretKeySize(self)

    def getPublicKeySize(self):
        return _pyqrllib.XmssBase_getPublicKeySize(self)
XmssBase_swigregister = _pyqrllib.XmssBase_swigregister
XmssBase_swigregister(XmssBase)

def XmssBase_verify(message, signature, pk):
    return _pyqrllib.XmssBase_verify(message, signature, pk)
XmssBase_verify = _pyqrllib.XmssBase_verify

def XmssBase_getHeightFromSigSize(sigSize):
    return _pyqrllib.XmssBase_getHeightFromSigSize(sigSize)
XmssBase_getHeightFromSigSize = _pyqrllib.XmssBase_getHeightFromSigSize

class XmssBasic(XmssBase):
    __swig_setmethods__ = {}
    for _s in [XmssBase]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, XmssBasic, name, value)
    __swig_getmethods__ = {}
    for _s in [XmssBase]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, XmssBasic, name)
    __repr__ = _swig_repr

    def __init__(self, seed, height, hashFunction, addrFormatType):
        this = _pyqrllib.new_XmssBasic(seed, height, hashFunction, addrFormatType)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def sign(self, message):
        return _pyqrllib.XmssBasic_sign(self, message)
    __swig_destroy__ = _pyqrllib.delete_XmssBasic
    __del__ = lambda self: None
XmssBasic_swigregister = _pyqrllib.XmssBasic_swigregister
XmssBasic_swigregister(XmssBasic)

class treehash_inst(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, treehash_inst, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, treehash_inst, name)
    __repr__ = _swig_repr
    __swig_setmethods__["h"] = _pyqrllib.treehash_inst_h_set
    __swig_getmethods__["h"] = _pyqrllib.treehash_inst_h_get
    if _newclass:
        h = _swig_property(_pyqrllib.treehash_inst_h_get, _pyqrllib.treehash_inst_h_set)
    __swig_setmethods__["next_idx"] = _pyqrllib.treehash_inst_next_idx_set
    __swig_getmethods__["next_idx"] = _pyqrllib.treehash_inst_next_idx_get
    if _newclass:
        next_idx = _swig_property(_pyqrllib.treehash_inst_next_idx_get, _pyqrllib.treehash_inst_next_idx_set)
    __swig_setmethods__["stackusage"] = _pyqrllib.treehash_inst_stackusage_set
    __swig_getmethods__["stackusage"] = _pyqrllib.treehash_inst_stackusage_get
    if _newclass:
        stackusage = _swig_property(_pyqrllib.treehash_inst_stackusage_get, _pyqrllib.treehash_inst_stackusage_set)
    __swig_setmethods__["completed"] = _pyqrllib.treehash_inst_completed_set
    __swig_getmethods__["completed"] = _pyqrllib.treehash_inst_completed_get
    if _newclass:
        completed = _swig_property(_pyqrllib.treehash_inst_completed_get, _pyqrllib.treehash_inst_completed_set)
    __swig_setmethods__["node"] = _pyqrllib.treehash_inst_node_set
    __swig_getmethods__["node"] = _pyqrllib.treehash_inst_node_get
    if _newclass:
        node = _swig_property(_pyqrllib.treehash_inst_node_get, _pyqrllib.treehash_inst_node_set)

    def __init__(self):
        this = _pyqrllib.new_treehash_inst()
        try:
            self.this.append(this)
        except Exception:
            self.this = this
    __swig_destroy__ = _pyqrllib.delete_treehash_inst
    __del__ = lambda self: None
treehash_inst_swigregister = _pyqrllib.treehash_inst_swigregister
treehash_inst_swigregister(treehash_inst)

class bds_state(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, bds_state, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, bds_state, name)
    __repr__ = _swig_repr
    __swig_setmethods__["stack"] = _pyqrllib.bds_state_stack_set
    __swig_getmethods__["stack"] = _pyqrllib.bds_state_stack_get
    if _newclass:
        stack = _swig_property(_pyqrllib.bds_state_stack_get, _pyqrllib.bds_state_stack_set)
    __swig_setmethods__["stackoffset"] = _pyqrllib.bds_state_stackoffset_set
    __swig_getmethods__["stackoffset"] = _pyqrllib.bds_state_stackoffset_get
    if _newclass:
        stackoffset = _swig_property(_pyqrllib.bds_state_stackoffset_get, _pyqrllib.bds_state_stackoffset_set)
    __swig_setmethods__["stacklevels"] = _pyqrllib.bds_state_stacklevels_set
    __swig_getmethods__["stacklevels"] = _pyqrllib.bds_state_stacklevels_get
    if _newclass:
        stacklevels = _swig_property(_pyqrllib.bds_state_stacklevels_get, _pyqrllib.bds_state_stacklevels_set)
    __swig_setmethods__["auth"] = _pyqrllib.bds_state_auth_set
    __swig_getmethods__["auth"] = _pyqrllib.bds_state_auth_get
    if _newclass:
        auth = _swig_property(_pyqrllib.bds_state_auth_get, _pyqrllib.bds_state_auth_set)
    __swig_setmethods__["keep"] = _pyqrllib.bds_state_keep_set
    __swig_getmethods__["keep"] = _pyqrllib.bds_state_keep_get
    if _newclass:
        keep = _swig_property(_pyqrllib.bds_state_keep_get, _pyqrllib.bds_state_keep_set)
    __swig_setmethods__["treehash"] = _pyqrllib.bds_state_treehash_set
    __swig_getmethods__["treehash"] = _pyqrllib.bds_state_treehash_get
    if _newclass:
        treehash = _swig_property(_pyqrllib.bds_state_treehash_get, _pyqrllib.bds_state_treehash_set)
    __swig_setmethods__["retain"] = _pyqrllib.bds_state_retain_set
    __swig_getmethods__["retain"] = _pyqrllib.bds_state_retain_get
    if _newclass:
        retain = _swig_property(_pyqrllib.bds_state_retain_get, _pyqrllib.bds_state_retain_set)
    __swig_setmethods__["next_leaf"] = _pyqrllib.bds_state_next_leaf_set
    __swig_getmethods__["next_leaf"] = _pyqrllib.bds_state_next_leaf_get
    if _newclass:
        next_leaf = _swig_property(_pyqrllib.bds_state_next_leaf_get, _pyqrllib.bds_state_next_leaf_set)

    def __init__(self):
        this = _pyqrllib.new_bds_state()
        try:
            self.this.append(this)
        except Exception:
            self.this = this
    __swig_destroy__ = _pyqrllib.delete_bds_state
    __del__ = lambda self: None
bds_state_swigregister = _pyqrllib.bds_state_swigregister
bds_state_swigregister(bds_state)


def xmss_set_bds_state(state, stack, stackoffset, stacklevels, auth, keep, treehash, retain, next_leaf):
    return _pyqrllib.xmss_set_bds_state(state, stack, stackoffset, stacklevels, auth, keep, treehash, retain, next_leaf)
xmss_set_bds_state = _pyqrllib.xmss_set_bds_state

def xmssfast_Genkeypair(hash_func, params, pk, sk, state, seed):
    return _pyqrllib.xmssfast_Genkeypair(hash_func, params, pk, sk, state, seed)
xmssfast_Genkeypair = _pyqrllib.xmssfast_Genkeypair

def xmssfast_Signmsg(hash_func, params, sk, state, sig_msg, msg, msglen):
    return _pyqrllib.xmssfast_Signmsg(hash_func, params, sk, state, sig_msg, msg, msglen)
xmssfast_Signmsg = _pyqrllib.xmssfast_Signmsg

def xmssfast_update(hash_func, params, sk, state, new_idx):
    return _pyqrllib.xmssfast_update(hash_func, params, sk, state, new_idx)
xmssfast_update = _pyqrllib.xmssfast_update
class XmssFast(XmssBase):
    __swig_setmethods__ = {}
    for _s in [XmssBase]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, XmssFast, name, value)
    __swig_getmethods__ = {}
    for _s in [XmssBase]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, XmssFast, name)
    __repr__ = _swig_repr

    def __init__(self, *args):
        this = _pyqrllib.new_XmssFast(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def sign(self, message):
        return _pyqrllib.XmssFast_sign(self, message)

    def setIndex(self, new_index):
        return _pyqrllib.XmssFast_setIndex(self, new_index)
    __swig_destroy__ = _pyqrllib.delete_XmssFast
    __del__ = lambda self: None
XmssFast_swigregister = _pyqrllib.XmssFast_swigregister
XmssFast_swigregister(XmssFast)

class XmssPool(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, XmssPool, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, XmssPool, name)
    __repr__ = _swig_repr

    def __init__(self, base_seed, height, starting_index, pool_size):
        this = _pyqrllib.new_XmssPool(base_seed, height, starting_index, pool_size)
        try:
            self.this.append(this)
        except Exception:
            self.this = this
    __swig_destroy__ = _pyqrllib.delete_XmssPool
    __del__ = lambda self: None

    def getNextTree(self):
        return _pyqrllib.XmssPool_getNextTree(self)

    def isAvailable(self):
        return _pyqrllib.XmssPool_isAvailable(self)

    def getCurrentIndex(self):
        return _pyqrllib.XmssPool_getCurrentIndex(self)
XmssPool_swigregister = _pyqrllib.XmssPool_swigregister
XmssPool_swigregister(XmssPool)

# This file is compatible with both classic and new-style classes.


