12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Generated by Cython 0.17.4 on Sun Feb 24 19:48:34 2013 */
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define PY_SSIZE_T_CLEAN
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "Python.h"
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef Py_PYTHON_H
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #error Python headers needed to compile C extensions, please install development version of Python.
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#elif PY_VERSION_HEX < 0x02040000
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #error Cython requires Python 2.4+.
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <stddef.h> /* For offsetof */
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef offsetof
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if !defined(WIN32) && !defined(MS_WINDOWS)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #ifndef __stdcall
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define __stdcall
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #ifndef __cdecl
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define __cdecl
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #ifndef __fastcall
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define __fastcall
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef DL_IMPORT
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define DL_IMPORT(t) t
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef DL_EXPORT
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define DL_EXPORT(t) t
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef PY_LONG_LONG
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PY_LONG_LONG LONG_LONG
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef Py_HUGE_VAL
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define Py_HUGE_VAL HUGE_VAL
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef PYPY_VERSION
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_COMPILING_IN_PYPY 1
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_COMPILING_IN_CPYTHON 0
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_COMPILING_IN_PYPY 0
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_COMPILING_IN_CPYTHON 1
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02050000
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  typedef int Py_ssize_t;
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PY_SSIZE_T_MAX INT_MAX
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PY_SSIZE_T_MIN INT_MIN
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PY_FORMAT_SIZE_T ""
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define CYTHON_FORMAT_SSIZE_T ""
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_AsSsize_t(o)   __Pyx_PyInt_AsInt(o)
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyNumber_Index(o)    ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                (PyErr_Format(PyExc_TypeError, \
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                              "expected index value, got %.200s", Py_TYPE(o)->tp_name), \
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                 (PyObject*)0))
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  !PyComplex_Check(o))
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyIndex_Check __Pyx_PyIndex_Check
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __PYX_BUILD_PY_SSIZE_T "i"
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __PYX_BUILD_PY_SSIZE_T "n"
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define CYTHON_FORMAT_SSIZE_T "z"
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyIndex_Check PyIndex_Check
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02060000
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyVarObject_HEAD_INIT(type, size) \
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          PyObject_HEAD_INIT(type) size,
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyType_Modified(t)
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  typedef struct {
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     void *buf;
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     PyObject *obj;
762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     Py_ssize_t len;
772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     Py_ssize_t itemsize;
782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     int readonly;
792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     int ndim;
802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     char *format;
812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     Py_ssize_t *shape;
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     Py_ssize_t *strides;
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     Py_ssize_t *suboffsets;
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     void *internal;
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  } Py_buffer;
862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_SIMPLE 0
872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_WRITABLE 0x0001
882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_FORMAT 0x0004
892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_ND 0x0008
902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE)
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE)
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  typedef void (*releasebufferproc)(PyObject *, Py_buffer *);
992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3
1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          PyCode_New(a, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3 && PY_MINOR_VERSION < 6
1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict")
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define Py_TPFLAGS_CHECKTYPES 0
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define Py_TPFLAGS_HAVE_INDEX 0
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define CYTHON_PEP393_ENABLED 1
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ? \
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                              0 : _PyUnicode_Ready((PyObject *)(op)))
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define CYTHON_PEP393_ENABLED 0
1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyUnicode_READY(op)       (0)
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyUnicode_READ(k, d, i)   ((k=k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3
1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBaseString_Type            PyUnicode_Type
1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyStringObject               PyUnicodeObject
1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyString_Type                PyUnicode_Type
1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyString_Check               PyUnicode_Check
1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyString_CheckExact          PyUnicode_CheckExact
1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02060000
1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytesObject                PyStringObject
1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_Type                 PyString_Type
1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_Check                PyString_Check
1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_CheckExact           PyString_CheckExact
1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_FromString           PyString_FromString
1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_FromStringAndSize    PyString_FromStringAndSize
1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_FromFormat           PyString_FromFormat
1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_DecodeEscape         PyString_DecodeEscape
1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_AsString             PyString_AsString
1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_AsStringAndSize      PyString_AsStringAndSize
1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_Size                 PyString_Size
1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_AS_STRING            PyString_AS_STRING
1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_GET_SIZE             PyString_GET_SIZE
1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_Repr                 PyString_Repr
1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_Concat               PyString_Concat
1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBytes_ConcatAndDel         PyString_ConcatAndDel
1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02060000
1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)
1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type)
1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef PySet_CheckExact
1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3
1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyIntObject                  PyLongObject
1682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_Type                   PyLong_Type
1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_Check(op)              PyLong_Check(op)
1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_FromString             PyLong_FromString
1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_FromUnicode            PyLong_FromUnicode
1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_FromLong               PyLong_FromLong
1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_FromSize_t             PyLong_FromSize_t
1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_FromSsize_t            PyLong_FromSsize_t
1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_AsLong                 PyLong_AsLong
1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_AS_LONG                PyLong_AS_LONG
1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_AsSsize_t              PyLong_AsSsize_t
1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3
1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyBoolObject                 PyLongObject
1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03020000
1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  typedef long Py_hash_t;
1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \
2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \
2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0)))
2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \
2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1)))
2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3
2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02050000
2152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
2162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
2172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),((char *)(n)))
2182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
2192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),(n))
2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
2212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02050000
2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_NAMESTR(n) ((char *)(n))
2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_DOCSTR(n)  ((char *)(n))
2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_NAMESTR(n) (n)
2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_DOCSTR(n)  (n)
2292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3
2332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
2342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
2352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
2362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
2372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
2382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef __PYX_EXTERN_C
2412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #ifdef __cplusplus
2422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define __PYX_EXTERN_C extern "C"
2432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #else
2442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define __PYX_EXTERN_C extern
2452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
2462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(WIN32) || defined(MS_WINDOWS)
2492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define _USE_MATH_DEFINES
2502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <math.h>
2522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __PYX_HAVE__bintrees__qbintree
2532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __PYX_HAVE_API__bintrees__qbintree
2542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ctrees.h"
2552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "stack.h"
2562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef _OPENMP
2572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <omp.h>
2582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* _OPENMP */
2592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef PYREX_WITHOUT_ASSERTIONS
2612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_WITHOUT_ASSERTIONS
2622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* inline attribute */
2662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CYTHON_INLINE
2672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if defined(__GNUC__)
2682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define CYTHON_INLINE __inline__
2692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #elif defined(_MSC_VER)
2702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define CYTHON_INLINE __inline
2712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
2722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define CYTHON_INLINE inline
2732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #else
2742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define CYTHON_INLINE
2752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
2762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* unused attribute */
2792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CYTHON_UNUSED
2802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# if defined(__GNUC__)
2812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
2822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#     define CYTHON_UNUSED __attribute__ ((__unused__))
2832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#   else
2842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#     define CYTHON_UNUSED
2852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#   endif
2862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
2872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#   define CYTHON_UNUSED __attribute__ ((__unused__))
2882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# else
2892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#   define CYTHON_UNUSED
2902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# endif
2912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
2942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Type Conversion Predeclarations */
2972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
2992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_PyBytes_AsUString(s)   ((unsigned char*) PyBytes_AsString(s))
3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
3022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
3032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
3042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
3052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
3072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
3082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
3092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON
3112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
3122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
3132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
3142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
3152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
3162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef __GNUC__
3182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* Test for GCC > 2.95 */
3192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
3202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define likely(x)   __builtin_expect(!!(x), 1)
3212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define unlikely(x) __builtin_expect(!!(x), 0)
3222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #else /* __GNUC__ > 2 ... */
3232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define likely(x)   (x)
3242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #define unlikely(x) (x)
3252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif /* __GNUC__ > 2 ... */
3262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else /* __GNUC__ */
3272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define likely(x)   (x)
3282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define unlikely(x) (x)
3292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* __GNUC__ */
3302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_m;
3322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_b;
3332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_empty_tuple;
3342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_empty_bytes;
3352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_lineno;
3362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_clineno = 0;
3372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static const char * __pyx_cfilenm= __FILE__;
3382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static const char *__pyx_filename;
3392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static const char *__pyx_f[] = {
3422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  "qbintree.pyx",
3432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  "cwalker.pxd",
3442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
3452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/*--- Type declarations ---*/
3472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_7cwalker_cWalker;
3482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_8qbintree_cBinaryTree;
3492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "cwalker.pxd":11
3512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from stack cimport node_stack_t
3522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
3532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cWalker:             # <<<<<<<<<<<<<<
3542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     cdef node_t *node
3552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     cdef node_t *root
3562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
3572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_7cwalker_cWalker {
3582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject_HEAD
3592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *__pyx_vtab;
3602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  node_t *node;
3612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  node_t *root;
3622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  node_stack_t *stack;
3632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
3642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":16
3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from ctrees cimport *
3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
3692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cBinaryTree:             # <<<<<<<<<<<<<<
3702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     cdef node_t *_root
3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     cdef int _count
3722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
3732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_8qbintree_cBinaryTree {
3742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject_HEAD
3752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  node_t *_root;
3762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int _count;
3772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
3782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "cwalker.pxd":11
3822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from stack cimport node_stack_t
3832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
3842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cWalker:             # <<<<<<<<<<<<<<
3852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     cdef node_t *node
3862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     cdef node_t *root
3872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
3882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker {
3902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  void (*set_tree)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, node_t *);
3912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *(*reset)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch);
3922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *(*push)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch);
3932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *(*pop)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch);
3942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
3952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *__pyx_vtabptr_8bintrees_7cwalker_cWalker;
3962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CYTHON_REFNANNY
3972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define CYTHON_REFNANNY 0
3982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
3992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_REFNANNY
4002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  typedef struct {
4012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void (*INCREF)(void*, PyObject*, int);
4022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void (*DECREF)(void*, PyObject*, int);
4032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void (*GOTREF)(void*, PyObject*, int);
4042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void (*GIVEREF)(void*, PyObject*, int);
4052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void* (*SetupContext)(const char*, int, const char*);
4062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void (*FinishContext)(void**);
4072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  } __Pyx_RefNannyAPIStruct;
4082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
4092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/
4102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
4112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef WITH_THREAD
4122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
4132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          if (acquire_gil) { \
4142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \
4152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
4162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              PyGILState_Release(__pyx_gilstate_save); \
4172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          } else { \
4182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
4192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          }
4202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
4212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
4222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
4232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
4242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_RefNannyFinishContext() \
4252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
4262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
4272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
4282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
4292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
4302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
4312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
4322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
4332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
4342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
4352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_RefNannyDeclarations
4362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_RefNannySetupContext(name, acquire_gil)
4372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_RefNannyFinishContext()
4382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_INCREF(r) Py_INCREF(r)
4392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_DECREF(r) Py_DECREF(r)
4402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_GOTREF(r)
4412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_GIVEREF(r)
4422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_XINCREF(r) Py_XINCREF(r)
4432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_XDECREF(r) Py_XDECREF(r)
4442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_XGOTREF(r)
4452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_XGIVEREF(r)
4462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* CYTHON_REFNANNY */
4472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
4482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
4492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
4502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
4512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
4522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/
4532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
4542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
4552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \
4562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const char* function_name); /*proto*/
4572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
4582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
4592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
4602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
4612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
4622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
4632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
4642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
4652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
4662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
4672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *r;
4682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!j) return NULL;
4692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    r = PyObject_GetItem(o, j);
4702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_DECREF(j);
4712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return r;
4722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
4732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_GetItemInt_List(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
4742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                                    __Pyx_GetItemInt_List_Fast(o, i) : \
4752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                                    __Pyx_GetItemInt_Generic(o, to_py_func(i)))
4762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) {
4772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON
4782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
4792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *r = PyList_GET_ITEM(o, i);
4802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_INCREF(r);
4812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return r;
4822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
4832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) {
4842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i);
4852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_INCREF(r);
4862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return r;
4872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
4882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
4892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
4902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return PySequence_GetItem(o, i);
4912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
4922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
4932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
4942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                                    __Pyx_GetItemInt_Tuple_Fast(o, i) : \
4952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                                    __Pyx_GetItemInt_Generic(o, to_py_func(i)))
4962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) {
4972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON
4982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
4992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *r = PyTuple_GET_ITEM(o, i);
5002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_INCREF(r);
5012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return r;
5022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
5032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) {
5042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i);
5052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_INCREF(r);
5062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return r;
5072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
5082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
5092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
5102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return PySequence_GetItem(o, i);
5112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
5122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
5132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
5142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                                    __Pyx_GetItemInt_Fast(o, i) : \
5152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                                    __Pyx_GetItemInt_Generic(o, to_py_func(i)))
5162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) {
5172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON
5182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (PyList_CheckExact(o)) {
5192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_ssize_t n = (likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
5202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (likely((n >= 0) & (n < PyList_GET_SIZE(o)))) {
5212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyObject *r = PyList_GET_ITEM(o, n);
5222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_INCREF(r);
5232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return r;
5242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
5252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
5262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    else if (PyTuple_CheckExact(o)) {
5272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_ssize_t n = (likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
5282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) {
5292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyObject *r = PyTuple_GET_ITEM(o, n);
5302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_INCREF(r);
5312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return r;
5322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
5332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {  /* inlined PySequence_GetItem() */
5342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
5352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (likely(m && m->sq_item)) {
5362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (unlikely(i < 0) && likely(m->sq_length)) {
5372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                Py_ssize_t l = m->sq_length(o);
5382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                if (unlikely(l < 0)) return NULL;
5392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                i += l;
5402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
5412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return m->sq_item(o, i);
5422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
5432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
5442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
5452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (PySequence_Check(o)) {
5462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return PySequence_GetItem(o, i);
5472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
5482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
5492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
5502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
5512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/
5532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
5552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
5572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);
5592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *);
5612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *);
5632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *);
5652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);
5672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);
5692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
5712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *);
5732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
5752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
5772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *);
5792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);
5812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
5832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
5852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_check_binary_version(void);
5872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if !defined(__Pyx_PyIdentifier_FromString)
5892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3
5902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
5912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
5922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
5932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
5942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
5952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_ImportModule(const char *name); /*proto*/
5972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);  /*proto*/
5992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void* __Pyx_GetVtable(PyObject *dict); /*proto*/
6012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef struct {
6032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    int code_line;
6042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyCodeObject* code_object;
6052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} __Pyx_CodeObjectCacheEntry;
6062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __Pyx_CodeObjectCache {
6072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    int count;
6082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    int max_count;
6092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_CodeObjectCacheEntry* entries;
6102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
6112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
6122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
6132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyCodeObject *__pyx_find_code_object(int code_line);
6142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
6152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_AddTraceback(const char *funcname, int c_line,
6172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                               int py_line, const char *filename); /*proto*/
6182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
6202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.ctrees' */
6232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.stack' */
6252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.cwalker' */
6272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject *__pyx_ptype_8bintrees_7cwalker_cWalker = 0;
6282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.qbintree' */
6302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject *__pyx_ptype_8bintrees_8qbintree_cBinaryTree = 0;
6312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_MODULE_NAME "bintrees.qbintree"
6322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int __pyx_module_is_main_bintrees__qbintree = 0;
6332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Implementation of 'bintrees.qbintree' */
6352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_property;
6362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_KeyError;
6372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_MemoryError;
6382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_ValueError;
6392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pf_8bintrees_8qbintree_11cBinaryTree___cinit__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_items); /* proto */
6402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pf_8bintrees_8qbintree_11cBinaryTree_2__dealloc__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */
6412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_4count(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */
6422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_6__getstate__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */
6432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_8__setstate__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_state); /* proto */
6442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_10clear(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */
6452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_12get_value(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
6462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_14get_walker(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */
6472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_16insert(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto */
6482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_18remove(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
6492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_20max_item(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */
6502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_22min_item(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */
6512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k_1[] = "Can not allocate memory for node structure.";
6522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k_3[] = "Tree is empty";
6532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__key[] = "key";
6542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__count[] = "count";
6552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__items[] = "items";
6562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__value[] = "value";
6572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__update[] = "update";
6582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k____all__[] = "__all__";
6592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__cWalker[] = "cWalker";
6602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__cwalker[] = "cwalker";
6612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__KeyError[] = "KeyError";
6622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k____main__[] = "__main__";
6632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k____test__[] = "__test__";
6642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__property[] = "property";
6652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__ValueError[] = "ValueError";
6662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__MemoryError[] = "MemoryError";
6672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__cBinaryTree[] = "cBinaryTree";
6682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_kp_s_1;
6692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_kp_s_3;
6702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__KeyError;
6712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__MemoryError;
6722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__ValueError;
6732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s____all__;
6742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s____main__;
6752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s____test__;
6762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__cBinaryTree;
6772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__cWalker;
6782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__count;
6792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__cwalker;
6802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__items;
6812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__key;
6822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__property;
6832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__update;
6842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__value;
6852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_int_0;
6862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_k_tuple_2;
6872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_k_tuple_4;
6882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_k_tuple_5;
6892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
6912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pw_8bintrees_8qbintree_11cBinaryTree_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pw_8bintrees_8qbintree_11cBinaryTree_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_v_items = 0;
6942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_r;
6952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
6962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
6972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {
6982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__items,0};
6992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject* values[1] = {0};
7002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
7012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /* "bintrees\qbintree.pyx":20
7022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     cdef int _count
7032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
7042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __cinit__(self, items=None):             # <<<<<<<<<<<<<<
7052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._root = NULL
7062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count = 0
7072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
7082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    values[0] = ((PyObject *)Py_None);
7092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (unlikely(__pyx_kwds)) {
7102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      Py_ssize_t kw_args;
7112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      switch (pos_args) {
7132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  0: break;
7152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        default: goto __pyx_L5_argtuple_error;
7162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      }
7172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      kw_args = PyDict_Size(__pyx_kwds);
7182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      switch (pos_args) {
7192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  0:
7202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (kw_args > 0) {
7212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__items);
7222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          if (value) { values[0] = value; kw_args--; }
7232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
7242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      }
7252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      if (unlikely(kw_args > 0)) {
7262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
7272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      }
7282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
7292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      switch (PyTuple_GET_SIZE(__pyx_args)) {
7302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  0: break;
7322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        default: goto __pyx_L5_argtuple_error;
7332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      }
7342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
7352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_v_items = values[0];
7362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
7372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L4_argument_unpacking_done;
7382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L5_argtuple_error:;
7392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
7402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L3_error:;
7412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
7432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return -1;
7442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L4_argument_unpacking_done:;
7452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree___cinit__(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), __pyx_v_items);
7462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
7472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
7482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
7492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
7502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pf_8bintrees_8qbintree_11cBinaryTree___cinit__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_items) {
7512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_r;
7522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
7532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_t_1;
7542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_2 = NULL;
7552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_3 = NULL;
7562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_4 = NULL;
7572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
7582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
7592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
7602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("__cinit__", 0);
7612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
7622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":21
7632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
7642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __cinit__(self, items=None):
7652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._root = NULL             # <<<<<<<<<<<<<<
7662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count = 0
7672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if items:
7682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
7692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_self->_root = NULL;
7702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
7712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":22
7722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __cinit__(self, items=None):
7732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._root = NULL
7742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count = 0             # <<<<<<<<<<<<<<
7752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if items:
7762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             self.update(items)
7772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
7782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_self->_count = 0;
7792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
7802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":23
7812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._root = NULL
7822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count = 0
7832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if items:             # <<<<<<<<<<<<<<
7842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             self.update(items)
7852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
7862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
7872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_items); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_t_1) {
7892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
7902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /* "bintrees\qbintree.pyx":24
7912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count = 0
7922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if items:
7932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             self.update(items)             # <<<<<<<<<<<<<<
7942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
7952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __dealloc__(self):
7962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
7972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__update); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
7982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_2);
7992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_3);
8012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_INCREF(__pyx_v_items);
8022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_items);
8032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GIVEREF(__pyx_v_items);
8042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_4);
8062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
8082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
8092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    goto __pyx_L3;
8102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
8112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L3:;
8122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = 0;
8142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
8152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
8162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_2);
8172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_3);
8182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_4);
8192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
8202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = -1;
8212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
8222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
8232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
8242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
8252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
8272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pw_8bintrees_8qbintree_11cBinaryTree_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
8282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pw_8bintrees_8qbintree_11cBinaryTree_3__dealloc__(PyObject *__pyx_v_self) {
8292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
8302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
8312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_pf_8bintrees_8qbintree_11cBinaryTree_2__dealloc__(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self));
8322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
8332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
8342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":26
8362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             self.update(items)
8372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
8382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __dealloc__(self):             # <<<<<<<<<<<<<<
8392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         ct_delete_tree(self._root)
8402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
8412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
8422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pf_8bintrees_8qbintree_11cBinaryTree_2__dealloc__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) {
8442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
8452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("__dealloc__", 0);
8462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":27
8482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
8492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __dealloc__(self):
8502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         ct_delete_tree(self._root)             # <<<<<<<<<<<<<<
8512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
8522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     @property
8532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
8542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ct_delete_tree(__pyx_v_self->_root);
8552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
8572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
8582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
8602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_5count(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
8612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_5count(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
8622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
8632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
8642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("count (wrapper)", 0);
8652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_4count(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self));
8662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
8672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
8682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
8692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":30
8712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
8722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     @property
8732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def count(self):             # <<<<<<<<<<<<<<
8742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return self._count
8752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
8762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
8772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_4count(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) {
8792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
8802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
8812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_1 = NULL;
8822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
8832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
8842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
8852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("count", 0);
8862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":31
8882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     @property
8892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def count(self):
8902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return self._count             # <<<<<<<<<<<<<<
8912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
8922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __getstate__(self):
8932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
8942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_r);
8952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
8962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
8972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_t_1;
8982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = 0;
8992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
9002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
9032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
9042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_1);
9052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.count", __pyx_clineno, __pyx_lineno, __pyx_filename);
9062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = NULL;
9072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
9082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
9092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
9102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
9112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
9122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
9142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_7__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
9152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_7__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
9162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
9172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
9182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0);
9192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_6__getstate__(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self));
9202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
9212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
9222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
9232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":33
9252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return self._count
9262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
9272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __getstate__(self):             # <<<<<<<<<<<<<<
9282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return dict(self.items())
9292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
9302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
9312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_6__getstate__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) {
9332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
9342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
9352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_1 = NULL;
9362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_2 = NULL;
9372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
9382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
9392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
9402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("__getstate__", 0);
9412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":34
9432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
9442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __getstate__(self):
9452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return dict(self.items())             # <<<<<<<<<<<<<<
9462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
9472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __setstate__(self, state):
9482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
9492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_r);
9502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
9522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_2);
9542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
9572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
9582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(__pyx_t_2);
9592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = 0;
9602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
9612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_2);
9622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
9632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_t_2;
9642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = 0;
9652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
9662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
9692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_1);
9712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_2);
9722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = NULL;
9742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
9752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
9762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
9772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
9782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
9792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
9812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_9__setstate__(PyObject *__pyx_v_self, PyObject *__pyx_v_state); /*proto*/
9822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_9__setstate__(PyObject *__pyx_v_self, PyObject *__pyx_v_state) {
9832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
9842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
9852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("__setstate__ (wrapper)", 0);
9862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_8__setstate__(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), ((PyObject *)__pyx_v_state));
9872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
9882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
9892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
9902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":36
9922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return dict(self.items())
9932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
9942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __setstate__(self, state):             # <<<<<<<<<<<<<<
9952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self.update(state)
9962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
9972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
9982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_8__setstate__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_state) {
10002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
10012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
10022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_1 = NULL;
10032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_2 = NULL;
10042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_3 = NULL;
10052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
10062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
10072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
10082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("__setstate__", 0);
10092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":37
10112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
10122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def __setstate__(self, state):
10132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self.update(state)             # <<<<<<<<<<<<<<
10142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
10152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def clear(self):
10162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
10172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__update); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
10192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_2);
10212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(__pyx_v_state);
10222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_state);
10232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(__pyx_v_state);
10242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
10252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_3);
10262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
10282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
10322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
10332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_1);
10342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_2);
10352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_3);
10362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = NULL;
10382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
10392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
10402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
10412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
10422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
10432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
10452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_11clear(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
10462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_11clear(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
10472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
10482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
10492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("clear (wrapper)", 0);
10502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_10clear(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self));
10512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
10522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
10532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
10542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":39
10562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self.update(state)
10572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
10582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def clear(self):             # <<<<<<<<<<<<<<
10592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         ct_delete_tree(self._root)
10602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count = 0
10612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
10622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_10clear(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) {
10642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
10652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
10662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("clear", 0);
10672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":40
10692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
10702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def clear(self):
10712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         ct_delete_tree(self._root)             # <<<<<<<<<<<<<<
10722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count = 0
10732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._root = NULL
10742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
10752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ct_delete_tree(__pyx_v_self->_root);
10762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":41
10782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def clear(self):
10792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         ct_delete_tree(self._root)
10802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count = 0             # <<<<<<<<<<<<<<
10812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._root = NULL
10822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
10832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
10842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_self->_count = 0;
10852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":42
10872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         ct_delete_tree(self._root)
10882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count = 0
10892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._root = NULL             # <<<<<<<<<<<<<<
10902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
10912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def get_value(self, key):
10922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
10932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_self->_root = NULL;
10942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
10972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
10982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
10992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
11002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
11012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
11022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_13get_value(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
11032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_13get_value(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
11042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
11052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
11062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("get_value (wrapper)", 0);
11072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_12get_value(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), ((PyObject *)__pyx_v_key));
11082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
11092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
11102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
11112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
11122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":44
11132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._root = NULL
11142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
11152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def get_value(self, key):             # <<<<<<<<<<<<<<
11162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         result = <object> ct_get_item(self._root, key)
11172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if result is None:
11182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
11192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
11202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_12get_value(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key) {
11212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_v_result = NULL;
11222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
11232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
11242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_1;
11252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_t_2;
11262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_3 = NULL;
11272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_4 = NULL;
11282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
11292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
11302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
11312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("get_value", 0);
11322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
11332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":45
11342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
11352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def get_value(self, key):
11362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         result = <object> ct_get_item(self._root, key)             # <<<<<<<<<<<<<<
11372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if result is None:
11382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise KeyError(key)
11392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
11402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = ct_get_item(__pyx_v_self->_root, __pyx_v_key);
11412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_t_1));
11422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_result = ((PyObject *)__pyx_t_1);
11432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
11442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":46
11452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def get_value(self, key):
11462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         result = <object> ct_get_item(self._root, key)
11472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if result is None:             # <<<<<<<<<<<<<<
11482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise KeyError(key)
11492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         else:
11502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
11512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = (__pyx_v_result == Py_None);
11522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_t_2) {
11532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
11542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /* "bintrees\qbintree.pyx":47
11552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         result = <object> ct_get_item(self._root, key)
11562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if result is None:
11572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise KeyError(key)             # <<<<<<<<<<<<<<
11582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         else:
11592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             return result[1]
11602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
11612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
11622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_3);
11632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_INCREF(__pyx_v_key);
11642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
11652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GIVEREF(__pyx_v_key);
11662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_4 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
11672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_4);
11682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
11692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
11702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
11722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    goto __pyx_L3;
11732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
11742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*else*/ {
11752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
11762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /* "bintrees\qbintree.pyx":49
11772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise KeyError(key)
11782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         else:
11792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             return result[1]             # <<<<<<<<<<<<<<
11802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
11812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def get_walker(self):
11822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
11832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_XDECREF(__pyx_r);
11842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_result, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
11852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_4);
11862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_r = __pyx_t_4;
11872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_4 = 0;
11882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    goto __pyx_L0;
11892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
11902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L3:;
11912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
11922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
11942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
11952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_3);
11962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_4);
11972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.get_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
11982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = NULL;
11992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
12002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_v_result);
12012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
12022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
12032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
12042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
12052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
12062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
12072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_15get_walker(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
12082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_15get_walker(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
12092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
12102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
12112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("get_walker (wrapper)", 0);
12122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_14get_walker(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self));
12132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
12142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
12152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
12162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
12172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":51
12182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             return result[1]
12192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
12202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def get_walker(self):             # <<<<<<<<<<<<<<
12212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef cWalker walker
12222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         walker = cWalker()
12232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
12242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
12252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_14get_walker(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) {
12262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_walker = 0;
12272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
12282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
12292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_1 = NULL;
12302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
12312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
12322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
12332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("get_walker", 0);
12342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
12352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":53
12362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def get_walker(self):
12372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef cWalker walker
12382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         walker = cWalker()             # <<<<<<<<<<<<<<
12392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         walker.set_tree(self._root)
12402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return walker
12412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
12422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_8bintrees_7cwalker_cWalker)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
12432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
12442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_walker = ((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_t_1);
12452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = 0;
12462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
12472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":54
12482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef cWalker walker
12492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         walker = cWalker()
12502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         walker.set_tree(self._root)             # <<<<<<<<<<<<<<
12512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return walker
12522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
12532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
12542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ((struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *)__pyx_v_walker->__pyx_vtab)->set_tree(__pyx_v_walker, __pyx_v_self->_root);
12552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
12562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":55
12572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         walker = cWalker()
12582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         walker.set_tree(self._root)
12592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return walker             # <<<<<<<<<<<<<<
12602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
12612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def insert(self, key, value):
12622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
12632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_r);
12642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_v_walker));
12652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = ((PyObject *)__pyx_v_walker);
12662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
12672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
12682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
12692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
12702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
12712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_1);
12722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.get_walker", __pyx_clineno, __pyx_lineno, __pyx_filename);
12732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = NULL;
12742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
12752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF((PyObject *)__pyx_v_walker);
12762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
12772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
12782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
12792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
12802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
12812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
12822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_17insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
12832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_17insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
12842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_v_key = 0;
12852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_v_value = 0;
12862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
12872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
12882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("insert (wrapper)", 0);
12892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {
12902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__value,0};
12912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject* values[2] = {0,0};
12922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (unlikely(__pyx_kwds)) {
12932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      Py_ssize_t kw_args;
12942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
12952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      switch (pos_args) {
12962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
12972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
12982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  0: break;
12992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        default: goto __pyx_L5_argtuple_error;
13002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      }
13012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      kw_args = PyDict_Size(__pyx_kwds);
13022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      switch (pos_args) {
13032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  0:
13042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key)) != 0)) kw_args--;
13052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        else goto __pyx_L5_argtuple_error;
13062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        case  1:
13072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value)) != 0)) kw_args--;
13082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        else {
13092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
13112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      }
13122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      if (unlikely(kw_args > 0)) {
13132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insert") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      }
13152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
13162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      goto __pyx_L5_argtuple_error;
13172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
13182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
13192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
13202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
13212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_v_key = values[0];
13222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_v_value = values[1];
13232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
13242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L4_argument_unpacking_done;
13252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L5_argtuple_error:;
13262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
13272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L3_error:;
13282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
13292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
13302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return NULL;
13312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L4_argument_unpacking_done:;
13322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_16insert(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), __pyx_v_key, __pyx_v_value);
13332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
13342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
13352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
13362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":57
13382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return walker
13392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
13402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def insert(self, key, value):             # <<<<<<<<<<<<<<
13412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         res = ct_bintree_insert(&self._root, key, value)
13422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if res < 0:
13432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
13442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_16insert(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) {
13462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_v_res = NULL;
13472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
13482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
13492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_1 = NULL;
13502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_t_2;
13512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_3 = NULL;
13522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_t_4;
13532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
13542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
13552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
13562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("insert", 0);
13572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":58
13592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
13602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def insert(self, key, value):
13612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         res = ct_bintree_insert(&self._root, key, value)             # <<<<<<<<<<<<<<
13622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if res < 0:
13632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise MemoryError('Can not allocate memory for node structure.')
13642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
13652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyInt_FromLong(ct_bintree_insert((&__pyx_v_self->_root), __pyx_v_key, __pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
13662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
13672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_res = __pyx_t_1;
13682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = 0;
13692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":59
13712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def insert(self, key, value):
13722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         res = ct_bintree_insert(&self._root, key, value)
13732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if res < 0:             # <<<<<<<<<<<<<<
13742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise MemoryError('Can not allocate memory for node structure.')
13752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count += res
13762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
13772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyObject_RichCompare(__pyx_v_res, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
13782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
13792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_t_2) {
13812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /* "bintrees\qbintree.pyx":60
13832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         res = ct_bintree_insert(&self._root, key, value)
13842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if res < 0:
13852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise MemoryError('Can not allocate memory for node structure.')             # <<<<<<<<<<<<<<
13862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count += res
13872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
13882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
13892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_1 = PyObject_Call(__pyx_builtin_MemoryError, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
13902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_1);
13912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
13922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
13942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    goto __pyx_L3;
13952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
13962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L3:;
13972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":61
13992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if res < 0:
14002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise MemoryError('Can not allocate memory for node structure.')
14012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count += res             # <<<<<<<<<<<<<<
14022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
14032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def remove(self, key):
14042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
14052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyInt_FromLong(__pyx_v_self->_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
14072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_v_res); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_3);
14092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_self->_count = __pyx_t_4;
14132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
14162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
14172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_1);
14182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_3);
14192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
14202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = NULL;
14212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
14222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_v_res);
14232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
14242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
14252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
14262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
14272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
14292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_19remove(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
14302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_19remove(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
14312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
14322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
14332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("remove (wrapper)", 0);
14342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_18remove(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), ((PyObject *)__pyx_v_key));
14352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
14362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
14372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
14382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":63
14402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count += res
14412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
14422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def remove(self, key):             # <<<<<<<<<<<<<<
14432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef int result
14442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         result =  ct_bintree_remove(&self._root, key)
14452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
14462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_18remove(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key) {
14482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_v_result;
14492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
14502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
14512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_t_1;
14522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_2 = NULL;
14532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_3 = NULL;
14542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
14552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
14562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
14572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("remove", 0);
14582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":65
14602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def remove(self, key):
14612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef int result
14622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         result =  ct_bintree_remove(&self._root, key)             # <<<<<<<<<<<<<<
14632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if result == 0:
14642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise KeyError(str(key))
14652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
14662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_result = ct_bintree_remove((&__pyx_v_self->_root), __pyx_v_key);
14672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":66
14692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef int result
14702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         result =  ct_bintree_remove(&self._root, key)
14712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if result == 0:             # <<<<<<<<<<<<<<
14722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise KeyError(str(key))
14732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         else:
14742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
14752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = (__pyx_v_result == 0);
14762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_t_1) {
14772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /* "bintrees\qbintree.pyx":67
14792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         result =  ct_bintree_remove(&self._root, key)
14802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if result == 0:
14812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise KeyError(str(key))             # <<<<<<<<<<<<<<
14822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         else:
14832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             self._count -= 1
14842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
14852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_2);
14872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_INCREF(__pyx_v_key);
14882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key);
14892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GIVEREF(__pyx_v_key);
14902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_3);
14922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
14932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_2);
14952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
14962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GIVEREF(__pyx_t_3);
14972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_3 = 0;
14982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_3 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
14992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_3);
15002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
15012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
15022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    goto __pyx_L3;
15052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
15062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*else*/ {
15072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /* "bintrees\qbintree.pyx":69
15092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise KeyError(str(key))
15102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         else:
15112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             self._count -= 1             # <<<<<<<<<<<<<<
15122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
15132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def max_item(self):
15142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
15152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_v_self->_count = (__pyx_v_self->_count - 1);
15162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
15172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L3:;
15182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
15212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
15222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_2);
15232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_3);
15242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.remove", __pyx_clineno, __pyx_lineno, __pyx_filename);
15252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = NULL;
15262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
15272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
15282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
15292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
15302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
15312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
15332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_21max_item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
15342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_doc_8bintrees_8qbintree_11cBinaryTree_20max_item[] = " Get item with max key of tree, raises ValueError if tree is empty. ";
15352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_21max_item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
15362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
15372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
15382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("max_item (wrapper)", 0);
15392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_20max_item(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self));
15402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
15412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
15422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
15432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":71
15452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             self._count -= 1
15462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
15472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def max_item(self):             # <<<<<<<<<<<<<<
15482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         """ Get item with max key of tree, raises ValueError if tree is empty. """
15492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef node_t *node
15502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
15512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_20max_item(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) {
15532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  node_t *__pyx_v_node;
15542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
15552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
15562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_t_1;
15572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_2 = NULL;
15582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
15592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
15602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
15612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("max_item", 0);
15622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":74
15642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         """ Get item with max key of tree, raises ValueError if tree is empty. """
15652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef node_t *node
15662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         node = ct_max_node(self._root)             # <<<<<<<<<<<<<<
15672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None
15682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")
15692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
15702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_node = ct_max_node(__pyx_v_self->_root);
15712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":75
15732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef node_t *node
15742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         node = ct_max_node(self._root)
15752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None             # <<<<<<<<<<<<<<
15762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")
15772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return (<object>node.key, <object>node.value)
15782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
15792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = (__pyx_v_node == NULL);
15802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_t_1) {
15812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /* "bintrees\qbintree.pyx":76
15832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         node = ct_max_node(self._root)
15842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None
15852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")             # <<<<<<<<<<<<<<
15862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return (<object>node.key, <object>node.value)
15872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
15882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
15892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_2);
15912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
15922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
15942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    goto __pyx_L3;
15952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
15962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L3:;
15972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":77
15992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None
16002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")
16012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return (<object>node.key, <object>node.value)             # <<<<<<<<<<<<<<
16022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
16032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def min_item(self):
16042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
16052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_r);
16062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_2);
16082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_v_node->key));
16092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_node->key));
16102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_v_node->key));
16112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_v_node->value));
16122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_node->value));
16132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_v_node->value));
16142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = ((PyObject *)__pyx_t_2);
16152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = 0;
16162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
16172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
16182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
16202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
16212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_2);
16222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.max_item", __pyx_clineno, __pyx_lineno, __pyx_filename);
16232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = NULL;
16242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
16252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
16262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
16272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
16282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
16292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
16302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */
16312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_23min_item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
16322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_doc_8bintrees_8qbintree_11cBinaryTree_22min_item[] = " Get item with min key of tree, raises ValueError if tree is empty. ";
16332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_23min_item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
16342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = 0;
16352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
16362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("min_item (wrapper)", 0);
16372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_22min_item(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self));
16382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
16392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
16402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
16412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
16422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":79
16432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return (<object>node.key, <object>node.value)
16442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
16452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def min_item(self):             # <<<<<<<<<<<<<<
16462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         """ Get item with min key of tree, raises ValueError if tree is empty. """
16472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef node_t *node
16482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
16492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
16502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_22min_item(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) {
16512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  node_t *__pyx_v_node;
16522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_r = NULL;
16532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
16542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_t_1;
16552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_2 = NULL;
16562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_lineno = 0;
16572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *__pyx_filename = NULL;
16582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int __pyx_clineno = 0;
16592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("min_item", 0);
16602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
16612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":82
16622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         """ Get item with min key of tree, raises ValueError if tree is empty. """
16632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef node_t *node
16642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         node = ct_min_node(self._root)             # <<<<<<<<<<<<<<
16652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None
16662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")
16672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
16682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_v_node = ct_min_node(__pyx_v_self->_root);
16692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
16702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":83
16712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         cdef node_t *node
16722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         node = ct_min_node(self._root)
16732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None             # <<<<<<<<<<<<<<
16742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")
16752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return (<object>node.key, <object>node.value)
16762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
16772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = (__pyx_v_node == NULL);
16782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_t_1) {
16792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
16802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /* "bintrees\qbintree.pyx":84
16812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         node = ct_min_node(self._root)
16822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None
16832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")             # <<<<<<<<<<<<<<
16842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return (<object>node.key, <object>node.value)
16852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
16862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_5), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_GOTREF(__pyx_t_2);
16882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
16892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
16912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    goto __pyx_L3;
16922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
16932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L3:;
16942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
16952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":85
16962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None
16972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")
16982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return (<object>node.key, <object>node.value)             # <<<<<<<<<<<<<<
16992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
17002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_r);
17012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
17022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_2);
17032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_v_node->key));
17042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_node->key));
17052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_v_node->key));
17062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_v_node->value));
17072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_node->value));
17082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_v_node->value));
17092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = ((PyObject *)__pyx_t_2);
17102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = 0;
17112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
17122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
17132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
17152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
17162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_2);
17172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.min_item", __pyx_clineno, __pyx_lineno, __pyx_filename);
17182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_r = NULL;
17192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
17202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XGIVEREF(__pyx_r);
17212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
17222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_r;
17232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
17242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
17252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_tp_new_8bintrees_8qbintree_cBinaryTree(PyTypeObject *t, PyObject *a, PyObject *k) {
17262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *o = (*t->tp_alloc)(t, 0);
17272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (!o) return 0;
17282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_pw_8bintrees_8qbintree_11cBinaryTree_1__cinit__(o, a, k) < 0) {
17292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_DECREF(o); o = 0;
17302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
17312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return o;
17322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
17332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
17342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_tp_dealloc_8bintrees_8qbintree_cBinaryTree(PyObject *o) {
17352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {
17362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *etype, *eval, *etb;
17372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_Fetch(&etype, &eval, &etb);
17382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    ++Py_REFCNT(o);
17392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_pw_8bintrees_8qbintree_11cBinaryTree_3__dealloc__(o);
17402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
17412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    --Py_REFCNT(o);
17422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_Restore(etype, eval, etb);
17432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
17442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  (*Py_TYPE(o)->tp_free)(o);
17452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
17462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
17472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyMethodDef __pyx_methods_8bintrees_8qbintree_cBinaryTree[] = {
17482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("count"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_5count, METH_NOARGS, __Pyx_DOCSTR(0)},
17492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("__getstate__"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_7__getstate__, METH_NOARGS, __Pyx_DOCSTR(0)},
17502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("__setstate__"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_9__setstate__, METH_O, __Pyx_DOCSTR(0)},
17512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("clear"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_11clear, METH_NOARGS, __Pyx_DOCSTR(0)},
17522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("get_value"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_13get_value, METH_O, __Pyx_DOCSTR(0)},
17532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("get_walker"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_15get_walker, METH_NOARGS, __Pyx_DOCSTR(0)},
17542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_17insert, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
17552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("remove"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_19remove, METH_O, __Pyx_DOCSTR(0)},
17562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("max_item"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_21max_item, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_8bintrees_8qbintree_11cBinaryTree_20max_item)},
17572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {__Pyx_NAMESTR("min_item"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_23min_item, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_8bintrees_8qbintree_11cBinaryTree_22min_item)},
17582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {0, 0, 0, 0}
17592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
17602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
17612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyNumberMethods __pyx_tp_as_number_cBinaryTree = {
17622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_add*/
17632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_subtract*/
17642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_multiply*/
17652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
17662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_divide*/
17672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
17682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_remainder*/
17692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_divmod*/
17702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_power*/
17712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_negative*/
17722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_positive*/
17732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_absolute*/
17742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_nonzero*/
17752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_invert*/
17762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_lshift*/
17772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_rshift*/
17782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_and*/
17792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_xor*/
17802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_or*/
17812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
17822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_coerce*/
17832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
17842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_int*/
17852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
17862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_long*/
17872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #else
17882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*reserved*/
17892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
17902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_float*/
17912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
17922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_oct*/
17932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
17942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
17952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_hex*/
17962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
17972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_add*/
17982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_subtract*/
17992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_multiply*/
18002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
18012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_divide*/
18022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
18032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_remainder*/
18042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_power*/
18052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_lshift*/
18062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_rshift*/
18072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_and*/
18082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_xor*/
18092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_or*/
18102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_floor_divide*/
18112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_true_divide*/
18122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_floor_divide*/
18132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_inplace_true_divide*/
18142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_VERSION_HEX >= 0x02050000
18152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*nb_index*/
18162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
18172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
18182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
18192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PySequenceMethods __pyx_tp_as_sequence_cBinaryTree = {
18202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_length*/
18212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_concat*/
18222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_repeat*/
18232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_item*/
18242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_slice*/
18252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_ass_item*/
18262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_ass_slice*/
18272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_contains*/
18282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_inplace_concat*/
18292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*sq_inplace_repeat*/
18302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
18312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
18322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyMappingMethods __pyx_tp_as_mapping_cBinaryTree = {
18332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*mp_length*/
18342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*mp_subscript*/
18352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*mp_ass_subscript*/
18362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
18372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
18382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyBufferProcs __pyx_tp_as_buffer_cBinaryTree = {
18392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
18402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*bf_getreadbuffer*/
18412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
18422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
18432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*bf_getwritebuffer*/
18442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
18452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
18462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*bf_getsegcount*/
18472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
18482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
18492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*bf_getcharbuffer*/
18502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
18512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_VERSION_HEX >= 0x02060000
18522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*bf_getbuffer*/
18532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
18542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_VERSION_HEX >= 0x02060000
18552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*bf_releasebuffer*/
18562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
18572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
18582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
18592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject __pyx_type_8bintrees_8qbintree_cBinaryTree = {
18602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyVarObject_HEAD_INIT(0, 0)
18612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_NAMESTR("bintrees.qbintree.cBinaryTree"), /*tp_name*/
18622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  sizeof(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree), /*tp_basicsize*/
18632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_itemsize*/
18642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_tp_dealloc_8bintrees_8qbintree_cBinaryTree, /*tp_dealloc*/
18652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_print*/
18662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_getattr*/
18672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_setattr*/
18682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
18692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_compare*/
18702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #else
18712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*reserved*/
18722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
18732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_repr*/
18742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  &__pyx_tp_as_number_cBinaryTree, /*tp_as_number*/
18752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  &__pyx_tp_as_sequence_cBinaryTree, /*tp_as_sequence*/
18762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  &__pyx_tp_as_mapping_cBinaryTree, /*tp_as_mapping*/
18772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_hash*/
18782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_call*/
18792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_str*/
18802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_getattro*/
18812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_setattro*/
18822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  &__pyx_tp_as_buffer_cBinaryTree, /*tp_as_buffer*/
18832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
18842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_doc*/
18852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_traverse*/
18862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_clear*/
18872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_richcompare*/
18882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_weaklistoffset*/
18892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_iter*/
18902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_iternext*/
18912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_methods_8bintrees_8qbintree_cBinaryTree, /*tp_methods*/
18922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_members*/
18932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_getset*/
18942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_base*/
18952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_dict*/
18962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_descr_get*/
18972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_descr_set*/
18982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_dictoffset*/
18992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_init*/
19002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_alloc*/
19012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_tp_new_8bintrees_8qbintree_cBinaryTree, /*tp_new*/
19022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_free*/
19032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_is_gc*/
19042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_bases*/
19052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_mro*/
19062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_cache*/
19072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_subclasses*/
19082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_weaklist*/
19092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_del*/
19102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_VERSION_HEX >= 0x02060000
19112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  0, /*tp_version_tag*/
19122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
19132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
19142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
19152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyMethodDef __pyx_methods[] = {
19162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {0, 0, 0, 0}
19172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
19182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
19192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3
19202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct PyModuleDef __pyx_moduledef = {
19212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyModuleDef_HEAD_INIT,
19222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_NAMESTR("qbintree"),
19232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    0, /* m_doc */
19242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    -1, /* m_size */
19252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_methods /* m_methods */,
19262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    NULL, /* m_reload */
19272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    NULL, /* m_traverse */
19282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    NULL, /* m_clear */
19292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    NULL /* m_free */
19302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
19312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
19322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
19332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static __Pyx_StringTabEntry __pyx_string_tab[] = {
19342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0},
19352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0},
19362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__KeyError, __pyx_k__KeyError, sizeof(__pyx_k__KeyError), 0, 0, 1, 1},
19372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__MemoryError, __pyx_k__MemoryError, sizeof(__pyx_k__MemoryError), 0, 0, 1, 1},
19382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1},
19392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s____all__, __pyx_k____all__, sizeof(__pyx_k____all__), 0, 0, 1, 1},
19402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
19412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1},
19422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__cBinaryTree, __pyx_k__cBinaryTree, sizeof(__pyx_k__cBinaryTree), 0, 0, 1, 1},
19432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__cWalker, __pyx_k__cWalker, sizeof(__pyx_k__cWalker), 0, 0, 1, 1},
19442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__count, __pyx_k__count, sizeof(__pyx_k__count), 0, 0, 1, 1},
19452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__cwalker, __pyx_k__cwalker, sizeof(__pyx_k__cwalker), 0, 0, 1, 1},
19462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__items, __pyx_k__items, sizeof(__pyx_k__items), 0, 0, 1, 1},
19472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__key, __pyx_k__key, sizeof(__pyx_k__key), 0, 0, 1, 1},
19482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__property, __pyx_k__property, sizeof(__pyx_k__property), 0, 0, 1, 1},
19492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__update, __pyx_k__update, sizeof(__pyx_k__update), 0, 0, 1, 1},
19502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {&__pyx_n_s__value, __pyx_k__value, sizeof(__pyx_k__value), 0, 0, 1, 1},
19512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {0, 0, 0, 0, 0, 0, 0}
19522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
19532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitCachedBuiltins(void) {
19542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_builtin_property = __Pyx_GetName(__pyx_b, __pyx_n_s__property); if (!__pyx_builtin_property) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_builtin_KeyError = __Pyx_GetName(__pyx_b, __pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_builtin_MemoryError = __Pyx_GetName(__pyx_b, __pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return 0;
19592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
19602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return -1;
19612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
19622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
19632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitCachedConstants(void) {
19642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
19652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
19662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
19672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":60
19682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         res = ct_bintree_insert(&self._root, key, value)
19692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if res < 0:
19702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise MemoryError('Can not allocate memory for node structure.')             # <<<<<<<<<<<<<<
19712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         self._count += res
19722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
19732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
19742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_k_tuple_2 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_k_tuple_2);
19762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_kp_s_1));
19772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_k_tuple_2, 0, ((PyObject *)__pyx_kp_s_1));
19782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_1));
19792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2));
19802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
19812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":76
19822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         node = ct_max_node(self._root)
19832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None
19842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")             # <<<<<<<<<<<<<<
19852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return (<object>node.key, <object>node.value)
19862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
19872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
19882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_k_tuple_4 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
19892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_k_tuple_4);
19902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_kp_s_3));
19912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_k_tuple_4, 0, ((PyObject *)__pyx_kp_s_3));
19922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_3));
19932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_4));
19942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
19952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":84
19962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         node = ct_min_node(self._root)
19972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         if node == NULL: # root is None
19982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *             raise ValueError("Tree is empty")             # <<<<<<<<<<<<<<
19992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return (<object>node.key, <object>node.value)
20002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
20012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_k_tuple_5 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_k_tuple_5);
20032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_kp_s_3));
20042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_k_tuple_5, 0, ((PyObject *)__pyx_kp_s_3));
20052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_3));
20062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_5));
20072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
20082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return 0;
20092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
20102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
20112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return -1;
20122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
20132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
20142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitGlobals(void) {
20152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
20162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
20172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return 0;
20182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
20192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return -1;
20202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
20212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
20222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3
20232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC initqbintree(void); /*proto*/
20242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC initqbintree(void)
20252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
20262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC PyInit_qbintree(void); /*proto*/
20272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC PyInit_qbintree(void)
20282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
20292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
20302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_1 = NULL;
20312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *__pyx_t_2 = NULL;
20322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyDeclarations
20332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if CYTHON_REFNANNY
20342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
20352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (!__Pyx_RefNanny) {
20362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      PyErr_Clear();
20372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
20382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      if (!__Pyx_RefNanny)
20392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          Py_FatalError("failed to import 'refnanny' module");
20402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
20412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
20422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_qbintree(void)", 0);
20432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #ifdef __Pyx_CyFunction_USED
20472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
20492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #ifdef __Pyx_FusedFunction_USED
20502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
20522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #ifdef __Pyx_Generator_USED
20532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
20552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Library function declarations ---*/
20562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Threads initialization code ---*/
20572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
20582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #ifdef WITH_THREAD /* Python build with threading support? */
20592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyEval_InitThreads();
20602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
20612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
20622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Module creation code ---*/
20632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
20642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("qbintree"), __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
20652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #else
20662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_m = PyModule_Create(&__pyx_moduledef);
20672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
20682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION >= 3
20702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  {
20712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!PyDict_GetItemString(modules, "bintrees.qbintree")) {
20732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      if (unlikely(PyDict_SetItemString(modules, "bintrees.qbintree", __pyx_m) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
20752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
20762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
20772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if CYTHON_COMPILING_IN_PYPY
20792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Py_INCREF(__pyx_b);
20802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
20812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
20822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Initialize various global constants etc. ---*/
20832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_module_is_main_bintrees__qbintree) {
20852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
20862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
20872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Builtin init code ---*/
20882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Constants init code ---*/
20902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Global init code ---*/
20922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Variable export code ---*/
20932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Function export code ---*/
20942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Type init code ---*/
20952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (PyType_Ready(&__pyx_type_8bintrees_8qbintree_cBinaryTree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__Pyx_SetAttrString(__pyx_m, "cBinaryTree", (PyObject *)&__pyx_type_8bintrees_8qbintree_cBinaryTree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
20972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_ptype_8bintrees_8qbintree_cBinaryTree = &__pyx_type_8bintrees_8qbintree_cBinaryTree;
20982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Type import code ---*/
20992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_ptype_8bintrees_7cwalker_cWalker = __Pyx_ImportType("bintrees.cwalker", "cWalker", sizeof(struct __pyx_obj_8bintrees_7cwalker_cWalker), 1); if (unlikely(!__pyx_ptype_8bintrees_7cwalker_cWalker)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_vtabptr_8bintrees_7cwalker_cWalker = (struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker*)__Pyx_GetVtable(__pyx_ptype_8bintrees_7cwalker_cWalker->tp_dict); if (unlikely(!__pyx_vtabptr_8bintrees_7cwalker_cWalker)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Variable import code ---*/
21022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Function import code ---*/
21032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /*--- Execution code ---*/
21042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
21052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":9
21062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * # License: MIT License
21072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
21082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * __all__ = ['cBinaryTree']             # <<<<<<<<<<<<<<
21092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
21102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from cwalker import cWalker
21112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
21122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
21142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_n_s__cBinaryTree));
21152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__cBinaryTree));
21162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cBinaryTree));
21172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____all__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
21192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
21202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":11
21212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * __all__ = ['cBinaryTree']
21222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
21232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from cwalker import cWalker             # <<<<<<<<<<<<<<
21242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
21252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from cwalker cimport *
21262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
21272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
21292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_INCREF(((PyObject *)__pyx_n_s__cWalker));
21302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__cWalker));
21312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cWalker));
21322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__cwalker), ((PyObject *)__pyx_t_1), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_2);
21342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
21352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
21372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":30
21382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
21392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     @property
21402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *     def count(self):             # <<<<<<<<<<<<<<
21412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *         return self._count
21422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
21432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
21442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_8bintrees_8qbintree_cBinaryTree, __pyx_n_s__count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_2);
21462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_1);
21482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
21492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GIVEREF(__pyx_t_2);
21502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = 0;
21512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(__pyx_t_2);
21532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
21542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (PyDict_SetItem((PyObject *)__pyx_ptype_8bintrees_8qbintree_cBinaryTree->tp_dict, __pyx_n_s__count, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyType_Modified(__pyx_ptype_8bintrees_8qbintree_cBinaryTree);
21572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
21582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  /* "bintrees\qbintree.pyx":1
21592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * #!/usr/bin/env python             # <<<<<<<<<<<<<<
21602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * #coding:utf-8
21612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * # Author:  mozman
21622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
21632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
21652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
21662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
21672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  goto __pyx_L0;
21682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L1_error:;
21692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_1);
21702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_XDECREF(__pyx_t_2);
21712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (__pyx_m) {
21722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_AddTraceback("init bintrees.qbintree", __pyx_clineno, __pyx_lineno, __pyx_filename);
21732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_DECREF(__pyx_m); __pyx_m = 0;
21742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  } else if (!PyErr_Occurred()) {
21752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_SetString(PyExc_ImportError, "init bintrees.qbintree");
21762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
21772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __pyx_L0:;
21782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  __Pyx_RefNannyFinishContext();
21792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #if PY_MAJOR_VERSION < 3
21802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return;
21812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #else
21822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return __pyx_m;
21832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  #endif
21842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
21852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
21862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Runtime support code */
21872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_REFNANNY
21882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
21892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *m = NULL, *p = NULL;
21902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void *r = NULL;
21912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    m = PyImport_ImportModule((char *)modname);
21922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!m) goto end;
21932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
21942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!p) goto end;
21952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    r = PyLong_AsVoidPtr(p);
21962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)end:
21972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(p);
21982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(m);
21992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (__Pyx_RefNannyAPIStruct *)r;
22002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
22012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* CYTHON_REFNANNY */
22022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
22032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
22042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *result;
22052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    result = PyObject_GetAttr(dict, name);
22062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!result) {
22072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (dict != __pyx_b) {
22082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_Clear();
22092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            result = PyObject_GetAttr(__pyx_b, name);
22102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
22112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!result) {
22122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetObject(PyExc_NameError, name);
22132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
22142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
22152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return result;
22162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
22172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
22182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseDoubleKeywordsError(
22192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const char* func_name,
22202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject* kw_name)
22212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
22222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_Format(PyExc_TypeError,
22232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #if PY_MAJOR_VERSION >= 3
22242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
22252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #else
22262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        "%s() got multiple values for keyword argument '%s'", func_name,
22272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyString_AsString(kw_name));
22282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #endif
22292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
22302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
22312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_ParseOptionalKeywords(
22322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *kwds,
22332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject **argnames[],
22342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *kwds2,
22352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *values[],
22362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_ssize_t num_pos_args,
22372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const char* function_name)
22382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
22392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *key = 0, *value = 0;
22402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_ssize_t pos = 0;
22412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject*** name;
22422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject*** first_kw_arg = argnames + num_pos_args;
22432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    while (PyDict_Next(kwds, &pos, &key, &value)) {
22442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        name = first_kw_arg;
22452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        while (*name && (**name != key)) name++;
22462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (*name) {
22472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            values[name-argnames] = value;
22482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            continue;
22492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
22502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        name = first_kw_arg;
22512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #if PY_MAJOR_VERSION < 3
22522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) {
22532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            while (*name) {
22542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
22552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        && _PyString_Eq(**name, key)) {
22562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    values[name-argnames] = value;
22572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    break;
22582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                }
22592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                name++;
22602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
22612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (*name) continue;
22622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            else {
22632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyObject*** argname = argnames;
22642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                while (argname != first_kw_arg) {
22652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    if ((**argname == key) || (
22662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
22672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                             && _PyString_Eq(**argname, key))) {
22682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        goto arg_passed_twice;
22692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    }
22702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    argname++;
22712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                }
22722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
22732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else
22742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #endif
22752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (likely(PyUnicode_Check(key))) {
22762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            while (*name) {
22772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                int cmp = (**name == key) ? 0 :
22782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
22792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
22802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                #endif
22812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    PyUnicode_Compare(**name, key);
22822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
22832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                if (cmp == 0) {
22842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    values[name-argnames] = value;
22852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    break;
22862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                }
22872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                name++;
22882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
22892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (*name) continue;
22902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            else {
22912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyObject*** argname = argnames;
22922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                while (argname != first_kw_arg) {
22932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    int cmp = (**argname == key) ? 0 :
22942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
22952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
22962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    #endif
22972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        PyUnicode_Compare(**argname, key);
22982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
22992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    if (cmp == 0) goto arg_passed_twice;
23002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    argname++;
23012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                }
23022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
23032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else
23042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto invalid_keyword_type;
23052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (kwds2) {
23062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
23072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
23082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto invalid_keyword;
23092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
23102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
23112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return 0;
23122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)arg_passed_twice:
23132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_RaiseDoubleKeywordsError(function_name, key);
23142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    goto bad;
23152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)invalid_keyword_type:
23162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_Format(PyExc_TypeError,
23172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        "%s() keywords must be strings", function_name);
23182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    goto bad;
23192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)invalid_keyword:
23202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_Format(PyExc_TypeError,
23212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #if PY_MAJOR_VERSION < 3
23222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        "%s() got an unexpected keyword argument '%s'",
23232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        function_name, PyString_AsString(key));
23242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #else
23252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        "%s() got an unexpected keyword argument '%U'",
23262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        function_name, key);
23272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #endif
23282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad:
23292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return -1;
23302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
23312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
23322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseArgtupleInvalid(
23332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const char* func_name,
23342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    int exact,
23352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_ssize_t num_min,
23362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_ssize_t num_max,
23372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_ssize_t num_found)
23382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
23392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_ssize_t num_expected;
23402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const char *more_or_less;
23412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (num_found < num_min) {
23422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        num_expected = num_min;
23432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        more_or_less = "at least";
23442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
23452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        num_expected = num_max;
23462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        more_or_less = "at most";
23472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
23482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (exact) {
23492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        more_or_less = "exactly";
23502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
23512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_Format(PyExc_TypeError,
23522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                 "%s() takes %s %" CYTHON_FORMAT_SSIZE_T "d positional argument%s (%" CYTHON_FORMAT_SSIZE_T "d given)",
23532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                 func_name, more_or_less, num_expected,
23542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                 (num_expected == 1) ? "" : "s", num_found);
23552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
23562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
23572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
23582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON
23592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *tmp_type, *tmp_value, *tmp_tb;
23602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyThreadState *tstate = PyThreadState_GET();
23612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tmp_type = tstate->curexc_type;
23622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tmp_value = tstate->curexc_value;
23632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tmp_tb = tstate->curexc_traceback;
23642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tstate->curexc_type = type;
23652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tstate->curexc_value = value;
23662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tstate->curexc_traceback = tb;
23672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(tmp_type);
23682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(tmp_value);
23692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(tmp_tb);
23702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
23712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_Restore(type, value, tb);
23722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
23732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
23742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
23752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON
23762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyThreadState *tstate = PyThreadState_GET();
23772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    *type = tstate->curexc_type;
23782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    *value = tstate->curexc_value;
23792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    *tb = tstate->curexc_traceback;
23802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tstate->curexc_type = 0;
23812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tstate->curexc_value = 0;
23822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tstate->curexc_traceback = 0;
23832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
23842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_Fetch(type, value, tb);
23852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
23862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
23872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
23882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3
23892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
23902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        CYTHON_UNUSED PyObject *cause) {
23912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XINCREF(type);
23922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!value || value == Py_None)
23932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        value = NULL;
23942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    else
23952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_INCREF(value);
23962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!tb || tb == Py_None)
23972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        tb = NULL;
23982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    else {
23992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_INCREF(tb);
24002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!PyTraceBack_Check(tb)) {
24012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_TypeError,
24022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                "raise: arg 3 must be a traceback or None");
24032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto raise_error;
24042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
24052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
24062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #if PY_VERSION_HEX < 0x02050000
24072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (PyClass_Check(type)) {
24082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #else
24092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (PyType_Check(type)) {
24102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #endif
24112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_PYPY
24122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!value) {
24132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_INCREF(Py_None);
24142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            value = Py_None;
24152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
24162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
24172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyErr_NormalizeException(&type, &value, &tb);
24182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
24192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (value) {
24202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_TypeError,
24212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                "instance exception may not have a separate value");
24222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto raise_error;
24232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
24242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        value = type;
24252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #if PY_VERSION_HEX < 0x02050000
24262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (PyInstance_Check(type)) {
24272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                type = (PyObject*) ((PyInstanceObject*)type)->in_class;
24282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                Py_INCREF(type);
24292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
24302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            else {
24312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                type = 0;
24322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_TypeError,
24332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "raise: exception must be an old-style class or instance");
24342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                goto raise_error;
24352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
24362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #else
24372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            type = (PyObject*) Py_TYPE(type);
24382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_INCREF(type);
24392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
24402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_TypeError,
24412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "raise: exception class must be a subclass of BaseException");
24422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                goto raise_error;
24432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
24442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #endif
24452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
24462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_ErrRestore(type, value, tb);
24472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return;
24482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)raise_error:
24492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(value);
24502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(type);
24512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(tb);
24522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return;
24532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
24542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else /* Python 3+ */
24552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
24562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject* owned_instance = NULL;
24572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (tb == Py_None) {
24582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        tb = 0;
24592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else if (tb && !PyTraceBack_Check(tb)) {
24602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyErr_SetString(PyExc_TypeError,
24612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            "raise: arg 3 must be a traceback or None");
24622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
24632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
24642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (value == Py_None)
24652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        value = 0;
24662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (PyExceptionInstance_Check(type)) {
24672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (value) {
24682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_TypeError,
24692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                "instance exception may not have a separate value");
24702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto bad;
24712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
24722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        value = type;
24732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        type = (PyObject*) Py_TYPE(value);
24742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else if (PyExceptionClass_Check(type)) {
24752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *args;
24762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!value)
24772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            args = PyTuple_New(0);
24782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        else if (PyTuple_Check(value)) {
24792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_INCREF(value);
24802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            args = value;
24812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
24822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        else
24832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            args = PyTuple_Pack(1, value);
24842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!args)
24852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto bad;
24862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        owned_instance = PyEval_CallObject(type, args);
24872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_DECREF(args);
24882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!owned_instance)
24892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto bad;
24902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        value = owned_instance;
24912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!PyExceptionInstance_Check(value)) {
24922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_Format(PyExc_TypeError,
24932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                         "calling %R should have returned an instance of "
24942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                         "BaseException, not %R",
24952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                         type, Py_TYPE(value));
24962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto bad;
24972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
24982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
24992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyErr_SetString(PyExc_TypeError,
25002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            "raise: exception class must be a subclass of BaseException");
25012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
25022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
25032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (cause && cause != Py_None) {
25042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *fixed_cause;
25052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (PyExceptionClass_Check(cause)) {
25062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            fixed_cause = PyObject_CallObject(cause, NULL);
25072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (fixed_cause == NULL)
25082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                goto bad;
25092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
25102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        else if (PyExceptionInstance_Check(cause)) {
25112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            fixed_cause = cause;
25122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_INCREF(fixed_cause);
25132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
25142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        else {
25152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_TypeError,
25162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                            "exception causes must derive from "
25172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                            "BaseException");
25182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto bad;
25192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
25202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyException_SetCause(value, fixed_cause);
25212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
25222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_SetObject(type, value);
25232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (tb) {
25242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyThreadState *tstate = PyThreadState_GET();
25252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject* tmp_tb = tstate->curexc_traceback;
25262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (tb != tmp_tb) {
25272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_INCREF(tb);
25282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            tstate->curexc_traceback = tb;
25292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_XDECREF(tmp_tb);
25302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
25312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
25322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad:
25332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(owned_instance);
25342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return;
25352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
25362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
25372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
25382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level) {
25392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *py_import = 0;
25402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *empty_list = 0;
25412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *module = 0;
25422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *global_dict = 0;
25432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *empty_dict = 0;
25442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *list;
25452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_import = __Pyx_GetAttrString(__pyx_b, "__import__");
25462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!py_import)
25472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
25482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (from_list)
25492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        list = from_list;
25502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    else {
25512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        empty_list = PyList_New(0);
25522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!empty_list)
25532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            goto bad;
25542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        list = empty_list;
25552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
25562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    global_dict = PyModule_GetDict(__pyx_m);
25572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!global_dict)
25582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
25592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    empty_dict = PyDict_New();
25602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!empty_dict)
25612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
25622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #if PY_VERSION_HEX >= 0x02050000
25632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    {
25642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #if PY_MAJOR_VERSION >= 3
25652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (level == -1) {
25662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (strchr(__Pyx_MODULE_NAME, '.')) {
25672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                /* try package relative import first */
25682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyObject *py_level = PyInt_FromLong(1);
25692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                if (!py_level)
25702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    goto bad;
25712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                module = PyObject_CallFunctionObjArgs(py_import,
25722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    name, global_dict, empty_dict, list, py_level, NULL);
25732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                Py_DECREF(py_level);
25742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                if (!module) {
25752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
25762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        goto bad;
25772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    PyErr_Clear();
25782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                }
25792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
25802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            level = 0; /* try absolute import on failure */
25812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
25822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #endif
25832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!module) {
25842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyObject *py_level = PyInt_FromLong(level);
25852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!py_level)
25862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                goto bad;
25872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            module = PyObject_CallFunctionObjArgs(py_import,
25882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                name, global_dict, empty_dict, list, py_level, NULL);
25892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_DECREF(py_level);
25902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
25912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
25922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #else
25932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (level>0) {
25942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4.");
25952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
25962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
25972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    module = PyObject_CallFunctionObjArgs(py_import,
25982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        name, global_dict, empty_dict, list, NULL);
25992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #endif
26002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad:
26012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(empty_list);
26022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(py_import);
26032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(empty_dict);
26042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return module;
26052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
26062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
26072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) {
26082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const unsigned char neg_one = (unsigned char)-1, const_zero = 0;
26092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
26102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(unsigned char) < sizeof(long)) {
26112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
26122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(unsigned char)val)) {
26132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
26142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
26152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
26162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to unsigned char" :
26172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to unsigned char");
26182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
26192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (unsigned char)-1;
26202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
26212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (unsigned char)val;
26222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
26232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x);
26242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
26252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
26262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) {
26272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const unsigned short neg_one = (unsigned short)-1, const_zero = 0;
26282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
26292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(unsigned short) < sizeof(long)) {
26302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
26312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(unsigned short)val)) {
26322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
26332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
26342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
26352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to unsigned short" :
26362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to unsigned short");
26372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
26382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (unsigned short)-1;
26392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
26402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (unsigned short)val;
26412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
26422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x);
26432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
26442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
26452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) {
26462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const unsigned int neg_one = (unsigned int)-1, const_zero = 0;
26472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
26482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(unsigned int) < sizeof(long)) {
26492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
26502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(unsigned int)val)) {
26512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
26522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
26532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
26542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to unsigned int" :
26552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to unsigned int");
26562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
26572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (unsigned int)-1;
26582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
26592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (unsigned int)val;
26602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
26612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x);
26622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
26632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
26642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) {
26652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const char neg_one = (char)-1, const_zero = 0;
26662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
26672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(char) < sizeof(long)) {
26682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
26692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(char)val)) {
26702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
26712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
26722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
26732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to char" :
26742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to char");
26752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
26762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (char)-1;
26772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
26782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (char)val;
26792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
26802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (char)__Pyx_PyInt_AsLong(x);
26812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
26822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
26832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) {
26842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const short neg_one = (short)-1, const_zero = 0;
26852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
26862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(short) < sizeof(long)) {
26872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
26882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(short)val)) {
26892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
26902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
26912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
26922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to short" :
26932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to short");
26942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
26952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (short)-1;
26962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
26972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (short)val;
26982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
26992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (short)__Pyx_PyInt_AsLong(x);
27002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
27012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
27022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) {
27032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int neg_one = (int)-1, const_zero = 0;
27042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
27052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(int) < sizeof(long)) {
27062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
27072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(int)val)) {
27082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
27092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
27102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
27112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to int" :
27122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to int");
27132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
27142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (int)-1;
27152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
27162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (int)val;
27172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
27182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (int)__Pyx_PyInt_AsLong(x);
27192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
27202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
27212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) {
27222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const signed char neg_one = (signed char)-1, const_zero = 0;
27232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
27242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(signed char) < sizeof(long)) {
27252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
27262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(signed char)val)) {
27272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
27282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
27292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
27302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to signed char" :
27312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to signed char");
27322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
27332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (signed char)-1;
27342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
27352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (signed char)val;
27362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
27372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (signed char)__Pyx_PyInt_AsSignedLong(x);
27382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
27392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
27402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) {
27412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const signed short neg_one = (signed short)-1, const_zero = 0;
27422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
27432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(signed short) < sizeof(long)) {
27442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
27452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(signed short)val)) {
27462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
27472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
27482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
27492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to signed short" :
27502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to signed short");
27512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
27522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (signed short)-1;
27532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
27542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (signed short)val;
27552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
27562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (signed short)__Pyx_PyInt_AsSignedLong(x);
27572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
27582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
27592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) {
27602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const signed int neg_one = (signed int)-1, const_zero = 0;
27612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
27622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(signed int) < sizeof(long)) {
27632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
27642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(signed int)val)) {
27652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
27662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
27672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
27682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to signed int" :
27692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to signed int");
27702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
27712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (signed int)-1;
27722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
27732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (signed int)val;
27742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
27752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (signed int)__Pyx_PyInt_AsSignedLong(x);
27762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
27772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
27782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) {
27792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int neg_one = (int)-1, const_zero = 0;
27802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
27812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (sizeof(int) < sizeof(long)) {
27822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = __Pyx_PyInt_AsLong(x);
27832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(val != (long)(int)val)) {
27842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (!unlikely(val == -1 && PyErr_Occurred())) {
27852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
27862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    (is_unsigned && unlikely(val < 0)) ?
27872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "can't convert negative value to int" :
27882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "value too large to convert to int");
27892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
27902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (int)-1;
27912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
27922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (int)val;
27932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
27942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (int)__Pyx_PyInt_AsLong(x);
27952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
27962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
27972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) {
27982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const unsigned long neg_one = (unsigned long)-1, const_zero = 0;
27992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
28002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000
28012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyInt_Check(x))) {
28022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = PyInt_AS_LONG(x);
28032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned && unlikely(val < 0)) {
28042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_OverflowError,
28052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                            "can't convert negative value to unsigned long");
28062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (unsigned long)-1;
28072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
28082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (unsigned long)val;
28092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else
28102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
28112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyLong_Check(x))) {
28122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned) {
28132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (unlikely(Py_SIZE(x) < 0)) {
28142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
28152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                "can't convert negative value to unsigned long");
28162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                return (unsigned long)-1;
28172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
28182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (unsigned long)PyLong_AsUnsignedLong(x);
28192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
28202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (unsigned long)PyLong_AsLong(x);
28212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
28222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
28232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        unsigned long val;
28242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *tmp = __Pyx_PyNumber_Int(x);
28252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!tmp) return (unsigned long)-1;
28262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        val = __Pyx_PyInt_AsUnsignedLong(tmp);
28272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_DECREF(tmp);
28282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return val;
28292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
28302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
28312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
28322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
28332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0;
28342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
28352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000
28362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyInt_Check(x))) {
28372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = PyInt_AS_LONG(x);
28382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned && unlikely(val < 0)) {
28392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_OverflowError,
28402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                            "can't convert negative value to unsigned PY_LONG_LONG");
28412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (unsigned PY_LONG_LONG)-1;
28422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
28432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (unsigned PY_LONG_LONG)val;
28442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else
28452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
28462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyLong_Check(x))) {
28472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned) {
28482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (unlikely(Py_SIZE(x) < 0)) {
28492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
28502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                "can't convert negative value to unsigned PY_LONG_LONG");
28512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                return (unsigned PY_LONG_LONG)-1;
28522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
28532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
28542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
28552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x);
28562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
28572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
28582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        unsigned PY_LONG_LONG val;
28592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *tmp = __Pyx_PyNumber_Int(x);
28602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!tmp) return (unsigned PY_LONG_LONG)-1;
28612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        val = __Pyx_PyInt_AsUnsignedLongLong(tmp);
28622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_DECREF(tmp);
28632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return val;
28642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
28652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
28662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
28672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
28682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const long neg_one = (long)-1, const_zero = 0;
28692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
28702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000
28712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyInt_Check(x))) {
28722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = PyInt_AS_LONG(x);
28732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned && unlikely(val < 0)) {
28742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_OverflowError,
28752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                            "can't convert negative value to long");
28762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (long)-1;
28772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
28782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (long)val;
28792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else
28802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
28812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyLong_Check(x))) {
28822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned) {
28832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (unlikely(Py_SIZE(x) < 0)) {
28842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
28852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                "can't convert negative value to long");
28862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                return (long)-1;
28872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
28882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (long)PyLong_AsUnsignedLong(x);
28892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
28902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (long)PyLong_AsLong(x);
28912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
28922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
28932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val;
28942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *tmp = __Pyx_PyNumber_Int(x);
28952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!tmp) return (long)-1;
28962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        val = __Pyx_PyInt_AsLong(tmp);
28972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_DECREF(tmp);
28982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return val;
28992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
29002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
29012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
29022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
29032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0;
29042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
29052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000
29062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyInt_Check(x))) {
29072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = PyInt_AS_LONG(x);
29082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned && unlikely(val < 0)) {
29092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_OverflowError,
29102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                            "can't convert negative value to PY_LONG_LONG");
29112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (PY_LONG_LONG)-1;
29122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
29132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (PY_LONG_LONG)val;
29142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else
29152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
29162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyLong_Check(x))) {
29172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned) {
29182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (unlikely(Py_SIZE(x) < 0)) {
29192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
29202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                "can't convert negative value to PY_LONG_LONG");
29212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                return (PY_LONG_LONG)-1;
29222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
29232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
29242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
29252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (PY_LONG_LONG)PyLong_AsLongLong(x);
29262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
29272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
29282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PY_LONG_LONG val;
29292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *tmp = __Pyx_PyNumber_Int(x);
29302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!tmp) return (PY_LONG_LONG)-1;
29312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        val = __Pyx_PyInt_AsLongLong(tmp);
29322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_DECREF(tmp);
29332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return val;
29342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
29352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
29362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
29372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
29382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const signed long neg_one = (signed long)-1, const_zero = 0;
29392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
29402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000
29412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyInt_Check(x))) {
29422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = PyInt_AS_LONG(x);
29432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned && unlikely(val < 0)) {
29442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_OverflowError,
29452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                            "can't convert negative value to signed long");
29462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (signed long)-1;
29472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
29482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (signed long)val;
29492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else
29502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
29512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyLong_Check(x))) {
29522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned) {
29532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (unlikely(Py_SIZE(x) < 0)) {
29542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
29552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                "can't convert negative value to signed long");
29562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                return (signed long)-1;
29572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
29582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (signed long)PyLong_AsUnsignedLong(x);
29592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
29602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (signed long)PyLong_AsLong(x);
29612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
29622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
29632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        signed long val;
29642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *tmp = __Pyx_PyNumber_Int(x);
29652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!tmp) return (signed long)-1;
29662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        val = __Pyx_PyInt_AsSignedLong(tmp);
29672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_DECREF(tmp);
29682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return val;
29692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
29702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
29712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
29722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) {
29732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0;
29742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const int is_unsigned = neg_one > const_zero;
29752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000
29762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyInt_Check(x))) {
29772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        long val = PyInt_AS_LONG(x);
29782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned && unlikely(val < 0)) {
29792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            PyErr_SetString(PyExc_OverflowError,
29802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                            "can't convert negative value to signed PY_LONG_LONG");
29812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (signed PY_LONG_LONG)-1;
29822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
29832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return (signed PY_LONG_LONG)val;
29842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else
29852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
29862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (likely(PyLong_Check(x))) {
29872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (is_unsigned) {
29882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (unlikely(Py_SIZE(x) < 0)) {
29892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                PyErr_SetString(PyExc_OverflowError,
29902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                "can't convert negative value to signed PY_LONG_LONG");
29912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                return (signed PY_LONG_LONG)-1;
29922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
29932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
29942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
29952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return (signed PY_LONG_LONG)PyLong_AsLongLong(x);
29962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
29972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
29982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        signed PY_LONG_LONG val;
29992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyObject *tmp = __Pyx_PyNumber_Int(x);
30002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!tmp) return (signed PY_LONG_LONG)-1;
30012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        val = __Pyx_PyInt_AsSignedLongLong(tmp);
30022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_DECREF(tmp);
30032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return val;
30042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
30052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
30062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
30072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_check_binary_version(void) {
30082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    char ctversion[4], rtversion[4];
30092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
30102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
30112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
30122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        char message[200];
30132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyOS_snprintf(message, sizeof(message),
30142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                      "compiletime version %s of module '%.100s' "
30152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                      "does not match runtime version %s",
30162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                      ctversion, __Pyx_MODULE_NAME, rtversion);
30172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #if PY_VERSION_HEX < 0x02050000
30182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return PyErr_Warn(NULL, message);
30192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #else
30202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return PyErr_WarnEx(NULL, message, 1);
30212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #endif
30222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
30232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return 0;
30242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
30252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
30262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef __PYX_HAVE_RT_ImportModule
30272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __PYX_HAVE_RT_ImportModule
30282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_ImportModule(const char *name) {
30292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *py_name = 0;
30302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *py_module = 0;
30312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_name = __Pyx_PyIdentifier_FromString(name);
30322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!py_name)
30332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
30342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_module = PyImport_Import(py_name);
30352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_DECREF(py_name);
30362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return py_module;
30372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad:
30382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(py_name);
30392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return 0;
30402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
30412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
30422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
30432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef __PYX_HAVE_RT_ImportType
30442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __PYX_HAVE_RT_ImportType
30452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name,
30462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    size_t size, int strict)
30472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
30482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *py_module = 0;
30492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *result = 0;
30502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *py_name = 0;
30512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    char warning[200];
30522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_module = __Pyx_ImportModule(module_name);
30532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!py_module)
30542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
30552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_name = __Pyx_PyIdentifier_FromString(class_name);
30562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!py_name)
30572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
30582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    result = PyObject_GetAttr(py_module, py_name);
30592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_DECREF(py_name);
30602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_name = 0;
30612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_DECREF(py_module);
30622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_module = 0;
30632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!result)
30642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
30652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!PyType_Check(result)) {
30662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyErr_Format(PyExc_TypeError,
30672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            "%s.%s is not a type object",
30682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            module_name, class_name);
30692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
30702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
30712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!strict && (size_t)((PyTypeObject *)result)->tp_basicsize > size) {
30722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyOS_snprintf(warning, sizeof(warning),
30732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            "%s.%s size changed, may indicate binary incompatibility",
30742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            module_name, class_name);
30752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #if PY_VERSION_HEX < 0x02050000
30762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (PyErr_Warn(NULL, warning) < 0) goto bad;
30772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #else
30782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
30792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #endif
30802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
30812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    else if ((size_t)((PyTypeObject *)result)->tp_basicsize != size) {
30822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyErr_Format(PyExc_ValueError,
30832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            "%s.%s has the wrong size, try recompiling",
30842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            module_name, class_name);
30852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
30862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
30872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return (PyTypeObject *)result;
30882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad:
30892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(py_module);
30902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(result);
30912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return NULL;
30922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
30932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
30942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
30952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void* __Pyx_GetVtable(PyObject *dict) {
30962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void* ptr;
30972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *ob = PyMapping_GetItemString(dict, (char *)"__pyx_vtable__");
30982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!ob)
30992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        goto bad;
31002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
31012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    ptr = PyCapsule_GetPointer(ob, 0);
31022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
31032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    ptr = PyCObject_AsVoidPtr(ob);
31042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
31052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!ptr && !PyErr_Occurred())
31062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
31072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_DECREF(ob);
31082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return ptr;
31092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad:
31102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(ob);
31112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return NULL;
31122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
31132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
31142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
31152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    int start = 0, mid = 0, end = count - 1;
31162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (end >= 0 && code_line > entries[end].code_line) {
31172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return count;
31182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    while (start < end) {
31202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        mid = (start + end) / 2;
31212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (code_line < entries[mid].code_line) {
31222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            end = mid;
31232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else if (code_line > entries[mid].code_line) {
31242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)             start = mid + 1;
31252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
31262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return mid;
31272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
31282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (code_line <= entries[mid].code_line) {
31302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return mid;
31312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    } else {
31322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return mid + 1;
31332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
31352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyCodeObject *__pyx_find_code_object(int code_line) {
31362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyCodeObject* code_object;
31372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    int pos;
31382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
31392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return NULL;
31402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
31422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
31432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return NULL;
31442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    code_object = __pyx_code_cache.entries[pos].code_object;
31462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_INCREF(code_object);
31472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return code_object;
31482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
31492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
31502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    int pos, i;
31512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
31522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (unlikely(!code_line)) {
31532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return;
31542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (unlikely(!entries)) {
31562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
31572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (likely(entries)) {
31582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            __pyx_code_cache.entries = entries;
31592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            __pyx_code_cache.max_count = 64;
31602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            __pyx_code_cache.count = 1;
31612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            entries[0].code_line = code_line;
31622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            entries[0].code_object = code_object;
31632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            Py_INCREF(code_object);
31642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
31652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return;
31662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
31682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
31692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyCodeObject* tmp = entries[pos].code_object;
31702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        entries[pos].code_object = code_object;
31712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        Py_DECREF(tmp);
31722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return;
31732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
31752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        int new_max = __pyx_code_cache.max_count + 64;
31762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
31772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            __pyx_code_cache.entries, new_max*sizeof(__Pyx_CodeObjectCacheEntry));
31782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (unlikely(!entries)) {
31792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return;
31802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
31812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_code_cache.entries = entries;
31822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_code_cache.max_count = new_max;
31832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    for (i=__pyx_code_cache.count; i>pos; i--) {
31852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        entries[i] = entries[i-1];
31862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
31872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    entries[pos].code_line = code_line;
31882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    entries[pos].code_object = code_object;
31892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    __pyx_code_cache.count++;
31902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_INCREF(code_object);
31912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
31922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
31932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "compile.h"
31942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "frameobject.h"
31952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "traceback.h"
31962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
31972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            const char *funcname, int c_line,
31982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            int py_line, const char *filename) {
31992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyCodeObject *py_code = 0;
32002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *py_srcfile = 0;
32012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *py_funcname = 0;
32022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #if PY_MAJOR_VERSION < 3
32032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_srcfile = PyString_FromString(filename);
32042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #else
32052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_srcfile = PyUnicode_FromString(filename);
32062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    #endif
32072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!py_srcfile) goto bad;
32082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (c_line) {
32092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #if PY_MAJOR_VERSION < 3
32102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
32112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #else
32122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
32132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #endif
32142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
32152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    else {
32162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #if PY_MAJOR_VERSION < 3
32172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_funcname = PyString_FromString(funcname);
32182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #else
32192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_funcname = PyUnicode_FromString(funcname);
32202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #endif
32212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
32222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!py_funcname) goto bad;
32232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_code = __Pyx_PyCode_New(
32242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        0,            /*int argcount,*/
32252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        0,            /*int kwonlyargcount,*/
32262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        0,            /*int nlocals,*/
32272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        0,            /*int stacksize,*/
32282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        0,            /*int flags,*/
32292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_empty_bytes, /*PyObject *code,*/
32302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_empty_tuple, /*PyObject *consts,*/
32312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_empty_tuple, /*PyObject *names,*/
32322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_empty_tuple, /*PyObject *varnames,*/
32332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_empty_tuple, /*PyObject *freevars,*/
32342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_empty_tuple, /*PyObject *cellvars,*/
32352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_srcfile,   /*PyObject *filename,*/
32362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_funcname,  /*PyObject *name,*/
32372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_line,      /*int firstlineno,*/
32382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_empty_bytes  /*PyObject *lnotab*/
32392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    );
32402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_DECREF(py_srcfile);
32412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_DECREF(py_funcname);
32422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return py_code;
32432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad:
32442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(py_srcfile);
32452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(py_funcname);
32462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return NULL;
32472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
32482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_AddTraceback(const char *funcname, int c_line,
32492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                               int py_line, const char *filename) {
32502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyCodeObject *py_code = 0;
32512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyObject *py_globals = 0;
32522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyFrameObject *py_frame = 0;
32532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_code = __pyx_find_code_object(c_line ? c_line : py_line);
32542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!py_code) {
32552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_code = __Pyx_CreateCodeObjectForTraceback(
32562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            funcname, c_line, py_line, filename);
32572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!py_code) goto bad;
32582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        __pyx_insert_code_object(c_line ? c_line : py_line, py_code);
32592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
32602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_globals = PyModule_GetDict(__pyx_m);
32612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!py_globals) goto bad;
32622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_frame = PyFrame_New(
32632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        PyThreadState_GET(), /*PyThreadState *tstate,*/
32642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_code,             /*PyCodeObject *code,*/
32652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        py_globals,          /*PyObject *globals,*/
32662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        0                    /*PyObject *locals*/
32672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    );
32682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!py_frame) goto bad;
32692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    py_frame->f_lineno = py_line;
32702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyTraceBack_Here(py_frame);
32712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad:
32722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(py_code);
32732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    Py_XDECREF(py_frame);
32742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
32752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
32762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
32772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    while (t->p) {
32782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #if PY_MAJOR_VERSION < 3
32792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (t->is_unicode) {
32802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
32812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else if (t->intern) {
32822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            *t->p = PyString_InternFromString(t->s);
32832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
32842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
32852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
32862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #else  /* Python 3+ has unicode identifiers */
32872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (t->is_unicode | t->is_str) {
32882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            if (t->intern) {
32892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                *t->p = PyUnicode_InternFromString(t->s);
32902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            } else if (t->encoding) {
32912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
32922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            } else {
32932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
32942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }
32952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        } else {
32962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
32972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        }
32982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        #endif
32992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        if (!*t->p)
33002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            return -1;
33012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        ++t;
33022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
33032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return 0;
33042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
33052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Type Conversion Functions */
33082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
33102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   int is_true = x == Py_True;
33112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
33122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   else return PyObject_IsTrue(x);
33132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
33142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
33162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyNumberMethods *m;
33172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const char *name = NULL;
33182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject *res = NULL;
33192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000
33202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (PyInt_Check(x) || PyLong_Check(x))
33212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
33222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (PyLong_Check(x))
33232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
33242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return Py_INCREF(x), x;
33252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  m = Py_TYPE(x)->tp_as_number;
33262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000
33272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (m && m->nb_int) {
33282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    name = "int";
33292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    res = PyNumber_Int(x);
33302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
33312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  else if (m && m->nb_long) {
33322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    name = "long";
33332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    res = PyNumber_Long(x);
33342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
33352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
33362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (m && m->nb_int) {
33372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    name = "int";
33382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    res = PyNumber_Long(x);
33392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
33402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
33412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (res) {
33422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000
33432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!PyInt_Check(res) && !PyLong_Check(res)) {
33442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
33452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (!PyLong_Check(res)) {
33462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
33472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      PyErr_Format(PyExc_TypeError,
33482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                   "__%s__ returned non-%s (type %.200s)",
33492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                   name, name, Py_TYPE(res)->tp_name);
33502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      Py_DECREF(res);
33512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      return NULL;
33522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
33532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
33542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  else if (!PyErr_Occurred()) {
33552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PyErr_SetString(PyExc_TypeError,
33562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    "an integer is required");
33572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
33582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return res;
33592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
33602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
33622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Py_ssize_t ival;
33632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PyObject* x = PyNumber_Index(b);
33642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (!x) return -1;
33652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ival = PyInt_AsSsize_t(x);
33662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Py_DECREF(x);
33672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return ival;
33682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
33692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
33712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02050000
33722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   if (ival <= LONG_MAX)
33732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)       return PyInt_FromLong((long)ival);
33742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   else {
33752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)       unsigned char *bytes = (unsigned char *) &ival;
33762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)       int one = 1; int little = (int)*(unsigned char*)&one;
33772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)       return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0);
33782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   }
33792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
33802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   return PyInt_FromSize_t(ival);
33812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
33822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
33832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
33852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
33862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
33872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)       return (size_t)-1;
33882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
33892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)       PyErr_SetString(PyExc_OverflowError,
33902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                       "value too large to convert to size_t");
33912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)       return (size_t)-1;
33922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   }
33932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   return (size_t)val;
33942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
33952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* Py_PYTHON_H */
3398