/* Generated by Cython 3.2.4 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "name": "django_templates_cythonized.base",
        "sources": [
            "django_templates_cythonized/base.py"
        ]
    },
    "module_name": "django_templates_cythonized.base"
}
END: Cython Metadata */

#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif /* PY_SSIZE_T_CLEAN */
/* InitLimitedAPI */
#if defined(Py_LIMITED_API)
  #if !defined(CYTHON_LIMITED_API)
  #define CYTHON_LIMITED_API 1
  #endif
#elif defined(CYTHON_LIMITED_API)
  #ifdef _MSC_VER
  #pragma message ("Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.")
  #else
  #warning Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.
  #endif
#endif

#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x03080000
    #error Cython requires Python 3.8+.
#else
#define __PYX_ABI_VERSION "3_2_4"
#define CYTHON_HEX_VERSION 0x030204F0
#define CYTHON_FUTURE_DIVISION 1
/* CModulePreamble */
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
#if defined(GRAALVM_PYTHON)
  /* For very preliminary testing purposes. Most variables are set the same as PyPy.
     The existence of this section does not imply that anything works or is even tested */
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 1
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_ASSUME_SAFE_SIZE
  #define CYTHON_ASSUME_SAFE_SIZE 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_AM_SEND
  #define CYTHON_USE_AM_SEND 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 1
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
  #undef CYTHON_IMMORTAL_CONSTANTS
  #define CYTHON_IMMORTAL_CONSTANTS 0
#elif defined(PYPY_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 1
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #ifndef CYTHON_ASSUME_SAFE_SIZE
    #define CYTHON_ASSUME_SAFE_SIZE 1
  #endif
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #if PY_VERSION_HEX < 0x03090000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PYPY_VERSION_NUM >= 0x07030C00)
  #endif
  #undef CYTHON_USE_AM_SEND
  #define CYTHON_USE_AM_SEND 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_NUM >= 0x07031100)
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
  #undef CYTHON_IMMORTAL_CONSTANTS
  #define CYTHON_IMMORTAL_CONSTANTS 0
#elif defined(CYTHON_LIMITED_API)
  #ifdef Py_LIMITED_API
    #undef __PYX_LIMITED_VERSION_HEX
    #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
  #endif
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 1
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 1
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #endif
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #endif
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_ASSUME_SAFE_SIZE
  #define CYTHON_ASSUME_SAFE_SIZE 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #endif
  #ifndef CYTHON_USE_AM_SEND
    #define CYTHON_USE_AM_SEND (__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #ifndef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 1
  #endif
  #undef CYTHON_IMMORTAL_CONSTANTS
  #define CYTHON_IMMORTAL_CONSTANTS 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #ifdef Py_GIL_DISABLED
    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 1
  #else
    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #endif
  #if PY_VERSION_HEX < 0x030A0000
    #undef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #elif !defined(CYTHON_USE_TYPE_SLOTS)
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #ifndef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #ifndef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLIST_INTERNALS)
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING || PY_VERSION_HEX >= 0x030B00A2
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
  #elif !defined(CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_ASSUME_SAFE_SIZE
    #define CYTHON_ASSUME_SAFE_SIZE 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_FAST_GIL
    #define CYTHON_FAST_GIL 0
  #elif !defined(CYTHON_FAST_GIL)
    #define CYTHON_FAST_GIL (PY_VERSION_HEX < 0x030C00A6)
  #endif
  #ifndef CYTHON_METH_FASTCALL
    #define CYTHON_METH_FASTCALL 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #ifndef CYTHON_USE_SYS_MONITORING
    #define CYTHON_USE_SYS_MONITORING (PY_VERSION_HEX >= 0x030d00B1)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #ifndef CYTHON_USE_AM_SEND
    #define CYTHON_USE_AM_SEND 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS 0
  #elif !defined(CYTHON_USE_DICT_VERSIONS)
    #define CYTHON_USE_DICT_VERSIONS  (PY_VERSION_HEX < 0x030C00A5 && !CYTHON_USE_MODULE_STATE)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK 1
  #endif
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
  #endif
  #ifndef CYTHON_USE_FREELISTS
    #define CYTHON_USE_FREELISTS (!CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
  #endif
  #if defined(CYTHON_IMMORTAL_CONSTANTS) && PY_VERSION_HEX < 0x030C0000
    #undef CYTHON_IMMORTAL_CONSTANTS
    #define CYTHON_IMMORTAL_CONSTANTS 0  // definitely won't work
  #elif !defined(CYTHON_IMMORTAL_CONSTANTS)
    #define CYTHON_IMMORTAL_CONSTANTS (PY_VERSION_HEX >= 0x030C0000 && !CYTHON_USE_MODULE_STATE && CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
  #endif
#endif
#ifndef CYTHON_COMPRESS_STRINGS
  #define CYTHON_COMPRESS_STRINGS 1
#endif
#ifndef CYTHON_FAST_PYCCALL
#define CYTHON_FAST_PYCCALL  CYTHON_FAST_PYCALL
#endif
#ifndef CYTHON_VECTORCALL
#if CYTHON_COMPILING_IN_LIMITED_API
#define CYTHON_VECTORCALL  (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
#else
#define CYTHON_VECTORCALL  (CYTHON_FAST_PYCCALL)
#endif
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(maybe_unused)
        #define CYTHON_UNUSED [[maybe_unused]]
      #endif
    #endif
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
  #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_USE_CPP_STD_MOVE
  #if defined(__cplusplus) && (\
    __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
    #define CYTHON_USE_CPP_STD_MOVE 1
  #else
    #define CYTHON_USE_CPP_STD_MOVE 0
  #endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#include <stdint.h>
typedef uintptr_t  __pyx_uintptr_t;
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(fallthrough)
        #define CYTHON_FALLTHROUGH [[fallthrough]]
      #endif
    #endif
    #ifndef CYTHON_FALLTHROUGH
      #if __has_cpp_attribute(clang::fallthrough)
        #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
      #elif __has_cpp_attribute(gnu::fallthrough)
        #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
      #endif
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif
#ifndef Py_UNREACHABLE
  #define Py_UNREACHABLE()  assert(0); abort()
#endif
#ifdef __cplusplus
  template <typename T>
  struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
  #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
#else
  #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
#endif
#if CYTHON_COMPILING_IN_PYPY == 1
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX < 0x030A0000)
#else
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX < 0x03090000)
#endif
#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))

/* CInitCode */
#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #elif defined(__GNUC__)
    #define CYTHON_INLINE __inline__
  #elif defined(_MSC_VER)
    #define CYTHON_INLINE __inline
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_INLINE inline
  #else
    #define CYTHON_INLINE
  #endif
#endif

/* PythonCompatibility */
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
#define __Pyx_DefaultClassType PyType_Type
#if CYTHON_COMPILING_IN_LIMITED_API
    #ifndef CO_OPTIMIZED
    static int CO_OPTIMIZED;
    #endif
    #ifndef CO_NEWLOCALS
    static int CO_NEWLOCALS;
    #endif
    #ifndef CO_VARARGS
    static int CO_VARARGS;
    #endif
    #ifndef CO_VARKEYWORDS
    static int CO_VARKEYWORDS;
    #endif
    #ifndef CO_ASYNC_GENERATOR
    static int CO_ASYNC_GENERATOR;
    #endif
    #ifndef CO_GENERATOR
    static int CO_GENERATOR;
    #endif
    #ifndef CO_COROUTINE
    static int CO_COROUTINE;
    #endif
#else
    #ifndef CO_COROUTINE
      #define CO_COROUTINE 0x80
    #endif
    #ifndef CO_ASYNC_GENERATOR
      #define CO_ASYNC_GENERATOR 0x200
    #endif
#endif
static int __Pyx_init_co_variables(void);
#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
  #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
#else
  #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
  #define __Pyx_Py_Is(x, y)  Py_Is(x, y)
#else
  #define __Pyx_Py_Is(x, y) ((x) == (y))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
  #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
#else
  #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
  #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
#else
  #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
  #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
#else
  #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
#endif
#define __Pyx_NoneAsNull(obj)  (__Pyx_Py_IsNone(obj) ? NULL : (obj))
#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
#else
  #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef Py_TPFLAGS_SEQUENCE
  #define Py_TPFLAGS_SEQUENCE 0
#endif
#ifndef Py_TPFLAGS_MAPPING
  #define Py_TPFLAGS_MAPPING 0
#endif
#ifndef Py_TPFLAGS_IMMUTABLETYPE
  #define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8)
#endif
#ifndef Py_TPFLAGS_DISALLOW_INSTANTIATION
  #define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7)
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#ifndef METH_FASTCALL
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #if PY_VERSION_HEX >= 0x030d00A4
  #  define __Pyx_PyCFunctionFast PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
  #else
  #  define __Pyx_PyCFunctionFast _PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
  #endif
#endif
#if CYTHON_METH_FASTCALL
  #define __Pyx_METH_FASTCALL METH_FASTCALL
  #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
  #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
#else
  #define __Pyx_METH_FASTCALL METH_VARARGS
  #define __Pyx_PyCFunction_FastCall PyCFunction
  #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
#endif
#if CYTHON_VECTORCALL
  #define __pyx_vectorcallfunc vectorcallfunc
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  PY_VECTORCALL_ARGUMENTS_OFFSET
  #define __Pyx_PyVectorcall_NARGS(n)  PyVectorcall_NARGS((size_t)(n))
#else
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  0
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(n))
#endif
#if PY_VERSION_HEX >= 0x030900B1
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_CheckExact(func)
#else
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_Check(func)
#endif
#define __Pyx_CyOrPyCFunction_Check(func)  PyCFunction_Check(func)
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  (((PyCFunctionObject*)(func))->m_ml->ml_meth)
#elif !CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  PyCFunction_GET_FUNCTION(func)
#endif
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FLAGS(func)  (((PyCFunctionObject*)(func))->m_ml->ml_flags)
static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
    return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
}
#endif
static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void (*cfunc)(void)) {
#if CYTHON_COMPILING_IN_LIMITED_API
    return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
#else
    return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
#endif
}
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCFunction(func, cfunc)
#if PY_VERSION_HEX < 0x03090000 || (CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000)
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  ((void)m, PyType_FromSpecWithBases(s, b))
  typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
#else
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  PyType_FromModuleAndSpec(m, s, b)
  #define __Pyx_PyCMethod  PyCMethod
#endif
#ifndef METH_METHOD
  #define METH_METHOD 0x200
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
#elif CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) GraalPyFrame_SetLineNumber((frame), (lineno))
#elif CYTHON_COMPILING_IN_GRAAL
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) _PyFrame_SetLineNumber((frame), (lineno))
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyThreadState_Current PyThreadState_Get()
#elif !CYTHON_FAST_THREAD_STATE
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#endif
#if CYTHON_USE_MODULE_STATE
static CYTHON_INLINE void *__Pyx__PyModule_GetState(PyObject *op)
{
    void *result;
    result = PyModule_GetState(op);
    if (!result)
        Py_FatalError("Couldn't find the module state");
    return result;
}
#define __Pyx_PyModule_GetState(o) (__pyx_mstatetype *)__Pyx__PyModule_GetState(o)
#else
#define __Pyx_PyModule_GetState(op) ((void)op,__pyx_mstate_global)
#endif
#define __Pyx_PyObject_GetSlot(obj, name, func_ctype)  __Pyx_PyType_GetSlot(Py_TYPE((PyObject *) obj), name, func_ctype)
#define __Pyx_PyObject_TryGetSlot(obj, name, func_ctype) __Pyx_PyType_TryGetSlot(Py_TYPE(obj), name, func_ctype)
#define __Pyx_PyObject_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
#define __Pyx_PyObject_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((type)->name)
  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype) __Pyx_PyType_GetSlot(type, name, func_ctype)
  #define __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) (((type)->sub) ? ((type)->sub->name) : NULL)
  #define __Pyx_PyType_TryGetSubSlot(type, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype)
#else
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((func_ctype) PyType_GetSlot((type), Py_##name))
  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype)\
    ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000 ||\
     (PyType_GetFlags(type) & Py_TPFLAGS_HEAPTYPE) || __Pyx_get_runtime_version() >= 0x030A0000) ?\
     __Pyx_PyType_GetSlot(type, name, func_ctype) : NULL)
  #define __Pyx_PyType_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSlot(obj, name, func_ctype)
  #define __Pyx_PyType_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSlot(obj, name, func_ctype)
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
#define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStrWithError(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
    PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
    if (res == NULL) PyErr_Clear();
    return res;
}
#elif !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000
#define __Pyx_PyDict_GetItemStrWithError  PyDict_GetItemWithError
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#else
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
#if CYTHON_COMPILING_IN_PYPY
    return PyDict_GetItem(dict, name);
#else
    PyDictEntry *ep;
    PyDictObject *mp = (PyDictObject*) dict;
    long hash = ((PyStringObject *) name)->ob_shash;
    assert(hash != -1);
    ep = (mp->ma_lookup)(mp, name, hash);
    if (ep == NULL) {
        return NULL;
    }
    return ep->me_value;
#endif
}
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#endif
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetFlags(tp)   (((PyTypeObject *)tp)->tp_flags)
  #define __Pyx_PyType_HasFeature(type, feature)  ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
#else
  #define __Pyx_PyType_GetFlags(tp)   (PyType_GetFlags((PyTypeObject *)tp))
  #define __Pyx_PyType_HasFeature(type, feature)  PyType_HasFeature(type, feature)
#endif
#define __Pyx_PyObject_GetIterNextFunc(iterator)  __Pyx_PyObject_GetSlot(iterator, tp_iternext, iternextfunc)
#if CYTHON_USE_TYPE_SPECS
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  {\
    PyTypeObject *type = Py_TYPE((PyObject*)obj);\
    assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
    PyObject_GC_Del(obj);\
    Py_DECREF(type);\
}
#else
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  PyObject_GC_Del(obj)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((void)u, 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((void)u, (0))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)u)
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GetLength(u))
#else
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_READY(op)       (0)
  #else
    #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                                0 : _PyUnicode_Ready((PyObject *)(op)))
  #endif
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         ((int)PyUnicode_KIND(u))
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #else
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
    #else
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
    #endif
  #endif
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #if !defined(PyUnicode_DecodeUnicodeEscape)
    #define PyUnicode_DecodeUnicodeEscape(s, size, errors)  PyUnicode_Decode(s, size, "unicode_escape", errors)
  #endif
  #if !defined(PyUnicode_Contains)
    #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
  #endif
  #if !defined(PyByteArray_Check)
    #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
  #endif
  #if !defined(PyObject_Format)
    #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
  #endif
#endif
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && PyUnstable_Object_IsUniquelyReferenced(obj)) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#elif CYTHON_COMPILING_IN_CPYTHON
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#else
  #define __Pyx_PySequence_ListKeepNew(obj)  PySequence_List(obj)
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        __Pyx_IS_TYPE(obj, &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
enum __Pyx_ReferenceSharing {
  __Pyx_ReferenceSharing_DefinitelyUnique, // We created it so we know it's unshared - no need to check
  __Pyx_ReferenceSharing_OwnStrongReference,
  __Pyx_ReferenceSharing_FunctionArgument,
  __Pyx_ReferenceSharing_SharedReference, // Never trust it to be unshared because it's a global or similar
};
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX >= 0x030E0000
#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing)\
    (sharing == __Pyx_ReferenceSharing_DefinitelyUnique ? 1 :\
      (sharing == __Pyx_ReferenceSharing_FunctionArgument ? PyUnstable_Object_IsUniqueReferencedTemporary(o) :\
      (sharing == __Pyx_ReferenceSharing_OwnStrongReference ? PyUnstable_Object_IsUniquelyReferenced(o) : 0)))
#elif (CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)sharing), Py_REFCNT(o) == 1)
#else
#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)o), ((void)sharing), 0)
#endif
#if CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
  #elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_PyList_GetItemRef(o, i) (likely((i) >= 0) ? PySequence_GetItem(o, i) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
  #else
    #define __Pyx_PyList_GetItemRef(o, i) PySequence_ITEM(o, i)
  #endif
#elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
  #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
  #else
    #define __Pyx_PyList_GetItemRef(o, i) __Pyx_XNewRef(PyList_GetItem(o, i))
  #endif
#else
  #define __Pyx_PyList_GetItemRef(o, i) __Pyx_NewRef(PyList_GET_ITEM(o, i))
#endif
#if CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS && !CYTHON_COMPILING_IN_LIMITED_API && CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) (__Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\
    __Pyx_NewRef(PyList_GET_ITEM(o, i)) : __Pyx_PyList_GetItemRef(o, i))
#else
  #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) __Pyx_PyList_GetItemRef(o, i)
#endif
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_PyDict_GetItemRef(dict, key, result) PyDict_GetItemRef(dict, key, result)
#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
  *result = PyObject_GetItem(dict, key);
  if (*result == NULL) {
    if (PyErr_ExceptionMatches(PyExc_KeyError)) {
      PyErr_Clear();
      return 0;
    }
    return -1;
  }
  return 1;
}
#else
static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
  *result = PyDict_GetItemWithError(dict, key);
  if (*result == NULL) {
    return PyErr_Occurred() ? -1 : 0;
  }
  Py_INCREF(*result);
  return 1;
}
#endif
#if defined(CYTHON_DEBUG_VISIT_CONST) && CYTHON_DEBUG_VISIT_CONST
  #define __Pyx_VISIT_CONST(obj)  Py_VISIT(obj)
#else
  #define __Pyx_VISIT_CONST(obj)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GET_ITEM(o, i)
  #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GET_ITEM(o, i)
#else
  #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GetItem(o, i)
  #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GetItem(o, i)
#endif
#if CYTHON_ASSUME_SAFE_SIZE
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GET_LENGTH(o)
#else
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GetLength(o)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_InternFromString)
  #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
#endif
#define __Pyx_PyLong_FromHash_t PyLong_FromSsize_t
#define __Pyx_PyLong_AsHash_t   __Pyx_PyIndex_AsSsize_t
#if __PYX_LIMITED_VERSION_HEX >= 0x030A0000
    #define __Pyx_PySendResult PySendResult
#else
    typedef enum {
        PYGEN_RETURN = 0,
        PYGEN_ERROR = -1,
        PYGEN_NEXT = 1,
    } __Pyx_PySendResult;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030A00A3
  typedef __Pyx_PySendResult (*__Pyx_pyiter_sendfunc)(PyObject *iter, PyObject *value, PyObject **result);
#else
  #define __Pyx_pyiter_sendfunc sendfunc
#endif
#if !CYTHON_USE_AM_SEND
#define __PYX_HAS_PY_AM_SEND 0
#elif __PYX_LIMITED_VERSION_HEX >= 0x030A0000
#define __PYX_HAS_PY_AM_SEND 1
#else
#define __PYX_HAS_PY_AM_SEND 2  // our own backported implementation
#endif
#if __PYX_HAS_PY_AM_SEND < 2
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
#else
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
        __Pyx_pyiter_sendfunc am_send;
    } __Pyx_PyAsyncMethodsStruct;
    #define __Pyx_SlotTpAsAsync(s) ((PyAsyncMethods*)(s))
#endif
#if CYTHON_USE_AM_SEND && PY_VERSION_HEX < 0x030A00F0
    #define __Pyx_TPFLAGS_HAVE_AM_SEND (1UL << 21)
#else
    #define __Pyx_TPFLAGS_HAVE_AM_SEND (0)
#endif
#if PY_VERSION_HEX >= 0x03090000
#define __Pyx_PyInterpreterState_Get() PyInterpreterState_Get()
#else
#define __Pyx_PyInterpreterState_Get() PyThreadState_Get()->interp
#endif
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030A0000
#ifdef __cplusplus
extern "C"
#endif
PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_init_co_variable(PyObject *inspect, const char* name, int *write_to) {
    int value;
    PyObject *py_value = PyObject_GetAttrString(inspect, name);
    if (!py_value) return 0;
    value = (int) PyLong_AsLong(py_value);
    Py_DECREF(py_value);
    *write_to = value;
    return value != -1 || !PyErr_Occurred();
}
static int __Pyx_init_co_variables(void) {
    PyObject *inspect;
    int result;
    inspect = PyImport_ImportModule("inspect");
    result =
#if !defined(CO_OPTIMIZED)
        __Pyx_init_co_variable(inspect, "CO_OPTIMIZED", &CO_OPTIMIZED) &&
#endif
#if !defined(CO_NEWLOCALS)
        __Pyx_init_co_variable(inspect, "CO_NEWLOCALS", &CO_NEWLOCALS) &&
#endif
#if !defined(CO_VARARGS)
        __Pyx_init_co_variable(inspect, "CO_VARARGS", &CO_VARARGS) &&
#endif
#if !defined(CO_VARKEYWORDS)
        __Pyx_init_co_variable(inspect, "CO_VARKEYWORDS", &CO_VARKEYWORDS) &&
#endif
#if !defined(CO_ASYNC_GENERATOR)
        __Pyx_init_co_variable(inspect, "CO_ASYNC_GENERATOR", &CO_ASYNC_GENERATOR) &&
#endif
#if !defined(CO_GENERATOR)
        __Pyx_init_co_variable(inspect, "CO_GENERATOR", &CO_GENERATOR) &&
#endif
#if !defined(CO_COROUTINE)
        __Pyx_init_co_variable(inspect, "CO_COROUTINE", &CO_COROUTINE) &&
#endif
        1;
    Py_DECREF(inspect);
    return result ? 0 : -1;
}
#else
static int __Pyx_init_co_variables(void) {
    return 0;  // It's a limited API-only feature
}
#endif

/* MathInitCode */
#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
  #ifndef _USE_MATH_DEFINES
    #define _USE_MATH_DEFINES
  #endif
#endif
#include <math.h>
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME 0
#endif
#ifndef CYTHON_CLINE_IN_TRACEBACK
#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#endif
#if CYTHON_CLINE_IN_TRACEBACK
#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; __pyx_clineno = __LINE__; (void) __pyx_clineno; }
#else
#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; (void) __pyx_clineno; }
#endif
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifdef CYTHON_EXTERN_C
    #undef __PYX_EXTERN_C
    #define __PYX_EXTERN_C CYTHON_EXTERN_C
#elif defined(__PYX_EXTERN_C)
    #ifdef _MSC_VER
    #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
    #else
    #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
    #endif
#else
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__django_templates_cythonized__base
#define __PYX_HAVE_API__django_templates_cythonized__base
/* Early includes */
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

#ifdef CYTHON_FREETHREADING_COMPATIBLE
#if CYTHON_FREETHREADING_COMPATIBLE
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED
#else
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
#endif
#else
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
#endif
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AS_STRING(s)
#else
    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AsString(s))
    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AsString(s)
#endif
#define __Pyx_PyObject_AsWritableString(s)    ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
#define __Pyx_PyUnicode_FromOrdinal(o)       PyUnicode_FromOrdinal((int)o)
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
static CYTHON_INLINE PyObject *__Pyx_NewRef(PyObject *obj) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_NewRef)
    return Py_NewRef(obj);
#else
    Py_INCREF(obj);
    return obj;
#endif
}
static CYTHON_INLINE PyObject *__Pyx_XNewRef(PyObject *obj) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_XNewRef)
    return Py_XNewRef(obj);
#else
    Py_XINCREF(obj);
    return obj;
#endif
}
static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b);
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __Pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AS_DOUBLE(x)
#else
#define __Pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AsDouble(x)
#endif
#define __Pyx_PyFloat_AsFloat(x) ((float) __Pyx_PyFloat_AsDouble(x))
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_VERSION_HEX >= 0x030C00A7
  #ifndef _PyLong_SIGN_MASK
    #define _PyLong_SIGN_MASK 3
  #endif
  #ifndef _PyLong_NON_SIZE_BITS
    #define _PyLong_NON_SIZE_BITS 3
  #endif
  #define __Pyx_PyLong_Sign(x)  (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
  #define __Pyx_PyLong_IsNeg(x)  ((__Pyx_PyLong_Sign(x) & 2) != 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (!__Pyx_PyLong_IsNeg(x))
  #define __Pyx_PyLong_IsZero(x)  (__Pyx_PyLong_Sign(x) & 1)
  #define __Pyx_PyLong_IsPos(x)  (__Pyx_PyLong_Sign(x) == 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  (__Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
  #define __Pyx_PyLong_SignedDigitCount(x)\
        ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
  #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
    #define __Pyx_PyLong_IsCompact(x)     PyUnstable_Long_IsCompact((PyLongObject*) x)
    #define __Pyx_PyLong_CompactValue(x)  PyUnstable_Long_CompactValue((PyLongObject*) x)
  #else
    #define __Pyx_PyLong_IsCompact(x)     (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
    #define __Pyx_PyLong_CompactValue(x)  ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
  #endif
  typedef Py_ssize_t  __Pyx_compact_pylong;
  typedef size_t  __Pyx_compact_upylong;
  #else
  #define __Pyx_PyLong_IsNeg(x)  (Py_SIZE(x) < 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (Py_SIZE(x) >= 0)
  #define __Pyx_PyLong_IsZero(x)  (Py_SIZE(x) == 0)
  #define __Pyx_PyLong_IsPos(x)  (Py_SIZE(x) > 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  __Pyx_sst_abs(Py_SIZE(x))
  #define __Pyx_PyLong_SignedDigitCount(x)  Py_SIZE(x)
  #define __Pyx_PyLong_IsCompact(x)  (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
  #define __Pyx_PyLong_CompactValue(x)\
        ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
  typedef sdigit  __Pyx_compact_pylong;
  typedef digit  __Pyx_compact_upylong;
  #endif
  #if PY_VERSION_HEX >= 0x030C00A5
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->long_value.ob_digit)
  #else
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->ob_digit)
  #endif
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#elif __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeASCII(c_str, size, NULL)
#else
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
/* PretendToInitialize */
#ifdef __cplusplus
#if __cplusplus > 201103L
#include <type_traits>
#endif
template <typename T>
static void __Pyx_pretend_to_initialize(T* ptr) {
#if __cplusplus > 201103L
    if ((std::is_trivially_default_constructible<T>::value))
#endif
        *ptr = T();
    (void)ptr;
}
#else
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
#endif


#if !CYTHON_USE_MODULE_STATE
static PyObject *__pyx_m = NULL;
#endif
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * const __pyx_cfilenm = __FILE__;
static const char *__pyx_filename;

/* #### Code section: filename_table ### */

static const char* const __pyx_f[] = {
  "django_templates_cythonized/base.py",
  "django_templates_cythonized/base.pxd",
  "<stringsource>",
  "django_templates_cythonized/context.pxd",
};
/* #### Code section: utility_code_proto_before_types ### */
/* Atomics.proto (used by UnpackUnboundCMethod) */
#include <pythread.h>
#ifndef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 1
#endif
#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
#define __PYX_GET_CYTHON_COMPILING_IN_CPYTHON_FREETHREADING() CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __pyx_atomic_int_type int
#define __pyx_nonatomic_int_type int
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__))
    #include <stdatomic.h>
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)))
    #include <atomic>
#endif
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__) &&\
                       ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type atomic_int
    #define __pyx_atomic_ptr_type atomic_uintptr_t
    #define __pyx_nonatomic_ptr_type uintptr_t
    #define __pyx_atomic_incr_relaxed(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
    #define __pyx_atomic_incr_acq_rel(value) atomic_fetch_add_explicit(value, 1, memory_order_acq_rel)
    #define __pyx_atomic_decr_acq_rel(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
    #define __pyx_atomic_sub(value, arg) atomic_fetch_sub(value, arg)
    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
    #define __pyx_atomic_load(value) atomic_load(value)
    #define __pyx_atomic_store(value, new_value) atomic_store(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) atomic_load_explicit(value, memory_order_relaxed)
    #define __pyx_atomic_pointer_load_acquire(value) atomic_load_explicit(value, memory_order_acquire)
    #define __pyx_atomic_pointer_exchange(value, new_value) atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
    #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C atomics"
    #endif
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
                    ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type std::atomic_int
    #define __pyx_atomic_ptr_type std::atomic_uintptr_t
    #define __pyx_nonatomic_ptr_type uintptr_t
    #define __pyx_atomic_incr_relaxed(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
    #define __pyx_atomic_incr_acq_rel(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_acq_rel)
    #define __pyx_atomic_decr_acq_rel(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
    #define __pyx_atomic_sub(value, arg) std::atomic_fetch_sub(value, arg)
    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
    #define __pyx_atomic_load(value) std::atomic_load(value)
    #define __pyx_atomic_store(value, new_value) std::atomic_store(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) std::atomic_load_explicit(value, std::memory_order_relaxed)
    #define __pyx_atomic_pointer_load_acquire(value) std::atomic_load_explicit(value, std::memory_order_acquire)
    #define __pyx_atomic_pointer_exchange(value, new_value) std::atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
    #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C++ atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C++ atomics"
    #endif
#elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
                    (__GNUC_MINOR__ > 1 ||\
                    (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
    #define __pyx_atomic_ptr_type void*
    #define __pyx_nonatomic_ptr_type void*
    #define __pyx_atomic_incr_relaxed(value) __sync_fetch_and_add(value, 1)
    #define __pyx_atomic_incr_acq_rel(value) __sync_fetch_and_add(value, 1)
    #define __pyx_atomic_decr_acq_rel(value) __sync_fetch_and_sub(value, 1)
    #define __pyx_atomic_sub(value, arg) __sync_fetch_and_sub(value, arg)
    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
        __pyx_nonatomic_int_type old = __sync_val_compare_and_swap(value, *expected, desired);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #define __pyx_atomic_load(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_store(value, new_value) __sync_lock_test_and_set(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_pointer_load_acquire(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_pointer_exchange(value, new_value) __sync_lock_test_and_set(value, (__pyx_atomic_ptr_type)new_value)
    static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
        __pyx_nonatomic_ptr_type old = __sync_val_compare_and_swap(value, *expected, desired);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Using GNU atomics"
    #endif
#elif CYTHON_ATOMICS && defined(_MSC_VER)
    #include <intrin.h>
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type long
    #define __pyx_atomic_ptr_type void*
    #undef __pyx_nonatomic_int_type
    #define __pyx_nonatomic_int_type long
    #define __pyx_nonatomic_ptr_type void*
    #pragma intrinsic (_InterlockedExchangeAdd, _InterlockedExchange, _InterlockedCompareExchange, _InterlockedCompareExchangePointer, _InterlockedExchangePointer)
    #define __pyx_atomic_incr_relaxed(value) _InterlockedExchangeAdd(value, 1)
    #define __pyx_atomic_incr_acq_rel(value) _InterlockedExchangeAdd(value, 1)
    #define __pyx_atomic_decr_acq_rel(value) _InterlockedExchangeAdd(value, -1)
    #define __pyx_atomic_sub(value, arg) _InterlockedExchangeAdd(value, -arg)
    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
        __pyx_nonatomic_int_type old = _InterlockedCompareExchange(value, desired, *expected);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #define __pyx_atomic_load(value) _InterlockedExchangeAdd(value, 0)
    #define __pyx_atomic_store(value, new_value) _InterlockedExchange(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) *(void * volatile *)value
    #define __pyx_atomic_pointer_load_acquire(value) _InterlockedCompareExchangePointer(value, 0, 0)
    #define __pyx_atomic_pointer_exchange(value, new_value) _InterlockedExchangePointer(value, (__pyx_atomic_ptr_type)new_value)
    static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
        __pyx_atomic_ptr_type old = _InterlockedCompareExchangePointer(value, desired, *expected);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #ifdef __PYX_DEBUG_ATOMICS
        #pragma message ("Using MSVC atomics")
    #endif
#else
    #undef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 0
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Not using atomics"
    #endif
#endif

/* CriticalSectionsDefinition.proto (used by CriticalSections) */
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyCriticalSection void*
#define __Pyx_PyCriticalSection2 void*
#define __Pyx_PyCriticalSection_End(cs)
#define __Pyx_PyCriticalSection2_End(cs)
#else
#define __Pyx_PyCriticalSection PyCriticalSection
#define __Pyx_PyCriticalSection2 PyCriticalSection2
#define __Pyx_PyCriticalSection_End PyCriticalSection_End
#define __Pyx_PyCriticalSection2_End PyCriticalSection2_End
#endif

/* CriticalSections.proto (used by ParseKeywordsImpl) */
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyCriticalSection_Begin(cs, arg) (void)(cs)
#define __Pyx_PyCriticalSection2_Begin(cs, arg1, arg2) (void)(cs)
#else
#define __Pyx_PyCriticalSection_Begin PyCriticalSection_Begin
#define __Pyx_PyCriticalSection2_Begin PyCriticalSection2_Begin
#endif
#if PY_VERSION_HEX < 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_BEGIN_CRITICAL_SECTION(o) {
#define __Pyx_END_CRITICAL_SECTION() }
#else
#define __Pyx_BEGIN_CRITICAL_SECTION Py_BEGIN_CRITICAL_SECTION
#define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION
#endif

/* IncludeStructmemberH.proto (used by FixUpExtensionType) */
#include <structmember.h>

/* #### Code section: numeric_typedefs ### */
/* #### Code section: complex_type_declarations ### */
/* #### Code section: type_declarations ### */

/*--- Type declarations ---*/
struct __pyx_obj_27django_templates_cythonized_7context_BaseContext;
struct __pyx_obj_27django_templates_cythonized_7context_RenderContext;
struct __pyx_obj_27django_templates_cythonized_7context_Context;
struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo;
struct __pyx_obj_27django_templates_cythonized_4base_Node;
struct __pyx_obj_27django_templates_cythonized_4base_TextNode;
struct __pyx_obj_27django_templates_cythonized_4base_NodeList;
struct __pyx_obj_27django_templates_cythonized_4base_Template;
struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression;
struct __pyx_obj_27django_templates_cythonized_4base_VariableNode;
struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate;
struct __pyx_obj_27django_templates_cythonized_4base_Variable;
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr;
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter;
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions;
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split;
struct __pyx_opt_args_27django_templates_cythonized_7formats_localize;
struct __pyx_opt_args_27django_templates_cythonized_7formats_number_format;

/* "django_templates_cythonized/formats.pxd":4
 * 
 * cdef bint _float_is_str_fast(lang)
 * cpdef localize(value, use_l10n=*, lang=*)             # <<<<<<<<<<<<<<
 * cpdef number_format(value, decimal_pos=*, use_l10n=*, force_grouping=*, lang=*)
*/
struct __pyx_opt_args_27django_templates_cythonized_7formats_localize {
  int __pyx_n;
  PyObject *use_l10n;
  PyObject *lang;
};

/* "django_templates_cythonized/formats.pxd":5
 * cdef bint _float_is_str_fast(lang)
 * cpdef localize(value, use_l10n=*, lang=*)
 * cpdef number_format(value, decimal_pos=*, use_l10n=*, force_grouping=*, lang=*)             # <<<<<<<<<<<<<<
*/
struct __pyx_opt_args_27django_templates_cythonized_7formats_number_format {
  int __pyx_n;
  PyObject *decimal_pos;
  PyObject *use_l10n;
  PyObject *force_grouping;
  PyObject *lang;
};
struct __pyx_opt_args_27django_templates_cythonized_8timezone_template_localtime;

/* "django_templates_cythonized/timezone.pxd":3
 * # C-level declarations for cross-module access to template_localtime.
 * 
 * cpdef template_localtime(value, use_tz=*)             # <<<<<<<<<<<<<<
*/
struct __pyx_opt_args_27django_templates_cythonized_8timezone_template_localtime {
  int __pyx_n;
  PyObject *use_tz;
};
struct __pyx_opt_args_27django_templates_cythonized_4base_16FilterExpression_resolve;

/* "django_templates_cythonized/base.pxd":50
 *     cdef public bint is_var
 *     cdef public int _fast_filter
 *     cpdef resolve(self, Context context, ignore_failures=*)             # <<<<<<<<<<<<<<
 * 
 * cdef class VariableNode(Node):
*/
struct __pyx_opt_args_27django_templates_cythonized_4base_16FilterExpression_resolve {
  int __pyx_n;
  PyObject *ignore_failures;
};

/* "django_templates_cythonized/context.pxd":3
 * # C-level declarations for context cclass hierarchy.
 * 
 * cdef class BaseContext:             # <<<<<<<<<<<<<<
 *     cdef public list dicts
 * 
*/
struct __pyx_obj_27django_templates_cythonized_7context_BaseContext {
  PyObject_HEAD
  PyObject *dicts;
};


/* "django_templates_cythonized/context.pxd":6
 *     cdef public list dicts
 * 
 * cdef class RenderContext(BaseContext):             # <<<<<<<<<<<<<<
 *     cdef public object template
 * 
*/
struct __pyx_obj_27django_templates_cythonized_7context_RenderContext {
  struct __pyx_obj_27django_templates_cythonized_7context_BaseContext __pyx_base;
  PyObject *__pyx_template;
};


/* "django_templates_cythonized/context.pxd":9
 *     cdef public object template
 * 
 * cdef class Context(BaseContext):             # <<<<<<<<<<<<<<
 *     cdef public bint autoescape
 *     cdef public object use_l10n
*/
struct __pyx_obj_27django_templates_cythonized_7context_Context {
  struct __pyx_obj_27django_templates_cythonized_7context_BaseContext __pyx_base;
  int autoescape;
  PyObject *use_l10n;
  PyObject *use_tz;
  PyObject *template_name;
  struct __pyx_obj_27django_templates_cythonized_7context_RenderContext *render_context;
  PyObject *__pyx_template;
  PyObject *_lang;
};


/* "django_templates_cythonized/base.pxd":8
 * from django_templates_cythonized.context cimport Context
 * 
 * cdef class CFilterInfo:             # <<<<<<<<<<<<<<
 *     cdef public object func
 *     cdef public list args
*/
struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo {
  PyObject_HEAD
  PyObject *func;
  PyObject *args;
  int expects_localtime;
  int needs_autoescape;
  int is_safe;
};


/* "django_templates_cythonized/base.pxd":15
 *     cdef public bint is_safe
 * 
 * cdef class Node:             # <<<<<<<<<<<<<<
 *     cdef public object token
 *     cdef public object origin
*/
struct __pyx_obj_27django_templates_cythonized_4base_Node {
  PyObject_HEAD
  struct __pyx_vtabstruct_27django_templates_cythonized_4base_Node *__pyx_vtab;
  PyObject *token;
  PyObject *origin;
};


/* "django_templates_cythonized/base.pxd":22
 *     cpdef get_nodes_by_type(self, nodetype)
 * 
 * cdef class TextNode(Node):             # <<<<<<<<<<<<<<
 *     cdef public str s
 *     cpdef render(self, Context context)
*/
struct __pyx_obj_27django_templates_cythonized_4base_TextNode {
  struct __pyx_obj_27django_templates_cythonized_4base_Node __pyx_base;
  PyObject *s;
};


/* "django_templates_cythonized/base.pxd":27
 *     cpdef render_annotated(self, Context context)
 * 
 * cdef class NodeList:             # <<<<<<<<<<<<<<
 *     cdef public list _nodes
 *     cdef public bint contains_nontext
*/
struct __pyx_obj_27django_templates_cythonized_4base_NodeList {
  PyObject_HEAD
  struct __pyx_vtabstruct_27django_templates_cythonized_4base_NodeList *__pyx_vtab;
  PyObject *_nodes;
  int contains_nontext;
};


/* "django_templates_cythonized/base.pxd":33
 *     cpdef get_nodes_by_type(self, nodetype)
 * 
 * cdef class Template:             # <<<<<<<<<<<<<<
 *     cdef public object name
 *     cdef public object origin
*/
struct __pyx_obj_27django_templates_cythonized_4base_Template {
  PyObject_HEAD
  struct __pyx_vtabstruct_27django_templates_cythonized_4base_Template *__pyx_vtab;
  PyObject *name;
  PyObject *origin;
  PyObject *engine;
  PyObject *source;
  struct __pyx_obj_27django_templates_cythonized_4base_NodeList *nodelist;
  PyObject *extra_data;
};


/* "django_templates_cythonized/base.pxd":44
 *     cpdef compile_nodelist(self)
 * 
 * cdef class FilterExpression:             # <<<<<<<<<<<<<<
 *     cdef public object token
 *     cdef public list filters
*/
struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression {
  PyObject_HEAD
  struct __pyx_vtabstruct_27django_templates_cythonized_4base_FilterExpression *__pyx_vtab;
  PyObject *token;
  PyObject *filters;
  PyObject *var;
  int is_var;
  int _fast_filter;
};


/* "django_templates_cythonized/base.pxd":52
 *     cpdef resolve(self, Context context, ignore_failures=*)
 * 
 * cdef class VariableNode(Node):             # <<<<<<<<<<<<<<
 *     cdef public FilterExpression filter_expression
 *     cpdef render(self, Context context)
*/
struct __pyx_obj_27django_templates_cythonized_4base_VariableNode {
  struct __pyx_obj_27django_templates_cythonized_4base_Node __pyx_base;
  struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *filter_expression;
};


/* "django_templates_cythonized/base.py":395
 * 
 * @cython.cclass
 * class PartialTemplate:             # <<<<<<<<<<<<<<
 *     """
 *     A lightweight Template lookalike used for template partials.
*/
struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate {
  PyObject_HEAD
  struct __pyx_vtabstruct_27django_templates_cythonized_4base_PartialTemplate *__pyx_vtab;
  PyObject *nodelist;
  PyObject *origin;
  PyObject *name;
  PyObject *_source_start;
  PyObject *_source_end;
};


/* "django_templates_cythonized/base.py":1008
 * 
 * @cython.cclass
 * class Variable:             # <<<<<<<<<<<<<<
 *     """
 *     A template variable, resolvable against a given context. The variable may
*/
struct __pyx_obj_27django_templates_cythonized_4base_Variable {
  PyObject_HEAD
  struct __pyx_vtabstruct_27django_templates_cythonized_4base_Variable *__pyx_vtab;
  PyObject *var;
  PyObject *literal;
  PyObject *lookups;
  int translate;
  PyObject *message_context;
};


/* "django_templates_cythonized/base.py":211
 *     if changed:
 *         # Recompute contains_nontext flag
 *         nodelist.contains_nontext = any(not isinstance(n, TextNode) for n in nodes)             # <<<<<<<<<<<<<<
 * 
 * 
*/
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr {
  PyObject_HEAD
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_n;
};


/* "django_templates_cythonized/base.py":474
 * 
 * 
 * def linebreak_iter(template_source):             # <<<<<<<<<<<<<<
 *     yield 0
 *     p = template_source.find("\n")
*/
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter {
  PyObject_HEAD
  PyObject *__pyx_v_p;
  PyObject *__pyx_v_template_source;
};


/* "django_templates_cythonized/base.py":593
 * 
 * class DebugLexer(Lexer):
 *     def _tag_re_split_positions(self):             # <<<<<<<<<<<<<<
 *         last = 0
 *         for match in tag_re.finditer(self.template_string):
*/
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions {
  PyObject_HEAD
  PyObject *__pyx_v_end;
  PyObject *__pyx_v_last;
  PyObject *__pyx_v_match;
  PyObject *__pyx_v_self;
  PyObject *__pyx_v_start;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "django_templates_cythonized/base.py":603
 * 
 *     # This parallels the use of tag_re.split() in Lexer.tokenize().
 *     def _tag_re_split(self):             # <<<<<<<<<<<<<<
 *         for position in self._tag_re_split_positions():
 *             yield self.template_string[slice(*position)], position
*/
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split {
  PyObject_HEAD
  PyObject *__pyx_v_position;
  PyObject *__pyx_v_self;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};



/* "django_templates_cythonized/base.py":1222
 * 
 * 
 * class Node:             # <<<<<<<<<<<<<<
 *     # Set this to True for nodes that must be first in the template (although
 *     # they can be preceded by text nodes.
*/

struct __pyx_vtabstruct_27django_templates_cythonized_4base_Node {
  PyObject *(*render)(struct __pyx_obj_27django_templates_cythonized_4base_Node *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch);
  PyObject *(*render_annotated)(struct __pyx_obj_27django_templates_cythonized_4base_Node *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch);
  PyObject *(*get_nodes_by_type)(struct __pyx_obj_27django_templates_cythonized_4base_Node *, PyObject *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_Node *__pyx_vtabptr_27django_templates_cythonized_4base_Node;


/* "django_templates_cythonized/base.py":1388
 * 
 * 
 * class TextNode(Node):             # <<<<<<<<<<<<<<
 *     child_nodelists = ()
 * 
*/

struct __pyx_vtabstruct_27django_templates_cythonized_4base_TextNode {
  struct __pyx_vtabstruct_27django_templates_cythonized_4base_Node __pyx_base;
};
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_TextNode *__pyx_vtabptr_27django_templates_cythonized_4base_TextNode;


/* "django_templates_cythonized/base.py":1282
 * 
 * @cython.cclass
 * class NodeList:             # <<<<<<<<<<<<<<
 *     # Declared in base.pxd when compiled; provide Python-level defaults.
 *     if not cython.compiled:
*/

struct __pyx_vtabstruct_27django_templates_cythonized_4base_NodeList {
  PyObject *(*render)(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch);
  PyObject *(*get_nodes_by_type)(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *, PyObject *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_NodeList *__pyx_vtabptr_27django_templates_cythonized_4base_NodeList;


/* "django_templates_cythonized/base.py":215
 * 
 * @cython.cclass
 * class Template:             # <<<<<<<<<<<<<<
 *     def __init__(self, template_string, origin=None, name=None, engine=None):
 *         # If Template is instantiated directly rather than from an Engine and
*/

struct __pyx_vtabstruct_27django_templates_cythonized_4base_Template {
  PyObject *(*_render)(struct __pyx_obj_27django_templates_cythonized_4base_Template *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch);
  PyObject *(*render)(struct __pyx_obj_27django_templates_cythonized_4base_Template *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*compile_nodelist)(struct __pyx_obj_27django_templates_cythonized_4base_Template *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_Template *__pyx_vtabptr_27django_templates_cythonized_4base_Template;


/* "django_templates_cythonized/base.py":858
 * 
 * @cython.cclass
 * class FilterExpression:             # <<<<<<<<<<<<<<
 *     """
 *     Parse a variable token and its optional filters (all as a single string),
*/

struct __pyx_vtabstruct_27django_templates_cythonized_4base_FilterExpression {
  PyObject *(*resolve)(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch, struct __pyx_opt_args_27django_templates_cythonized_4base_16FilterExpression_resolve *__pyx_optional_args);
};
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_FilterExpression *__pyx_vtabptr_27django_templates_cythonized_4base_FilterExpression;


/* "django_templates_cythonized/base.py":1826
 * 
 * 
 * class VariableNode(Node):             # <<<<<<<<<<<<<<
 *     child_nodelists = ()
 * 
*/

struct __pyx_vtabstruct_27django_templates_cythonized_4base_VariableNode {
  struct __pyx_vtabstruct_27django_templates_cythonized_4base_Node __pyx_base;
};
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_VariableNode *__pyx_vtabptr_27django_templates_cythonized_4base_VariableNode;


/* "django_templates_cythonized/base.py":395
 * 
 * @cython.cclass
 * class PartialTemplate:             # <<<<<<<<<<<<<<
 *     """
 *     A lightweight Template lookalike used for template partials.
*/

struct __pyx_vtabstruct_27django_templates_cythonized_4base_PartialTemplate {
  PyObject *(*get_exception_info)(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *, PyObject *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*find_partial_source)(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*_render)(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch);
  PyObject *(*render)(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_PartialTemplate *__pyx_vtabptr_27django_templates_cythonized_4base_PartialTemplate;


/* "django_templates_cythonized/base.py":1008
 * 
 * @cython.cclass
 * class Variable:             # <<<<<<<<<<<<<<
 *     """
 *     A template variable, resolvable against a given context. The variable may
*/

struct __pyx_vtabstruct_27django_templates_cythonized_4base_Variable {
  PyObject *(*resolve)(struct __pyx_obj_27django_templates_cythonized_4base_Variable *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*_resolve_lookup)(struct __pyx_obj_27django_templates_cythonized_4base_Variable *, PyObject *);
};
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_Variable *__pyx_vtabptr_27django_templates_cythonized_4base_Variable;
/* #### Code section: utility_code_proto ### */

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, Py_ssize_t);
    void (*DECREF)(void*, PyObject*, Py_ssize_t);
    void (*GOTREF)(void*, PyObject*, Py_ssize_t);
    void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
    void* (*SetupContext)(const char*, Py_ssize_t, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_XINCREF(r)  do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContextNogil()
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_Py_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; Py_XDECREF(tmp);\
    } while (0)
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyErrExceptionMatches.proto (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* PyThreadStateGet.proto (used by PyErrFetchRestore) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#if PY_VERSION_HEX >= 0x030C00A6
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->current_exception != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
#else
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->curexc_type != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->curexc_type)
#endif
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  (PyErr_Occurred() != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* PyObjectGetAttrStr.proto (used by PyObjectGetAttrStrNoError) */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* PyObjectGetAttrStrNoError.proto (used by GetBuiltinName) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* TupleAndListFromArray.proto (used by fastcall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
#endif
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
#endif

/* IncludeStringH.proto (used by BytesEquals) */
#include <string.h>

/* BytesEquals.proto (used by UnicodeEquals) */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto (used by fastcall) */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* fastcall.proto */
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i)
#elif CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i))
#else
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i))
#endif
#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
#define __Pyx_KwValues_VARARGS(args, nargs) NULL
#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
#if CYTHON_METH_FASTCALL
    #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i])
    #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds)
    #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
    static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
  #else
    #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
  #endif
#else
    #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS
    #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
    #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
    #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
    #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
#endif
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
#if CYTHON_METH_FASTCALL || (CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start)
#else
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
#endif

/* py_dict_items.proto (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);

/* CallCFunction.proto (used by CallUnboundCMethod0) */
#define __Pyx_CallCFunction(cfunc, self, args)\
    ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args)
#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\
    ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs)
#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\
    ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs)
#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\
    ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames)

/* PyObjectCall.proto (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectFastCall.proto (used by PyObjectCallOneArg) */
#define __Pyx_PyObject_FastCall(func, args, nargs)  __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs);

/* PyObjectCallOneArg.proto (used by CallUnboundCMethod0) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */
typedef struct {
    PyObject *type;
    PyObject **method_name;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS
    __pyx_atomic_int_type initialized;
#endif
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) {
#if !CYTHON_ATOMICS
    return 1;
#else
    __pyx_nonatomic_int_type expected = 0;
    if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) {
        return 0;
    }
    return expected;
#endif
}
static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) {
#if CYTHON_ATOMICS
    __pyx_atomic_store(&cfunc->initialized, 2);
#endif
}
#else
#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2
#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc)
#endif

/* CallUnboundCMethod0.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#endif

/* py_dict_values.proto (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);

/* OwnedDictNext.proto (used by ParseKeywordsImpl) */
#if CYTHON_AVOID_BORROWED_REFS
static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue);
#else
CYTHON_INLINE
static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue);
#endif

/* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywordsImpl.export */
static int __Pyx_ParseKeywordsTuple(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);
static int __Pyx_ParseKeywordDictToDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name
);
static int __Pyx_ParseKeywordDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);

/* CallUnboundCMethod2.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
#else
#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2)  __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
#endif

/* ParseKeywords.proto */
static CYTHON_INLINE int __Pyx_ParseKeywords(
    PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[],
    PyObject *kwds2, PyObject *values[],
    Py_ssize_t num_pos_args, Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* PyObjectDelAttr.proto (used by PyObjectSetAttrStr) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
#define __Pyx_PyObject_DelAttr(o, n) PyObject_SetAttr(o, n, NULL)
#else
#define __Pyx_PyObject_DelAttr(o, n) PyObject_DelAttr(o, n)
#endif

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   __Pyx_PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* PyObjectFormatAndDecref.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f);
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f);

/* JoinPyUnicode.export */
static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char);

/* PyDictVersioning.proto (used by GetModuleGlobalName) */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  do {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_mstate_global->__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  do {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* RaiseUnboundLocalError.proto */
static void __Pyx_RaiseUnboundLocalError(const char *varname);

/* GetException.proto (used by pep479) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* pep479.proto */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen);

/* HasAttr.proto (used by ImportImpl) */
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_HasAttr(o, n)  PyObject_HasAttrWithError(o, n)
#else
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
#endif

/* ImportImpl.export */
static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level);

/* Import.proto */
static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* RaiseUnexpectedTypeError.proto */
static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck, unsafe_shared) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck, int unsafe_shared);

/* PyObjectFastCallMethod.proto */
#if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000
#define __Pyx_PyObject_FastCallMethod(name, args, nargsf) PyObject_VectorcallMethod(name, args, nargsf, NULL)
#else
static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf);
#endif

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* PyObjectCallNoArg.proto (used by pyfrozenset_new) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);

/* pyfrozenset_new.proto (used by PySetContains) */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it);

/* PySetContains.proto */
static CYTHON_INLINE int __Pyx_PySet_ContainsTF(PyObject* key, PyObject* set, int eq);

/* SliceObject.proto */
#define __Pyx_PyObject_DelSlice(obj, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound)\
    __Pyx_PyObject_SetSlice(obj, (PyObject*)NULL, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound)
static CYTHON_INLINE int __Pyx_PyObject_SetSlice(
        PyObject* obj, PyObject* value, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* GetTopmostException.proto (used by SaveResetException) */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* PyAttributeError_Check.proto */
#define __Pyx_PyExc_AttributeError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_AttributeError)

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) {
    return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2);
}
#endif
#define __Pyx_PyErr_ExceptionMatches2(err1, err2)  __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
#ifdef PyExceptionInstance_Check
  #define __Pyx_PyBaseException_Check(obj) PyExceptionInstance_Check(obj)
#else
  #define __Pyx_PyBaseException_Check(obj) __Pyx_TypeCheck(obj, PyExc_BaseException)
#endif

/* GetAttr3.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* PyObject_Unicode.proto */
#define __Pyx_PyObject_Unicode(obj)\
    (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj))

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* PyUnicode_Substring.proto */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring(
            PyObject* text, Py_ssize_t start, Py_ssize_t stop);

/* ArgTypeTestFunc.export */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))

/* PyTypeError_Check.proto */
#define __Pyx_PyExc_TypeError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_TypeError)

/* RaiseException.export */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* ListAppend.proto (used by append) */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
        L->ob_item[len] = x;
        #else
        PyList_SET_ITEM(list, len, x);
        #endif
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* PyObjectCall2Args.proto (used by PyObjectCallMethod1) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* PyObjectGetMethod.proto (used by PyObjectCallMethod1) */
#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
#endif

/* PyObjectCallMethod1.proto (used by append) */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* append.proto */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x);

/* PyObjectLookupSpecial.proto */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 0)
#define __Pyx_PyObject_LookupSpecial(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 1)
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error);
#else
#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n)
#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
#endif

/* SwapException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* PyObjectCallMethod0.proto (used by pop) */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* pop.proto */
static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L);
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L);
#define __Pyx_PyObject_Pop(L) (likely(PyList_CheckExact(L)) ?\
    __Pyx_PyList_Pop(L) : __Pyx__PyObject_Pop(L))
#else
#define __Pyx_PyList_Pop(L)  __Pyx__PyObject_Pop(L)
#define __Pyx_PyObject_Pop(L)  __Pyx__PyObject_Pop(L)
#endif

/* PyObjectFormatSimple.proto */
#if CYTHON_COMPILING_IN_PYPY
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#elif CYTHON_USE_TYPE_SLOTS
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\
        likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\
        PyObject_Format(s, f))
#else
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#endif

/* SliceObject.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
        PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* ListExtend.proto */
static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00a2
    return PyList_Extend(L, v);
#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    PyObject* none = _PyList_Extend((PyListObject*)L, v);
    if (unlikely(!none))
        return -1;
    Py_DECREF(none);
    return 0;
#else
    return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
#endif
}

/* RejectKeywords.export */
static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds);

/* PyLongBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* PyIndexError_Check.proto */
#define __Pyx_PyExc_IndexError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_IndexError)

/* PyUnicodeDecodeError_Check.proto */
#define __Pyx_PyExc_UnicodeDecodeError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_UnicodeDecodeError)

/* SliceTupleAndList.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
#else
#define __Pyx_PyList_GetSlice(seq, start, stop)   PySequence_GetSlice(seq, start, stop)
#define __Pyx_PyTuple_GetSlice(seq, start, stop)  PySequence_GetSlice(seq, start, stop)
#endif

/* PyRuntimeWarning_Check.proto */
#define __Pyx_PyExc_RuntimeWarning_Check(obj)  __Pyx_TypeCheck(obj, PyExc_RuntimeWarning)

/* PyObjectVectorCallKwBuilder.proto */
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);
#if CYTHON_VECTORCALL
#if PY_VERSION_HEX >= 0x03090000
#define __Pyx_Object_Vectorcall_CallFromBuilder PyObject_Vectorcall
#else
#define __Pyx_Object_Vectorcall_CallFromBuilder _PyObject_Vectorcall
#endif
#define __Pyx_MakeVectorcallBuilderKwds(n) PyTuple_New(n)
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);
static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n);
#else
#define __Pyx_Object_Vectorcall_CallFromBuilder __Pyx_PyObject_FastCallDict
#define __Pyx_MakeVectorcallBuilderKwds(n) __Pyx_PyDict_NewPresized(n)
#define __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n) PyDict_SetItem(builder, key, value)
#define __Pyx_VectorcallBuilder_AddArgStr(key, value, builder, args, n) PyDict_SetItemString(builder, key, value)
#endif

/* IterNextPlain.proto (used by IterNext) */
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator);
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void);
#endif

/* IterNext.proto */
#define __Pyx_PyIter_Next(obj) __Pyx_PyIter_Next2(obj, NULL)
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject *, PyObject *);

/* AssertionsEnabled.proto */
#if CYTHON_COMPILING_IN_LIMITED_API  ||  PY_VERSION_HEX >= 0x030C0000
  static int __pyx_assertions_enabled_flag;
  #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag)
  #if __clang__ || __GNUC__
  __attribute__((no_sanitize("thread")))
  #endif
  static int __Pyx_init_assertions_enabled(void) {
    PyObject *builtins, *debug, *debug_str;
    int flag;
    builtins = PyEval_GetBuiltins();
    if (!builtins) goto bad;
    debug_str = PyUnicode_FromStringAndSize("__debug__", 9);
    if (!debug_str) goto bad;
    debug = PyObject_GetItem(builtins, debug_str);
    Py_DECREF(debug_str);
    if (!debug) goto bad;
    flag = PyObject_IsTrue(debug);
    Py_DECREF(debug);
    if (flag == -1) goto bad;
    __pyx_assertions_enabled_flag = flag;
    return 0;
  bad:
    __pyx_assertions_enabled_flag = 1;
    return -1;
  }
#else
  #define __Pyx_init_assertions_enabled()  (0)
  #define __pyx_assertions_enabled()  (!Py_OptimizeFlag)
#endif

/* PyAssertionError_Check.proto */
#define __Pyx_PyExc_AssertionError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_AssertionError)

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* PyLongCompare.proto */
static CYTHON_INLINE int __Pyx_PyLong_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);

/* PyKeyError_Check.proto */
#define __Pyx_PyExc_KeyError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_KeyError)

/* PyUnicode_Unicode.proto */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj);

/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
        L->ob_item[len] = x;
        #else
        PyList_SET_ITEM(list, len, x);
        #endif
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* DelItemInt.proto */
#define __Pyx_DelItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_DelItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
               __Pyx_DelItem_Generic(o, to_py_func(i))))
static int __Pyx_DelItem_Generic(PyObject *o, PyObject *j);
static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
                                               int is_list, int wraparound);

/* DictGetItem.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* BuildPyUnicode.proto (used by COrdinalToPyUnicode) */
static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, const char* chars, int clength,
                                                int prepend_sign, char padding_char);

/* COrdinalToPyUnicode.proto (used by CIntToPyUnicode) */
static CYTHON_INLINE int __Pyx_CheckUnicodeValue(int value);
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromOrdinal_Padded(int value, Py_ssize_t width, char padding_char);

/* GCCDiagnostics.proto (used by CIntToPyUnicode) */
#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* IncludeStdlibH.proto (used by CIntToPyUnicode) */
#include <stdlib.h>

/* CIntToPyUnicode.proto */
#define __Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char, format_char) (\
    ((format_char) == ('c')) ?\
        __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char) :\
        __Pyx____Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char, format_char)\
    )
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char);
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char);

/* pybytes_as_double.proto (used by pynumber_float) */
static double __Pyx_SlowPyString_AsDouble(PyObject *obj);
static double __Pyx__PyBytes_AsDouble(PyObject *obj, const char* start, Py_ssize_t length);
static CYTHON_INLINE double __Pyx_PyBytes_AsDouble(PyObject *obj) {
    char* as_c_string;
    Py_ssize_t size;
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
    as_c_string = PyBytes_AS_STRING(obj);
    size = PyBytes_GET_SIZE(obj);
#else
    if (PyBytes_AsStringAndSize(obj, &as_c_string, &size) < 0) {
        return (double)-1;
    }
#endif
    return __Pyx__PyBytes_AsDouble(obj, as_c_string, size);
}
static CYTHON_INLINE double __Pyx_PyByteArray_AsDouble(PyObject *obj) {
    char* as_c_string;
    Py_ssize_t size;
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
    as_c_string = PyByteArray_AS_STRING(obj);
    size = PyByteArray_GET_SIZE(obj);
#else
    as_c_string = PyByteArray_AsString(obj);
    if (as_c_string == NULL) {
        return (double)-1;
    }
    size = PyByteArray_Size(obj);
#endif
    return __Pyx__PyBytes_AsDouble(obj, as_c_string, size);
}

/* pyunicode_as_double.proto (used by pynumber_float) */
#if !CYTHON_COMPILING_IN_PYPY && CYTHON_ASSUME_SAFE_MACROS
static const char* __Pyx__PyUnicode_AsDouble_Copy(const void* data, const int kind, char* buffer, Py_ssize_t start, Py_ssize_t end) {
    int last_was_punctuation;
    Py_ssize_t i;
    last_was_punctuation = 1;
    for (i=start; i <= end; i++) {
        Py_UCS4 chr = PyUnicode_READ(kind, data, i);
        int is_punctuation = (chr == '_') | (chr == '.');
        *buffer = (char)chr;
        buffer += (chr != '_');
        if (unlikely(chr > 127)) goto parse_failure;
        if (unlikely(last_was_punctuation & is_punctuation)) goto parse_failure;
        last_was_punctuation = is_punctuation;
    }
    if (unlikely(last_was_punctuation)) goto parse_failure;
    *buffer = '\0';
    return buffer;
parse_failure:
    return NULL;
}
static double __Pyx__PyUnicode_AsDouble_inf_nan(const void* data, int kind, Py_ssize_t start, Py_ssize_t length) {
    int matches = 1;
    Py_UCS4 chr;
    Py_UCS4 sign = PyUnicode_READ(kind, data, start);
    int is_signed = (sign == '-') | (sign == '+');
    start += is_signed;
    length -= is_signed;
    switch (PyUnicode_READ(kind, data, start)) {
        #ifdef Py_NAN
        case 'n':
        case 'N':
            if (unlikely(length != 3)) goto parse_failure;
            chr = PyUnicode_READ(kind, data, start+1);
            matches &= (chr == 'a') | (chr == 'A');
            chr = PyUnicode_READ(kind, data, start+2);
            matches &= (chr == 'n') | (chr == 'N');
            if (unlikely(!matches)) goto parse_failure;
            return (sign == '-') ? -Py_NAN : Py_NAN;
        #endif
        case 'i':
        case 'I':
            if (unlikely(length < 3)) goto parse_failure;
            chr = PyUnicode_READ(kind, data, start+1);
            matches &= (chr == 'n') | (chr == 'N');
            chr = PyUnicode_READ(kind, data, start+2);
            matches &= (chr == 'f') | (chr == 'F');
            if (likely(length == 3 && matches))
                return (sign == '-') ? -Py_HUGE_VAL : Py_HUGE_VAL;
            if (unlikely(length != 8)) goto parse_failure;
            chr = PyUnicode_READ(kind, data, start+3);
            matches &= (chr == 'i') | (chr == 'I');
            chr = PyUnicode_READ(kind, data, start+4);
            matches &= (chr == 'n') | (chr == 'N');
            chr = PyUnicode_READ(kind, data, start+5);
            matches &= (chr == 'i') | (chr == 'I');
            chr = PyUnicode_READ(kind, data, start+6);
            matches &= (chr == 't') | (chr == 'T');
            chr = PyUnicode_READ(kind, data, start+7);
            matches &= (chr == 'y') | (chr == 'Y');
            if (unlikely(!matches)) goto parse_failure;
            return (sign == '-') ? -Py_HUGE_VAL : Py_HUGE_VAL;
        case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
            break;
        default:
            goto parse_failure;
    }
    return 0.0;
parse_failure:
    return -1.0;
}
static double __Pyx_PyUnicode_AsDouble_WithSpaces(PyObject *obj) {
    double value;
    const char *last;
    char *end;
    Py_ssize_t start, length = PyUnicode_GET_LENGTH(obj);
    const int kind = PyUnicode_KIND(obj);
    const void* data = PyUnicode_DATA(obj);
    start = 0;
    while (Py_UNICODE_ISSPACE(PyUnicode_READ(kind, data, start)))
        start++;
    while (start < length - 1 && Py_UNICODE_ISSPACE(PyUnicode_READ(kind, data, length - 1)))
        length--;
    length -= start;
    if (unlikely(length <= 0)) goto fallback;
    value = __Pyx__PyUnicode_AsDouble_inf_nan(data, kind, start, length);
    if (unlikely(value == -1.0)) goto fallback;
    if (value != 0.0) return value;
    if (length < 40) {
        char number[40];
        last = __Pyx__PyUnicode_AsDouble_Copy(data, kind, number, start, start + length);
        if (unlikely(!last)) goto fallback;
        value = PyOS_string_to_double(number, &end, NULL);
    } else {
        char *number = (char*) PyMem_Malloc((length + 1) * sizeof(char));
        if (unlikely(!number)) goto fallback;
        last = __Pyx__PyUnicode_AsDouble_Copy(data, kind, number, start, start + length);
        if (unlikely(!last)) {
            PyMem_Free(number);
            goto fallback;
        }
        value = PyOS_string_to_double(number, &end, NULL);
        PyMem_Free(number);
    }
    if (likely(end == last) || (value == (double)-1 && PyErr_Occurred())) {
        return value;
    }
fallback:
    return __Pyx_SlowPyString_AsDouble(obj);
}
#endif
static CYTHON_INLINE double __Pyx_PyUnicode_AsDouble(PyObject *obj) {
#if !CYTHON_COMPILING_IN_PYPY && CYTHON_ASSUME_SAFE_MACROS
    if (unlikely(__Pyx_PyUnicode_READY(obj) == -1))
        return (double)-1;
    if (likely(PyUnicode_IS_ASCII(obj))) {
        const char *s;
        Py_ssize_t length;
        s = PyUnicode_AsUTF8AndSize(obj, &length);
        return __Pyx__PyBytes_AsDouble(obj, s, length);
    }
    return __Pyx_PyUnicode_AsDouble_WithSpaces(obj);
#else
    return __Pyx_SlowPyString_AsDouble(obj);
#endif
}

/* pynumber_float.proto */
static CYTHON_INLINE PyObject* __Pyx__PyNumber_Float(PyObject* obj);
#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : __Pyx__PyNumber_Float(x))

/* PyValueError_Check.proto */
#define __Pyx_PyExc_ValueError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_ValueError)

/* CallableCheck.proto */
#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
#define __Pyx_PyCallable_Check(obj)   (Py_TYPE(obj)->tp_call != NULL)
#else
#define __Pyx_PyCallable_Check(obj)   PyCallable_Check(obj)
#endif

/* GetAttr.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);

/* SetItemInt.proto */
#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck, unsafe_shared) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
               __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
                                               int is_list, int wraparound, int boundscheck, int unsafe_shared);

/* PyDictContains.proto */
static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
    int result = PyDict_Contains(dict, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* AllocateExtensionType.proto */
static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final);

/* CallTypeTraverse.proto */
#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)
#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0
#else
static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg);
#endif

/* CheckTypeForFreelists.proto */
#if CYTHON_USE_FREELISTS
#if CYTHON_USE_TYPE_SPECS
#define __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, expected_tp, expected_size) ((int) ((t) == (expected_tp)))
#define __PYX_CHECK_TYPE_FOR_FREELIST_FLAGS  Py_TPFLAGS_IS_ABSTRACT
#else
#define __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, expected_tp, expected_size) ((int) ((t)->tp_basicsize == (expected_size)))
#define __PYX_CHECK_TYPE_FOR_FREELIST_FLAGS  (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)
#endif
#define __PYX_CHECK_TYPE_FOR_FREELISTS(t, expected_tp, expected_size)\
    (__PYX_CHECK_FINAL_TYPE_FOR_FREELISTS((t), (expected_tp), (expected_size)) &\
     (int) (!__Pyx_PyType_HasFeature((t), __PYX_CHECK_TYPE_FOR_FREELIST_FLAGS)))
#endif

/* FunctionExport.proto */
static int __Pyx_ExportFunction(PyObject *api_dict, const char *name, void (*f)(void), const char *sig);

/* GetApiDict.proto */
static PyObject *__Pyx_ApiExport_GetApiDict(void);

/* LimitedApiGetTypeDict.proto (used by SetItemOnTypeDict) */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp);
#endif

/* SetItemOnTypeDict.proto (used by FixUpExtensionType) */
static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v);
#define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v)

/* FixUpExtensionType.proto */
static CYTHON_INLINE int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);

/* ValidateBasesTuple.proto (used by PyType_Ready) */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases);
#endif

/* PyType_Ready.proto */
CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);

/* DelItemOnTypeDict.proto (used by SetupReduce) */
static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k);
#define __Pyx_DelItemOnTypeDict(tp, k) __Pyx__DelItemOnTypeDict((PyTypeObject*)tp, k)

/* SetupReduce.proto */
static int __Pyx_setup_reduce(PyObject* type_obj);

/* SetVTable.proto */
static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable);

/* GetVTable.proto (used by MergeVTables) */
static void* __Pyx_GetVtable(PyTypeObject *type);

/* MergeVTables.proto */
static int __Pyx_MergeVtables(PyTypeObject *type);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto_3_2_4
#define __PYX_HAVE_RT_ImportType_proto_3_2_4
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#endif
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
#define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) alignof(s)
#else
#define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) sizeof(void*)
#endif
enum __Pyx_ImportType_CheckSize_3_2_4 {
   __Pyx_ImportType_CheckSize_Error_3_2_4 = 0,
   __Pyx_ImportType_CheckSize_Warn_3_2_4 = 1,
   __Pyx_ImportType_CheckSize_Ignore_3_2_4 = 2
};
static PyTypeObject *__Pyx_ImportType_3_2_4(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size);
#endif

/* FunctionImport.proto */
static int __Pyx_ImportFunction_3_2_4(PyObject *module, const char *funcname, void (**f)(void), const char *sig);

/* Py3UpdateBases.proto */
static PyObject* __Pyx_PEP560_update_bases(PyObject *bases);

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* dict_setdefault.proto (used by FetchCommonType) */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value);

/* AddModuleRef.proto (used by FetchSharedCythonModule) */
#if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING ) ||\
     __PYX_LIMITED_VERSION_HEX < 0x030d0000)
  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name);
#else
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#endif

/* FetchSharedCythonModule.proto (used by FetchCommonType) */
static PyObject *__Pyx_FetchSharedCythonABIModule(void);

/* FetchCommonType.proto (used by CommonTypesMetaclass) */
static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases);

/* CommonTypesMetaclass.proto (used by CythonFunctionShared) */
static int __pyx_CommonTypesMetaclass_init(PyObject *module);
#define __Pyx_CommonTypesMetaclass_USED

/* PyMethodNew.proto (used by CythonFunctionShared) */
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ);

/* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
#endif

/* CythonFunctionShared.proto (used by CythonFunction) */
#define __Pyx_CyFunction_USED
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CYFUNCTION_COROUTINE     0x08
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_CyFunction_GetClassObj(f)\
      (((__pyx_CyFunctionObject *) (f))->func_classobj)
#else
  #define __Pyx_CyFunction_GetClassObj(f)\
      ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
#endif
#define __Pyx_CyFunction_SetClassObj(f, classobj)\
    __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject_HEAD
    PyObject *func;
#elif PY_VERSION_HEX < 0x030900B1
    PyCFunctionObject func;
#else
    PyCMethodObject func;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API && CYTHON_METH_FASTCALL
    __pyx_vectorcallfunc func_vectorcall;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_weakreflist;
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_dict;
#endif
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_classobj;
#endif
    PyObject *defaults;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
    PyObject *func_is_coroutine;
} __pyx_CyFunctionObject;
#undef __Pyx_CyOrPyCFunction_Check
#define __Pyx_CyFunction_Check(obj)  __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType)
#define __Pyx_CyOrPyCFunction_Check(obj)  __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type)
#define __Pyx_CyFunction_CheckExact(obj)  __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType)
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void));
#undef __Pyx_IsSameCFunction
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCyOrCFunction(func, cfunc)
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func,
                                                         PyTypeObject *defaults_type);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(PyObject *module);
#if CYTHON_METH_FASTCALL
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#if CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
#else
#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
#endif
#endif

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* GetNameInClass.proto */
#define __Pyx_GetNameInClass(var, nmspace, name)  (var) = __Pyx__GetNameInClass(nmspace, name)
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name);

/* CLineInTraceback.proto (used by AddTraceback) */
#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#else
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#endif

/* CodeObjectCache.proto (used by AddTraceback) */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject __Pyx_CachedCodeObjectType;
#else
typedef PyCodeObject __Pyx_CachedCodeObjectType;
#endif
typedef struct {
    __Pyx_CachedCodeObjectType* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_int_type accessor_count;
  #endif
};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* CheckUnpickleChecksum.proto */
static CYTHON_INLINE int __Pyx_CheckUnpickleChecksum(long checksum, long checksum1, long checksum2, long checksum3, const char *members);

/* UnicodeAsUCS4.proto */
static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject*);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value);

/* ObjectAsUCS4.proto */
static Py_UCS4 __Pyx__PyObject_AsPy_UCS4(PyObject*);
static CYTHON_INLINE Py_UCS4 __Pyx_PyObject_AsPy_UCS4(PyObject *x) {
    return (likely(PyUnicode_Check(x)) ? __Pyx_PyUnicode_AsPy_UCS4(x) : __Pyx__PyObject_AsPy_UCS4(x));
}

/* UpdateUnpickledDict.proto */
static int __Pyx_UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index);

/* FormatTypeName.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%U"
#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_PyType_GetFullyQualifiedName PyType_GetFullyQualifiedName
#else
static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp);
#endif
#else  // !LIMITED_API
typedef const char *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%.200s"
#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name)
#define __Pyx_DECREF_TypeName(obj)
#endif

/* GetRuntimeVersion.proto */
#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
static unsigned long __Pyx_cached_runtime_version = 0;
static void __Pyx_init_runtime_version(void);
#else
#define __Pyx_init_runtime_version()
#endif
static unsigned long __Pyx_get_runtime_version(void);

/* ReturnWithStopIteration.proto (used by CoroutineBase) */
static CYTHON_INLINE void __Pyx_ReturnWithStopIteration(PyObject* value, int async, int iternext);

/* CoroutineBase.proto (used by Generator) */
struct __pyx_CoroutineObject;
typedef PyObject *(*__pyx_coroutine_body_t)(struct __pyx_CoroutineObject *, PyThreadState *, PyObject *);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_ExcInfoStruct  _PyErr_StackItem
#else
typedef struct {
    PyObject *exc_type;
    PyObject *exc_value;
    PyObject *exc_traceback;
} __Pyx_ExcInfoStruct;
#endif
typedef struct __pyx_CoroutineObject {
    PyObject_HEAD
    __pyx_coroutine_body_t body;
    PyObject *closure;
    __Pyx_ExcInfoStruct gi_exc_state;
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *gi_weakreflist;
#endif
    PyObject *classobj;
    PyObject *yieldfrom;
    __Pyx_pyiter_sendfunc yieldfrom_am_send;
    PyObject *gi_name;
    PyObject *gi_qualname;
    PyObject *gi_modulename;
    PyObject *gi_code;
    PyObject *gi_frame;
#if CYTHON_USE_SYS_MONITORING && (CYTHON_PROFILE || CYTHON_TRACE)
    PyMonitoringState __pyx_pymonitoring_state[__Pyx_MonitoringEventTypes_CyGen_count];
    uint64_t __pyx_pymonitoring_version;
#endif
    int resume_label;
    char is_running;
} __pyx_CoroutineObject;
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
    PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
    PyObject *name, PyObject *qualname, PyObject *module_name);
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name);
static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self);
static int __Pyx_Coroutine_clear(PyObject *self);
static __Pyx_PySendResult __Pyx_Coroutine_AmSend(PyObject *self, PyObject *value, PyObject **retval);
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
static __Pyx_PySendResult __Pyx_Coroutine_Close(PyObject *self, PyObject **retval);
static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_Coroutine_SwapException(self)
#define __Pyx_Coroutine_ResetAndClearException(self)  __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state)
#else
#define __Pyx_Coroutine_SwapException(self) {\
    __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\
    __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\
    }
#define __Pyx_Coroutine_ResetAndClearException(self) {\
    __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\
    (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\
    }
#endif
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue)
#else
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue)
#endif
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);
static char __Pyx_Coroutine_test_and_set_is_running(__pyx_CoroutineObject *gen);
static void __Pyx_Coroutine_unset_is_running(__pyx_CoroutineObject *gen);
static char __Pyx_Coroutine_get_is_running(__pyx_CoroutineObject *gen);
static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *closure);
#if __PYX_HAS_PY_AM_SEND == 2
static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethodsStruct *static_amsend_methods, __Pyx_pyiter_sendfunc am_send);
#endif
static PyObject *__Pyx_Coroutine_fail_reduce_ex(PyObject *self, PyObject *arg);

/* Generator.proto */
#define __Pyx_Generator_USED
#define __Pyx_Generator_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_GeneratorType)
#define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_mstate_global->__pyx_GeneratorType, body, code, closure, name, qualname, module_name)
static PyObject *__Pyx_Generator_Next(PyObject *self);
static int __pyx_Generator_init(PyObject *module);
static CYTHON_INLINE PyObject *__Pyx_Generator_GetInlinedResult(PyObject *self);

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);

/* DecompressString.proto */
static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo);

/* MultiPhaseInitModuleState.proto */
#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
static PyObject *__Pyx_State_FindModule(void*);
static int __Pyx_State_AddModule(PyObject* module, void*);
static int __Pyx_State_RemoveModule(void*);
#elif CYTHON_USE_MODULE_STATE
#define __Pyx_State_FindModule PyState_FindModule
#define __Pyx_State_AddModule PyState_AddModule
#define __Pyx_State_RemoveModule PyState_RemoveModule
#endif

/* #### Code section: module_declarations ### */
/* CythonABIVersion.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
    #if CYTHON_METH_FASTCALL
        #define __PYX_FASTCALL_ABI_SUFFIX  "_fastcall"
    #else
        #define __PYX_FASTCALL_ABI_SUFFIX
    #endif
    #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_FASTCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
#else
    #define __PYX_LIMITED_ABI_SUFFIX
#endif
#if __PYX_HAS_PY_AM_SEND == 1
    #define __PYX_AM_SEND_ABI_SUFFIX
#elif __PYX_HAS_PY_AM_SEND == 2
    #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport"
#else
    #define __PYX_AM_SEND_ABI_SUFFIX "noamsend"
#endif
#ifndef __PYX_MONITORING_ABI_SUFFIX
    #define __PYX_MONITORING_ABI_SUFFIX
#endif
#if CYTHON_USE_TP_FINALIZE
    #define __PYX_TP_FINALIZE_ABI_SUFFIX
#else
    #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize"
#endif
#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED)
    #define __PYX_FREELISTS_ABI_SUFFIX
#else
    #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists"
#endif
#define CYTHON_ABI  __PYX_ABI_VERSION __PYX_LIMITED_ABI_SUFFIX __PYX_MONITORING_ABI_SUFFIX __PYX_TP_FINALIZE_ABI_SUFFIX __PYX_FREELISTS_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."

static PyObject *__pyx_f_27django_templates_cythonized_4base_8Template__render(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8Template_render(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8Template_compile_nodelist(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_15PartialTemplate_get_exception_info(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_exception, PyObject *__pyx_v_token, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_15PartialTemplate_find_partial_source(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_full_source, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_15PartialTemplate__render(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_15PartialTemplate_render(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_16FilterExpression_resolve(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch, struct __pyx_opt_args_27django_templates_cythonized_4base_16FilterExpression_resolve *__pyx_optional_args); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8Variable_resolve(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8Variable__resolve_lookup(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_context); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_4Node_render(CYTHON_UNUSED struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_4Node_render_annotated(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_4Node_get_nodes_by_type(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v_nodetype, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8NodeList_render(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8NodeList_get_nodes_by_type(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_nodetype, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8TextNode_render(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8TextNode_render_annotated(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_12VariableNode_render(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch); /* proto*/

/* Module declarations from "django_templates_cythonized.context" */

/* Module declarations from "cython" */

/* Module declarations from "django_templates_cythonized.formats" */
static int (*__pyx_f_27django_templates_cythonized_7formats__float_is_str_fast)(PyObject *); /*proto*/
static PyObject *(*__pyx_f_27django_templates_cythonized_7formats_localize)(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_27django_templates_cythonized_7formats_localize *__pyx_optional_args); /*proto*/

/* Module declarations from "django_templates_cythonized.html" */
static PyObject *(*__pyx_f_27django_templates_cythonized_4html_conditional_escape)(PyObject *, int __pyx_skip_dispatch); /*proto*/

/* Module declarations from "django_templates_cythonized.timezone" */
static PyObject *(*__pyx_f_27django_templates_cythonized_8timezone_template_localtime)(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_27django_templates_cythonized_8timezone_template_localtime *__pyx_optional_args); /*proto*/

/* Module declarations from "django_templates_cythonized.base" */
static PyObject *__pyx_f_27django_templates_cythonized_4base_render_value_in_context(PyObject *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base__fast_escape(PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base__fast_escape_raw(PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base__render_var_fast(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *, struct __pyx_obj_27django_templates_cythonized_7context_Context *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Template__set_state(struct __pyx_obj_27django_templates_cythonized_4base_Template *, PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_PartialTemplate__set_state(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *, PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_CFilterInfo__set_state(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *, PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_FilterExpression__set_state(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *, PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Variable__set_state(struct __pyx_obj_27django_templates_cythonized_4base_Variable *, PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Node__set_state(struct __pyx_obj_27django_templates_cythonized_4base_Node *, PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_NodeList__set_state(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *, PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_TextNode__set_state(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *, PyObject *); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_VariableNode__set_state(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *, PyObject *); /*proto*/
/* #### Code section: typeinfo ### */
/* #### Code section: before_global_var ### */
#define __Pyx_MODULE_NAME "django_templates_cythonized.base"
extern int __pyx_module_is_main_django_templates_cythonized__base;
int __pyx_module_is_main_django_templates_cythonized__base = 0;

/* Implementation of "django_templates_cythonized.base" */
/* #### Code section: global_var ### */
static PyObject *__pyx_builtin_property;
static PyObject *__pyx_builtin_staticmethod;
static PyObject *__pyx_builtin_object;
static PyObject *__pyx_builtin_enumerate;
static PyObject *__pyx_builtin_reversed;
/* #### Code section: string_decls ### */
static const char __pyx_k_origin_token[] = "origin, token";
static const char __pyx_k_origin_s_token[] = "origin, s, token";
static const char __pyx_k_nodes_contains_nontext[] = "_nodes, contains_nontext";
static const char __pyx_k_filter_expression_origin_token[] = "filter_expression, origin, token";
static const char __pyx_k_This_is_the_Django_template_sys[] = "\nThis is the Django template system.\n\nHow it works:\n\nThe Lexer.tokenize() method converts a template string (i.e., a string\ncontaining markup with custom template tags) to tokens, which can be either\nplain text (TokenType.TEXT), variables (TokenType.VAR), or block statements\n(TokenType.BLOCK).\n\nThe Parser() class takes a list of tokens in its constructor, and its parse()\nmethod returns a compiled template -- which is, under the hood, a list of\nNode objects.\n\nEach Node is responsible for creating some sort of output -- e.g. simple text\n(TextNode), variable values in a given context (VariableNode), results of basic\nlogic (IfNode), results of looping (ForNode), or anything else. The core Node\ntypes are TextNode, VariableNode, IfNode and ForNode, but plugin modules can\ndefine their own custom node types.\n\nEach Node has a render() method, which takes a Context and returns a string of\nthe rendered node. For example, the render() method of a Variable Node returns\nthe variable's value as a string. The render() method of a ForNode returns the\nrendered output of whatever was inside the loop, recursively.\n\nThe Template class is a convenient wrapper that takes care of template\ncompilation and rendering.\n\nUsage:\n\nThe only thing you should ever use directly in this file is the Template class.\nCreate a compiled template object with a template_string, then call render()\nwith a context. In the compilation stage, the TemplateSyntaxError exception\nwill be raised if the template doesn't have proper syntax.\n\nSample code:\n\n>>> from django import template\n>>> s = '<html>{% if test %}<h1>{{ varvalue }}</h1>{% endif %}</html>'\n>>> t = template.Template(s)\n\n(t is now a compiled template, and its render() method can be called multiple\ntimes with multiple contexts)\n\n>>> c = template.Context({'test':True, 'varvalue': 'Hello'})\n>>> t.render(c)\n'<html><h1>Hello</h1></html>'\n>>> c = template.Context({'test':False, 'varvalue': 'Hello'})\n>>> t.render(c"")\n'<html></html>'\n";
static const char __pyx_k_engine_extra_data_name_nodelist[] = "engine, extra_data, name, nodelist, origin, source";
static const char __pyx_k_fast_filter_filters_is_var_toke[] = "_fast_filter, filters, is_var, token, var";
static const char __pyx_k_literal_lookups_message_context[] = "literal, lookups, message_context, translate, var";
static const char __pyx_k_source_end__source_start_name_n[] = "_source_end, _source_start, name, nodelist, origin";
static const char __pyx_k_args_expects_localtime_func_is_s[] = "args, expects_localtime, func, is_safe, needs_autoescape";
/* #### Code section: decls ### */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_20VariableDoesNotExist___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_msg, PyObject *__pyx_v_params); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_20VariableDoesNotExist_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_template_name, PyObject *__pyx_v_loader); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin_4__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin_6__eq__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin_8loader_name(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_17_flatten_includes_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base__flatten_includes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_nodelist, PyObject *__pyx_v_engine, PyObject *__pyx_v_seen); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template___init__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_template_string, PyObject *__pyx_v_origin, PyObject *__pyx_v_name, PyObject *__pyx_v_engine); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_2__repr__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_4_render(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_6render(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_8compile_nodelist(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_10get_exception_info(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_exception, PyObject *__pyx_v_token); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_4name___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_4name_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_4name_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_6origin___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_6origin_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_6origin_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_6engine___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_6engine_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_6engine_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_6source___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_6source_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_6source_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_8nodelist___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_8nodelist_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_8nodelist_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_10extra_data___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_10extra_data_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Template_10extra_data_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_12__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_14__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate___init__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_nodelist, PyObject *__pyx_v_origin, PyObject *__pyx_v_name, PyObject *__pyx_v_source_start, PyObject *__pyx_v_source_end); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_2get_exception_info(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_exception, PyObject *__pyx_v_token); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4find_partial_source(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_full_source); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6source___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6_render(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8render(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8nodelist___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6origin___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6origin_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6origin_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4name___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4name_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4name_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_13_source_start___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_11_source_end___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_10__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_12__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_2linebreak_iter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_template_source); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Token___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token_type, PyObject *__pyx_v_contents, PyObject *__pyx_v_position, PyObject *__pyx_v_lineno); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Token_2__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Token_4split_contents(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Lexer___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_template_string); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Lexer_2__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Lexer_4tokenize(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Lexer_6create_token(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token_string, PyObject *__pyx_v_position, PyObject *__pyx_v_lineno, PyObject *__pyx_v_in_tag); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_10DebugLexer__tag_re_split_positions(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_10DebugLexer_3_tag_re_split(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_10DebugLexer_6tokenize(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_tokens, PyObject *__pyx_v_libraries, PyObject *__pyx_v_builtins, PyObject *__pyx_v_origin); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_2__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_4parse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parse_until); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_6skip_past(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_endtag); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_8extend_nodelist(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_nodelist, PyObject *__pyx_v_node, PyObject *__pyx_v_token); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_10error(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_token, PyObject *__pyx_v_e); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_12invalid_block_tag(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token, PyObject *__pyx_v_command, PyObject *__pyx_v_parse_until); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_14unclosed_block_tag(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parse_until); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_16next_token(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_18prepend_token(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_20delete_first_token(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_22add_library(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_lib); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_24compile_filter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_26find_filter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_filter_name); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo___init__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_func, PyObject *__pyx_v_args, PyObject *__pyx_v_expects_localtime, PyObject *__pyx_v_needs_autoescape, PyObject *__pyx_v_is_safe); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4func___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4func_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4func_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4args___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4args_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4args_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_7is_safe___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_7is_safe_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_2__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression___init__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_token, PyObject *__pyx_v_parser); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_2resolve(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, PyObject *__pyx_v_ignore_failures); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_4args_check(PyObject *__pyx_v_name, PyObject *__pyx_v_func, PyObject *__pyx_v_provided); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_6__str__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_8__repr__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_5token___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_5token_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_5token_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_7filters___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_7filters_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_7filters_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_3var___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_3var_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_3var_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_6is_var___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_6is_var_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_10__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_12__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable___init__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_var); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_2resolve(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_4__repr__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_6__str__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_3var___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable_3var_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable_3var_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_7literal___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable_7literal_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable_7literal_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_7lookups___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable_7lookups_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable_7lookups_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_9translate___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable_9translate_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_15message_context___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable_15message_context_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8Variable_15message_context_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_8__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_10__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_render(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_2render_annotated(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_4get_nodes_by_type(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v_nodetype); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_5token___get__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_4Node_5token_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_4Node_5token_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_6origin___get__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_4Node_6origin_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_4Node_6origin_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_6__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_8__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8NodeList___init__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_initial); /* proto */
static Py_ssize_t __pyx_pf_27django_templates_cythonized_4base_8NodeList_2__len__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_4__iter__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_6__getitem__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_index); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8NodeList_8__bool__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_10__repr__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_12append(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_14render(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_16get_nodes_by_type(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_nodetype); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_6_nodes___get__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8NodeList_6_nodes_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8NodeList_6_nodes_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_16contains_nontext___get__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8NodeList_16contains_nontext_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_18__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_20__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8TextNode___init__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, PyObject *__pyx_v_s); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_2__repr__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_4render(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_6render_annotated(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_1s___get__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8TextNode_1s_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_8TextNode_1s_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_8__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_10__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_5render_value_in_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_12VariableNode___init__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, PyObject *__pyx_v_filter_expression); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_2__repr__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_4render(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_17filter_expression___get__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_12VariableNode_17filter_expression_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_27django_templates_cythonized_4base_12VariableNode_17filter_expression_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_6__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_8__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_7token_kwargs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_bits, PyObject *__pyx_v_parser, PyObject *__pyx_v_support_legacy); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_9__pyx_unpickle_Template(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_11__pyx_unpickle_PartialTemplate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_13__pyx_unpickle_CFilterInfo(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_15__pyx_unpickle_FilterExpression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_17__pyx_unpickle_Variable(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_19__pyx_unpickle_Node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_21__pyx_unpickle_NodeList(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_23__pyx_unpickle_TextNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_27django_templates_cythonized_4base_25__pyx_unpickle_VariableNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_CFilterInfo(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_Node(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_TextNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_NodeList(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_Template(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_FilterExpression(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_VariableNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_PartialTemplate(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_Variable(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct__genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
/* #### Code section: late_includes ### */
/* #### Code section: module_state ### */
/* SmallCodeConfig */
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

typedef struct {
  PyObject *__pyx_d;
  PyObject *__pyx_b;
  PyObject *__pyx_cython_runtime;
  PyObject *__pyx_empty_tuple;
  PyObject *__pyx_empty_bytes;
  PyObject *__pyx_empty_unicode;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_7context_BaseContext;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_7context_RenderContext;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_7context_Context;
  PyObject *__pyx_type_27django_templates_cythonized_4base_CFilterInfo;
  PyObject *__pyx_type_27django_templates_cythonized_4base_Node;
  PyObject *__pyx_type_27django_templates_cythonized_4base_TextNode;
  PyObject *__pyx_type_27django_templates_cythonized_4base_NodeList;
  PyObject *__pyx_type_27django_templates_cythonized_4base_Template;
  PyObject *__pyx_type_27django_templates_cythonized_4base_FilterExpression;
  PyObject *__pyx_type_27django_templates_cythonized_4base_VariableNode;
  PyObject *__pyx_type_27django_templates_cythonized_4base_PartialTemplate;
  PyObject *__pyx_type_27django_templates_cythonized_4base_Variable;
  PyObject *__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr;
  PyObject *__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter;
  PyObject *__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions;
  PyObject *__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base_Node;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base_TextNode;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base_NodeList;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base_Template;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base_FilterExpression;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base_VariableNode;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base_Variable;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions;
  PyTypeObject *__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values;
  __Pyx_CachedCFunction __pyx_umethod_PyList_Type_pop;
  PyObject *__pyx_slice[8];
  PyObject *__pyx_tuple[10];
  PyObject *__pyx_codeobj_tab[83];
  PyObject *__pyx_string_tab[594];
  PyObject *__pyx_number_tab[18];
/* #### Code section: module_state_contents ### */
/* IterNextPlain.module_state_decls */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
PyObject *__Pyx_GetBuiltinNext_LimitedAPI_cache;
#endif


#if CYTHON_USE_FREELISTS
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct__genexpr[8];
int __pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct__genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter[8];
int __pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions[8];
int __pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split[8];
int __pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split;
#endif
/* CommonTypesMetaclass.module_state_decls */
PyTypeObject *__pyx_CommonTypesMetaclassType;

/* CachedMethodType.module_state_decls */
#if CYTHON_COMPILING_IN_LIMITED_API
PyObject *__Pyx_CachedMethodType;
#endif

/* CythonFunctionShared.module_state_decls */
PyTypeObject *__pyx_CyFunctionType;

/* CodeObjectCache.module_state_decls */
struct __Pyx_CodeObjectCache __pyx_code_cache;

/* Generator.module_state_decls */
PyTypeObject *__pyx_GeneratorType;

/* #### Code section: module_state_end ### */
} __pyx_mstatetype;

#if CYTHON_USE_MODULE_STATE
#ifdef __cplusplus
namespace {
extern struct PyModuleDef __pyx_moduledef;
} /* anonymous namespace */
#else
static struct PyModuleDef __pyx_moduledef;
#endif

#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef)))

#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef))
#else
static __pyx_mstatetype __pyx_mstate_global_static =
#ifdef __cplusplus
    {};
#else
    {0};
#endif
static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static;
#endif
/* #### Code section: constant_name_defines ### */
#define __pyx_kp_u_ __pyx_string_tab[0]
#define __pyx_kp_u_Could_not_find_variable_at_start __pyx_string_tab[1]
#define __pyx_kp_u_Could_not_get_exception_message __pyx_string_tab[2]
#define __pyx_kp_u_Could_not_parse_some_characters __pyx_string_tab[3]
#define __pyx_kp_u_Could_not_parse_the_remainder __pyx_string_tab[4]
#define __pyx_kp_u_Did_you_forget_to_register_or_l __pyx_string_tab[5]
#define __pyx_kp_u_Did_you_forget_to_register_or_l_2 __pyx_string_tab[6]
#define __pyx_kp_u_Empty_block_tag_on_line_d __pyx_string_tab[7]
#define __pyx_kp_u_Empty_variable_tag_on_line_d __pyx_string_tab[8]
#define __pyx_kp_u_Exception_while_resolving_variab __pyx_string_tab[9]
#define __pyx_kp_u_Failed_lookup_for_key_s_in_r __pyx_string_tab[10]
#define __pyx_kp_u_Invalid_block_tag_on_line __pyx_string_tab[11]
#define __pyx_kp_u_Invalid_character __pyx_string_tab[12]
#define __pyx_kp_u_Invalid_filter_s __pyx_string_tab[13]
#define __pyx_kp_u_Looking_for_one_of __pyx_string_tab[14]
#define __pyx_kp_u_None __pyx_string_tab[15]
#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[16]
#define __pyx_kp_u_P_constant_constant_s_P_var_var __pyx_string_tab[17]
#define __pyx_kp_u_PartialTemplate_source_is_only_a __pyx_string_tab[18]
#define __pyx_kp_u_Template __pyx_string_tab[19]
#define __pyx_kp_u_Unclosed_tag_on_line __pyx_string_tab[20]
#define __pyx_kp_u_Variable_Node_s __pyx_string_tab[21]
#define __pyx_kp_u_Variable_must_be_a_string_or_num __pyx_string_tab[22]
#define __pyx_kp_u_Variables_and_attributes_may_not __pyx_string_tab[23]
#define __pyx_kp_u__10 __pyx_string_tab[24]
#define __pyx_kp_u__11 __pyx_string_tab[25]
#define __pyx_kp_u__12 __pyx_string_tab[26]
#define __pyx_kp_u__13 __pyx_string_tab[27]
#define __pyx_kp_u__14 __pyx_string_tab[28]
#define __pyx_kp_u__15 __pyx_string_tab[29]
#define __pyx_kp_u__16 __pyx_string_tab[30]
#define __pyx_kp_u__17 __pyx_string_tab[31]
#define __pyx_kp_u__18 __pyx_string_tab[32]
#define __pyx_kp_u__2 __pyx_string_tab[33]
#define __pyx_kp_u__20 __pyx_string_tab[34]
#define __pyx_kp_u__21 __pyx_string_tab[35]
#define __pyx_kp_u__22 __pyx_string_tab[36]
#define __pyx_kp_u__23 __pyx_string_tab[37]
#define __pyx_kp_u__24 __pyx_string_tab[38]
#define __pyx_kp_u__25 __pyx_string_tab[39]
#define __pyx_kp_u__26 __pyx_string_tab[40]
#define __pyx_kp_u__27 __pyx_string_tab[41]
#define __pyx_kp_u__28 __pyx_string_tab[42]
#define __pyx_kp_u__29 __pyx_string_tab[43]
#define __pyx_kp_u__3 __pyx_string_tab[44]
#define __pyx_kp_u__30 __pyx_string_tab[45]
#define __pyx_kp_u__31 __pyx_string_tab[46]
#define __pyx_kp_u__32 __pyx_string_tab[47]
#define __pyx_kp_u__33 __pyx_string_tab[48]
#define __pyx_kp_u__34 __pyx_string_tab[49]
#define __pyx_kp_u__35 __pyx_string_tab[50]
#define __pyx_kp_u__4 __pyx_string_tab[51]
#define __pyx_kp_u__5 __pyx_string_tab[52]
#define __pyx_kp_u__6 __pyx_string_tab[53]
#define __pyx_kp_u__7 __pyx_string_tab[54]
#define __pyx_kp_u__8 __pyx_string_tab[55]
#define __pyx_kp_u__9 __pyx_string_tab[56]
#define __pyx_kp_u_add_note __pyx_string_tab[57]
#define __pyx_kp_u_arguments __pyx_string_tab[58]
#define __pyx_kp_u_context_must_be_a_Context_or_dic __pyx_string_tab[59]
#define __pyx_kp_u_disable __pyx_string_tab[60]
#define __pyx_kp_u_django_template __pyx_string_tab[61]
#define __pyx_kp_u_django_templates_cythonized_base_2 __pyx_string_tab[62]
#define __pyx_kp_u_django_templates_cythonized_cont __pyx_string_tab[63]
#define __pyx_kp_u_django_templates_cythonized_engi __pyx_string_tab[64]
#define __pyx_kp_u_django_templates_cythonized_exce __pyx_string_tab[65]
#define __pyx_kp_u_django_templates_cythonized_load __pyx_string_tab[66]
#define __pyx_kp_u_django_templates_cythonized_safe __pyx_string_tab[67]
#define __pyx_kp_u_enable __pyx_string_tab[68]
#define __pyx_kp_u_end_s __pyx_string_tab[69]
#define __pyx_kp_u_expected __pyx_string_tab[70]
#define __pyx_kp_u_from __pyx_string_tab[71]
#define __pyx_kp_u_gc __pyx_string_tab[72]
#define __pyx_kp_u_i18n_open_s_strdq_s_i18n_close __pyx_string_tab[73]
#define __pyx_kp_u_in_variable_name __pyx_string_tab[74]
#define __pyx_kp_u_isenabled __pyx_string_tab[75]
#define __pyx_kp_u_must_be_the_first_tag_in __pyx_string_tab[76]
#define __pyx_kp_u_name_2 __pyx_string_tab[77]
#define __pyx_kp_u_provided_2 __pyx_string_tab[78]
#define __pyx_kp_u_requires __pyx_string_tab[79]
#define __pyx_kp_u_s __pyx_string_tab[80]
#define __pyx_kp_u_s_3 __pyx_string_tab[81]
#define __pyx_kp_u_stringsource __pyx_string_tab[82]
#define __pyx_kp_u_template_string_2 __pyx_string_tab[83]
#define __pyx_kp_u_the_template __pyx_string_tab[84]
#define __pyx_kp_u_token_2 __pyx_string_tab[85]
#define __pyx_kp_u_tokens_2 __pyx_string_tab[86]
#define __pyx_kp_u_unknown_source __pyx_string_tab[87]
#define __pyx_kp_u_verbatim_2 __pyx_string_tab[88]
#define __pyx_kp_u_verbatim_3 __pyx_string_tab[89]
#define __pyx_kp_u_w __pyx_string_tab[90]
#define __pyx_kp_u_w_2 __pyx_string_tab[91]
#define __pyx_n_u_BLOCK __pyx_string_tab[92]
#define __pyx_n_u_BLOCK_TAG_END __pyx_string_tab[93]
#define __pyx_n_u_BLOCK_TAG_START __pyx_string_tab[94]
#define __pyx_n_u_BaseContext __pyx_string_tab[95]
#define __pyx_n_u_CFilterInfo __pyx_string_tab[96]
#define __pyx_n_u_CFilterInfo___reduce_cython __pyx_string_tab[97]
#define __pyx_n_u_CFilterInfo___setstate_cython __pyx_string_tab[98]
#define __pyx_n_u_COMMENT __pyx_string_tab[99]
#define __pyx_n_u_COMMENT_TAG_END __pyx_string_tab[100]
#define __pyx_n_u_COMMENT_TAG_START __pyx_string_tab[101]
#define __pyx_n_u_Context __pyx_string_tab[102]
#define __pyx_n_u_DebugLexer __pyx_string_tab[103]
#define __pyx_n_u_DebugLexer__tag_re_split __pyx_string_tab[104]
#define __pyx_n_u_DebugLexer__tag_re_split_positio __pyx_string_tab[105]
#define __pyx_n_u_DebugLexer_tokenize __pyx_string_tab[106]
#define __pyx_n_u_Engine __pyx_string_tab[107]
#define __pyx_n_u_FFILTER_CAPFIRST __pyx_string_tab[108]
#define __pyx_n_u_FFILTER_LOWER __pyx_string_tab[109]
#define __pyx_n_u_FFILTER_NONE __pyx_string_tab[110]
#define __pyx_n_u_FFILTER_STRINGFORMAT_S __pyx_string_tab[111]
#define __pyx_n_u_FFILTER_UPPER __pyx_string_tab[112]
#define __pyx_n_u_FILTER_ARGUMENT_SEPARATOR __pyx_string_tab[113]
#define __pyx_n_u_FILTER_SEPARATOR __pyx_string_tab[114]
#define __pyx_n_u_FilterExpression __pyx_string_tab[115]
#define __pyx_n_u_FilterExpression___reduce_cython __pyx_string_tab[116]
#define __pyx_n_u_FilterExpression___setstate_cyth __pyx_string_tab[117]
#define __pyx_n_u_FilterExpression_args_check __pyx_string_tab[118]
#define __pyx_n_u_FilterExpression_resolve __pyx_string_tab[119]
#define __pyx_n_u_IncludeNode __pyx_string_tab[120]
#define __pyx_n_u_Lexer __pyx_string_tab[121]
#define __pyx_n_u_Lexer___init __pyx_string_tab[122]
#define __pyx_n_u_Lexer___repr __pyx_string_tab[123]
#define __pyx_n_u_Lexer_create_token __pyx_string_tab[124]
#define __pyx_n_u_Lexer_tokenize __pyx_string_tab[125]
#define __pyx_n_u_Node __pyx_string_tab[126]
#define __pyx_n_u_NodeList __pyx_string_tab[127]
#define __pyx_n_u_NodeList___reduce_cython __pyx_string_tab[128]
#define __pyx_n_u_NodeList___setstate_cython __pyx_string_tab[129]
#define __pyx_n_u_NodeList_append __pyx_string_tab[130]
#define __pyx_n_u_NodeList_get_nodes_by_type __pyx_string_tab[131]
#define __pyx_n_u_NodeList_render __pyx_string_tab[132]
#define __pyx_n_u_Node___reduce_cython __pyx_string_tab[133]
#define __pyx_n_u_Node___setstate_cython __pyx_string_tab[134]
#define __pyx_n_u_Node_get_nodes_by_type __pyx_string_tab[135]
#define __pyx_n_u_Node_render __pyx_string_tab[136]
#define __pyx_n_u_Node_render_annotated __pyx_string_tab[137]
#define __pyx_n_u_Origin __pyx_string_tab[138]
#define __pyx_n_u_Origin___eq __pyx_string_tab[139]
#define __pyx_n_u_Origin___init __pyx_string_tab[140]
#define __pyx_n_u_Origin___repr __pyx_string_tab[141]
#define __pyx_n_u_Origin___str __pyx_string_tab[142]
#define __pyx_n_u_Origin_loader_name __pyx_string_tab[143]
#define __pyx_n_u_Parser __pyx_string_tab[144]
#define __pyx_n_u_Parser___init __pyx_string_tab[145]
#define __pyx_n_u_Parser___repr __pyx_string_tab[146]
#define __pyx_n_u_Parser_add_library __pyx_string_tab[147]
#define __pyx_n_u_Parser_compile_filter __pyx_string_tab[148]
#define __pyx_n_u_Parser_delete_first_token __pyx_string_tab[149]
#define __pyx_n_u_Parser_error __pyx_string_tab[150]
#define __pyx_n_u_Parser_extend_nodelist __pyx_string_tab[151]
#define __pyx_n_u_Parser_find_filter __pyx_string_tab[152]
#define __pyx_n_u_Parser_invalid_block_tag __pyx_string_tab[153]
#define __pyx_n_u_Parser_next_token __pyx_string_tab[154]
#define __pyx_n_u_Parser_parse __pyx_string_tab[155]
#define __pyx_n_u_Parser_prepend_token __pyx_string_tab[156]
#define __pyx_n_u_Parser_skip_past __pyx_string_tab[157]
#define __pyx_n_u_Parser_unclosed_block_tag __pyx_string_tab[158]
#define __pyx_n_u_PartialTemplate __pyx_string_tab[159]
#define __pyx_n_u_PartialTemplate___reduce_cython __pyx_string_tab[160]
#define __pyx_n_u_PartialTemplate___setstate_cytho __pyx_string_tab[161]
#define __pyx_n_u_PartialTemplate__render __pyx_string_tab[162]
#define __pyx_n_u_PartialTemplate_find_partial_sou __pyx_string_tab[163]
#define __pyx_n_u_PartialTemplate_get_exception_in __pyx_string_tab[164]
#define __pyx_n_u_PartialTemplate_render __pyx_string_tab[165]
#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[166]
#define __pyx_n_u_RESOLVE_FALLBACK __pyx_string_tab[167]
#define __pyx_n_u_SINGLE_BRACE_END __pyx_string_tab[168]
#define __pyx_n_u_SINGLE_BRACE_START __pyx_string_tab[169]
#define __pyx_n_u_SafeData __pyx_string_tab[170]
#define __pyx_n_u_SafeString __pyx_string_tab[171]
#define __pyx_n_u_TEXT __pyx_string_tab[172]
#define __pyx_n_u_TemplateDoesNotExist __pyx_string_tab[173]
#define __pyx_n_u_TemplateSyntaxError __pyx_string_tab[174]
#define __pyx_n_u_Template_2 __pyx_string_tab[175]
#define __pyx_n_u_Template___reduce_cython __pyx_string_tab[176]
#define __pyx_n_u_Template___setstate_cython __pyx_string_tab[177]
#define __pyx_n_u_Template__render __pyx_string_tab[178]
#define __pyx_n_u_Template_compile_nodelist __pyx_string_tab[179]
#define __pyx_n_u_Template_get_exception_info __pyx_string_tab[180]
#define __pyx_n_u_Template_render __pyx_string_tab[181]
#define __pyx_n_u_TextNode __pyx_string_tab[182]
#define __pyx_n_u_TextNode___reduce_cython __pyx_string_tab[183]
#define __pyx_n_u_TextNode___setstate_cython __pyx_string_tab[184]
#define __pyx_n_u_TextNode_render __pyx_string_tab[185]
#define __pyx_n_u_TextNode_render_annotated __pyx_string_tab[186]
#define __pyx_n_u_Token __pyx_string_tab[187]
#define __pyx_n_u_TokenType __pyx_string_tab[188]
#define __pyx_n_u_Token___init __pyx_string_tab[189]
#define __pyx_n_u_Token___repr __pyx_string_tab[190]
#define __pyx_n_u_Token_split_contents __pyx_string_tab[191]
#define __pyx_n_u_UNKNOWN_SOURCE __pyx_string_tab[192]
#define __pyx_n_u_VAR __pyx_string_tab[193]
#define __pyx_n_u_VARIABLE_ATTRIBUTE_SEPARATOR __pyx_string_tab[194]
#define __pyx_n_u_VARIABLE_TAG_END __pyx_string_tab[195]
#define __pyx_n_u_VARIABLE_TAG_START __pyx_string_tab[196]
#define __pyx_n_u_VERBOSE __pyx_string_tab[197]
#define __pyx_n_u_Variable __pyx_string_tab[198]
#define __pyx_n_u_VariableDoesNotExist __pyx_string_tab[199]
#define __pyx_n_u_VariableDoesNotExist___init __pyx_string_tab[200]
#define __pyx_n_u_VariableDoesNotExist___str __pyx_string_tab[201]
#define __pyx_n_u_VariableNode __pyx_string_tab[202]
#define __pyx_n_u_VariableNode___reduce_cython __pyx_string_tab[203]
#define __pyx_n_u_VariableNode___setstate_cython __pyx_string_tab[204]
#define __pyx_n_u_VariableNode_render __pyx_string_tab[205]
#define __pyx_n_u_Variable___reduce_cython __pyx_string_tab[206]
#define __pyx_n_u_Variable___setstate_cython __pyx_string_tab[207]
#define __pyx_n_u_Variable_resolve __pyx_string_tab[208]
#define __pyx_n_u__19 __pyx_string_tab[209]
#define __pyx_n_u_add __pyx_string_tab[210]
#define __pyx_n_u_add_library __pyx_string_tab[211]
#define __pyx_n_u_after __pyx_string_tab[212]
#define __pyx_n_u_alen __pyx_string_tab[213]
#define __pyx_n_u_alters_data __pyx_string_tab[214]
#define __pyx_n_u_and __pyx_string_tab[215]
#define __pyx_n_u_append __pyx_string_tab[216]
#define __pyx_n_u_arg_sep __pyx_string_tab[217]
#define __pyx_n_u_args __pyx_string_tab[218]
#define __pyx_n_u_args_check __pyx_string_tab[219]
#define __pyx_n_u_as __pyx_string_tab[220]
#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[221]
#define __pyx_n_u_attr __pyx_string_tab[222]
#define __pyx_n_u_autoescape __pyx_string_tab[223]
#define __pyx_n_u_before __pyx_string_tab[224]
#define __pyx_n_u_bind __pyx_string_tab[225]
#define __pyx_n_u_bind_template __pyx_string_tab[226]
#define __pyx_n_u_bit __pyx_string_tab[227]
#define __pyx_n_u_bits __pyx_string_tab[228]
#define __pyx_n_u_bottom __pyx_string_tab[229]
#define __pyx_n_u_builtin __pyx_string_tab[230]
#define __pyx_n_u_builtins __pyx_string_tab[231]
#define __pyx_n_u_capitalize __pyx_string_tab[232]
#define __pyx_n_u_changed __pyx_string_tab[233]
#define __pyx_n_u_child_nl __pyx_string_tab[234]
#define __pyx_n_u_child_nodelists __pyx_string_tab[235]
#define __pyx_n_u_class __pyx_string_tab[236]
#define __pyx_n_u_class_getitem __pyx_string_tab[237]
#define __pyx_n_u_cline_in_traceback __pyx_string_tab[238]
#define __pyx_n_u_close __pyx_string_tab[239]
#define __pyx_n_u_command __pyx_string_tab[240]
#define __pyx_n_u_command_stack __pyx_string_tab[241]
#define __pyx_n_u_compile __pyx_string_tab[242]
#define __pyx_n_u_compile_filter __pyx_string_tab[243]
#define __pyx_n_u_compile_func __pyx_string_tab[244]
#define __pyx_n_u_compile_nodelist __pyx_string_tab[245]
#define __pyx_n_u_compiled_result __pyx_string_tab[246]
#define __pyx_n_u_cond __pyx_string_tab[247]
#define __pyx_n_u_conditions_nodelists __pyx_string_tab[248]
#define __pyx_n_u_constant __pyx_string_tab[249]
#define __pyx_n_u_constant_arg __pyx_string_tab[250]
#define __pyx_n_u_constant_string __pyx_string_tab[251]
#define __pyx_n_u_contains_nontext __pyx_string_tab[252]
#define __pyx_n_u_content __pyx_string_tab[253]
#define __pyx_n_u_contents __pyx_string_tab[254]
#define __pyx_n_u_context __pyx_string_tab[255]
#define __pyx_n_u_context_lines __pyx_string_tab[256]
#define __pyx_n_u_count __pyx_string_tab[257]
#define __pyx_n_u_create_token __pyx_string_tab[258]
#define __pyx_n_u_culprit_node __pyx_string_tab[259]
#define __pyx_n_u_cython_fast_code __pyx_string_tab[260]
#define __pyx_n_u_d __pyx_string_tab[261]
#define __pyx_n_u_datetime __pyx_string_tab[262]
#define __pyx_n_u_datetime_type __pyx_string_tab[263]
#define __pyx_n_u_debug __pyx_string_tab[264]
#define __pyx_n_u_defaults __pyx_string_tab[265]
#define __pyx_n_u_delete_first_token __pyx_string_tab[266]
#define __pyx_n_u_dict __pyx_string_tab[267]
#define __pyx_n_u_dict_2 __pyx_string_tab[268]
#define __pyx_n_u_dicts __pyx_string_tab[269]
#define __pyx_n_u_discard __pyx_string_tab[270]
#define __pyx_n_u_django_file_prefixes __pyx_string_tab[271]
#define __pyx_n_u_django_template_base __pyx_string_tab[272]
#define __pyx_n_u_django_templates_cythonized_base __pyx_string_tab[273]
#define __pyx_n_u_django_utils_deprecation __pyx_string_tab[274]
#define __pyx_n_u_django_utils_inspect __pyx_string_tab[275]
#define __pyx_n_u_django_utils_regex_helper __pyx_string_tab[276]
#define __pyx_n_u_django_utils_text __pyx_string_tab[277]
#define __pyx_n_u_django_utils_translation __pyx_string_tab[278]
#define __pyx_n_u_dlen __pyx_string_tab[279]
#define __pyx_n_u_do_not_call_in_templates __pyx_string_tab[280]
#define __pyx_n_u_doc __pyx_string_tab[281]
#define __pyx_n_u_during __pyx_string_tab[282]
#define __pyx_n_u_e __pyx_string_tab[283]
#define __pyx_n_u_end __pyx_string_tab[284]
#define __pyx_n_u_endswith __pyx_string_tab[285]
#define __pyx_n_u_endtag __pyx_string_tab[286]
#define __pyx_n_u_engine __pyx_string_tab[287]
#define __pyx_n_u_enter __pyx_string_tab[288]
#define __pyx_n_u_enumerate __pyx_string_tab[289]
#define __pyx_n_u_eq __pyx_string_tab[290]
#define __pyx_n_u_error __pyx_string_tab[291]
#define __pyx_n_u_escape __pyx_string_tab[292]
#define __pyx_n_u_exc_info __pyx_string_tab[293]
#define __pyx_n_u_exception __pyx_string_tab[294]
#define __pyx_n_u_exceptions __pyx_string_tab[295]
#define __pyx_n_u_exit __pyx_string_tab[296]
#define __pyx_n_u_expects_localtime __pyx_string_tab[297]
#define __pyx_n_u_extend_nodelist __pyx_string_tab[298]
#define __pyx_n_u_extra_context __pyx_string_tab[299]
#define __pyx_n_u_extra_data __pyx_string_tab[300]
#define __pyx_n_u_fe __pyx_string_tab[301]
#define __pyx_n_u_filter_expression __pyx_string_tab[302]
#define __pyx_n_u_filter_name __pyx_string_tab[303]
#define __pyx_n_u_filter_raw_string __pyx_string_tab[304]
#define __pyx_n_u_filter_re __pyx_string_tab[305]
#define __pyx_n_u_filter_sep __pyx_string_tab[306]
#define __pyx_n_u_filters __pyx_string_tab[307]
#define __pyx_n_u_find __pyx_string_tab[308]
#define __pyx_n_u_find_filter __pyx_string_tab[309]
#define __pyx_n_u_find_partial_source __pyx_string_tab[310]
#define __pyx_n_u_finditer __pyx_string_tab[311]
#define __pyx_n_u_flatten __pyx_string_tab[312]
#define __pyx_n_u_flatten_includes __pyx_string_tab[313]
#define __pyx_n_u_flatten_includes_locals_genexpr __pyx_string_tab[314]
#define __pyx_n_u_flattened_here __pyx_string_tab[315]
#define __pyx_n_u_full_source __pyx_string_tab[316]
#define __pyx_n_u_func __pyx_string_tab[317]
#define __pyx_n_u_func_2 __pyx_string_tab[318]
#define __pyx_n_u_genexpr __pyx_string_tab[319]
#define __pyx_n_u_getLogger __pyx_string_tab[320]
#define __pyx_n_u_get_default __pyx_string_tab[321]
#define __pyx_n_u_get_exception_info __pyx_string_tab[322]
#define __pyx_n_u_get_language __pyx_string_tab[323]
#define __pyx_n_u_get_nodes_by_type __pyx_string_tab[324]
#define __pyx_n_u_get_template __pyx_string_tab[325]
#define __pyx_n_u_get_text_list __pyx_string_tab[326]
#define __pyx_n_u_getfullargspec __pyx_string_tab[327]
#define __pyx_n_u_getitem __pyx_string_tab[328]
#define __pyx_n_u_getstate __pyx_string_tab[329]
#define __pyx_n_u_gettext_lazy __pyx_string_tab[330]
#define __pyx_n_u_groups __pyx_string_tab[331]
#define __pyx_n_u_html __pyx_string_tab[332]
#define __pyx_n_u_i __pyx_string_tab[333]
#define __pyx_n_u_i18n_close __pyx_string_tab[334]
#define __pyx_n_u_i18n_open __pyx_string_tab[335]
#define __pyx_n_u_ignore_failures __pyx_string_tab[336]
#define __pyx_n_u_in_tag __pyx_string_tab[337]
#define __pyx_n_u_inc __pyx_string_tab[338]
#define __pyx_n_u_included_nodes __pyx_string_tab[339]
#define __pyx_n_u_included_tpl __pyx_string_tab[340]
#define __pyx_n_u_init __pyx_string_tab[341]
#define __pyx_n_u_initial __pyx_string_tab[342]
#define __pyx_n_u_inspect __pyx_string_tab[343]
#define __pyx_n_u_invalid_block_tag __pyx_string_tab[344]
#define __pyx_n_u_is_coroutine __pyx_string_tab[345]
#define __pyx_n_u_is_safe __pyx_string_tab[346]
#define __pyx_n_u_is_var __pyx_string_tab[347]
#define __pyx_n_u_isolated_context __pyx_string_tab[348]
#define __pyx_n_u_items __pyx_string_tab[349]
#define __pyx_n_u_key __pyx_string_tab[350]
#define __pyx_n_u_kwarg_format __pyx_string_tab[351]
#define __pyx_n_u_kwarg_re __pyx_string_tab[352]
#define __pyx_n_u_kwargs __pyx_string_tab[353]
#define __pyx_n_u_last __pyx_string_tab[354]
#define __pyx_n_u_lazy_annotations __pyx_string_tab[355]
#define __pyx_n_u_lazy_re_compile __pyx_string_tab[356]
#define __pyx_n_u_lib __pyx_string_tab[357]
#define __pyx_n_u_libraries __pyx_string_tab[358]
#define __pyx_n_u_line __pyx_string_tab[359]
#define __pyx_n_u_linebreak_iter __pyx_string_tab[360]
#define __pyx_n_u_lineno __pyx_string_tab[361]
#define __pyx_n_u_loader __pyx_string_tab[362]
#define __pyx_n_u_loader_name __pyx_string_tab[363]
#define __pyx_n_u_loader_tags __pyx_string_tab[364]
#define __pyx_n_u_logger __pyx_string_tab[365]
#define __pyx_n_u_logging __pyx_string_tab[366]
#define __pyx_n_u_lower __pyx_string_tab[367]
#define __pyx_n_u_main __pyx_string_tab[368]
#define __pyx_n_u_mark_safe __pyx_string_tab[369]
#define __pyx_n_u_match __pyx_string_tab[370]
#define __pyx_n_u_message __pyx_string_tab[371]
#define __pyx_n_u_metaclass __pyx_string_tab[372]
#define __pyx_n_u_module __pyx_string_tab[373]
#define __pyx_n_u_mro_entries __pyx_string_tab[374]
#define __pyx_n_u_msg __pyx_string_tab[375]
#define __pyx_n_u_must_be_first __pyx_string_tab[376]
#define __pyx_n_u_n __pyx_string_tab[377]
#define __pyx_n_u_n_included __pyx_string_tab[378]
#define __pyx_n_u_name __pyx_string_tab[379]
#define __pyx_n_u_name_3 __pyx_string_tab[380]
#define __pyx_n_u_needs_autoescape __pyx_string_tab[381]
#define __pyx_n_u_new __pyx_string_tab[382]
#define __pyx_n_u_next __pyx_string_tab[383]
#define __pyx_n_u_next_token __pyx_string_tab[384]
#define __pyx_n_u_node __pyx_string_tab[385]
#define __pyx_n_u_nodelist __pyx_string_tab[386]
#define __pyx_n_u_nodes __pyx_string_tab[387]
#define __pyx_n_u_nodes_2 __pyx_string_tab[388]
#define __pyx_n_u_nodetype __pyx_string_tab[389]
#define __pyx_n_u_num __pyx_string_tab[390]
#define __pyx_n_u_object __pyx_string_tab[391]
#define __pyx_n_u_or __pyx_string_tab[392]
#define __pyx_n_u_origin __pyx_string_tab[393]
#define __pyx_n_u_other __pyx_string_tab[394]
#define __pyx_n_u_p __pyx_string_tab[395]
#define __pyx_n_u_params __pyx_string_tab[396]
#define __pyx_n_u_parse __pyx_string_tab[397]
#define __pyx_n_u_parse_until __pyx_string_tab[398]
#define __pyx_n_u_parser __pyx_string_tab[399]
#define __pyx_n_u_parts __pyx_string_tab[400]
#define __pyx_n_u_pgettext_lazy __pyx_string_tab[401]
#define __pyx_n_u_plen __pyx_string_tab[402]
#define __pyx_n_u_pop __pyx_string_tab[403]
#define __pyx_n_u_position __pyx_string_tab[404]
#define __pyx_n_u_prepare __pyx_string_tab[405]
#define __pyx_n_u_prepend_token __pyx_string_tab[406]
#define __pyx_n_u_processors_index __pyx_string_tab[407]
#define __pyx_n_u_property __pyx_string_tab[408]
#define __pyx_n_u_provided __pyx_string_tab[409]
#define __pyx_n_u_pyx_capi __pyx_string_tab[410]
#define __pyx_n_u_pyx_checksum __pyx_string_tab[411]
#define __pyx_n_u_pyx_result __pyx_string_tab[412]
#define __pyx_n_u_pyx_state __pyx_string_tab[413]
#define __pyx_n_u_pyx_type __pyx_string_tab[414]
#define __pyx_n_u_pyx_unpickle_CFilterInfo __pyx_string_tab[415]
#define __pyx_n_u_pyx_unpickle_FilterExpression __pyx_string_tab[416]
#define __pyx_n_u_pyx_unpickle_Node __pyx_string_tab[417]
#define __pyx_n_u_pyx_unpickle_NodeList __pyx_string_tab[418]
#define __pyx_n_u_pyx_unpickle_PartialTemplate __pyx_string_tab[419]
#define __pyx_n_u_pyx_unpickle_Template __pyx_string_tab[420]
#define __pyx_n_u_pyx_unpickle_TextNode __pyx_string_tab[421]
#define __pyx_n_u_pyx_unpickle_Variable __pyx_string_tab[422]
#define __pyx_n_u_pyx_unpickle_VariableNode __pyx_string_tab[423]
#define __pyx_n_u_pyx_vtable __pyx_string_tab[424]
#define __pyx_n_u_qualname __pyx_string_tab[425]
#define __pyx_n_u_raw_error_message __pyx_string_tab[426]
#define __pyx_n_u_re __pyx_string_tab[427]
#define __pyx_n_u_reduce __pyx_string_tab[428]
#define __pyx_n_u_reduce_cython __pyx_string_tab[429]
#define __pyx_n_u_reduce_ex __pyx_string_tab[430]
#define __pyx_n_u_render __pyx_string_tab[431]
#define __pyx_n_u_render_2 __pyx_string_tab[432]
#define __pyx_n_u_render_annotated __pyx_string_tab[433]
#define __pyx_n_u_render_context __pyx_string_tab[434]
#define __pyx_n_u_render_value_in_context __pyx_string_tab[435]
#define __pyx_n_u_replace __pyx_string_tab[436]
#define __pyx_n_u_repr __pyx_string_tab[437]
#define __pyx_n_u_resolve __pyx_string_tab[438]
#define __pyx_n_u_result __pyx_string_tab[439]
#define __pyx_n_u_reversed __pyx_string_tab[440]
#define __pyx_n_u_s_2 __pyx_string_tab[441]
#define __pyx_n_u_safestring __pyx_string_tab[442]
#define __pyx_n_u_seen __pyx_string_tab[443]
#define __pyx_n_u_self __pyx_string_tab[444]
#define __pyx_n_u_send __pyx_string_tab[445]
#define __pyx_n_u_sentinel __pyx_string_tab[446]
#define __pyx_n_u_set_name __pyx_string_tab[447]
#define __pyx_n_u_setdefault __pyx_string_tab[448]
#define __pyx_n_u_setstate __pyx_string_tab[449]
#define __pyx_n_u_setstate_cython __pyx_string_tab[450]
#define __pyx_n_u_signature __pyx_string_tab[451]
#define __pyx_n_u_silent_variable_failure __pyx_string_tab[452]
#define __pyx_n_u_skip_file_prefixes __pyx_string_tab[453]
#define __pyx_n_u_skip_past __pyx_string_tab[454]
#define __pyx_n_u_smart_split __pyx_string_tab[455]
#define __pyx_n_u_source __pyx_string_tab[456]
#define __pyx_n_u_source_end __pyx_string_tab[457]
#define __pyx_n_u_source_lines __pyx_string_tab[458]
#define __pyx_n_u_source_start __pyx_string_tab[459]
#define __pyx_n_u_span __pyx_string_tab[460]
#define __pyx_n_u_split __pyx_string_tab[461]
#define __pyx_n_u_split_contents __pyx_string_tab[462]
#define __pyx_n_u_start __pyx_string_tab[463]
#define __pyx_n_u_startswith __pyx_string_tab[464]
#define __pyx_n_u_state __pyx_string_tab[465]
#define __pyx_n_u_staticmethod __pyx_string_tab[466]
#define __pyx_n_u_stdlib_html __pyx_string_tab[467]
#define __pyx_n_u_str __pyx_string_tab[468]
#define __pyx_n_u_strdq __pyx_string_tab[469]
#define __pyx_n_u_string_if_invalid __pyx_string_tab[470]
#define __pyx_n_u_strip __pyx_string_tab[471]
#define __pyx_n_u_strsq __pyx_string_tab[472]
#define __pyx_n_u_support_legacy __pyx_string_tab[473]
#define __pyx_n_u_tag_re __pyx_string_tab[474]
#define __pyx_n_u_tag_re_split __pyx_string_tab[475]
#define __pyx_n_u_tag_re_split_positions __pyx_string_tab[476]
#define __pyx_n_u_tags __pyx_string_tab[477]
#define __pyx_n_u_template __pyx_string_tab[478]
#define __pyx_n_u_template_builtins __pyx_string_tab[479]
#define __pyx_n_u_template_debug __pyx_string_tab[480]
#define __pyx_n_u_template_libraries __pyx_string_tab[481]
#define __pyx_n_u_template_name __pyx_string_tab[482]
#define __pyx_n_u_template_source __pyx_string_tab[483]
#define __pyx_n_u_template_string __pyx_string_tab[484]
#define __pyx_n_u_test __pyx_string_tab[485]
#define __pyx_n_u_throw __pyx_string_tab[486]
#define __pyx_n_u_token __pyx_string_tab[487]
#define __pyx_n_u_token_kwargs __pyx_string_tab[488]
#define __pyx_n_u_token_name __pyx_string_tab[489]
#define __pyx_n_u_token_start __pyx_string_tab[490]
#define __pyx_n_u_token_string __pyx_string_tab[491]
#define __pyx_n_u_token_type __pyx_string_tab[492]
#define __pyx_n_u_tokenize __pyx_string_tab[493]
#define __pyx_n_u_tokens __pyx_string_tab[494]
#define __pyx_n_u_top __pyx_string_tab[495]
#define __pyx_n_u_total __pyx_string_tab[496]
#define __pyx_n_u_tpl_name __pyx_string_tab[497]
#define __pyx_n_u_trans_bit __pyx_string_tab[498]
#define __pyx_n_u_unclosed_block_tag __pyx_string_tab[499]
#define __pyx_n_u_unescape_string_literal __pyx_string_tab[500]
#define __pyx_n_u_unknown __pyx_string_tab[501]
#define __pyx_n_u_unwrap __pyx_string_tab[502]
#define __pyx_n_u_update __pyx_string_tab[503]
#define __pyx_n_u_upper __pyx_string_tab[504]
#define __pyx_n_u_upto __pyx_string_tab[505]
#define __pyx_n_u_use_setstate __pyx_string_tab[506]
#define __pyx_n_u_value __pyx_string_tab[507]
#define __pyx_n_u_values __pyx_string_tab[508]
#define __pyx_n_u_var __pyx_string_tab[509]
#define __pyx_n_u_var_arg __pyx_string_tab[510]
#define __pyx_n_u_var_chars __pyx_string_tab[511]
#define __pyx_n_u_var_node __pyx_string_tab[512]
#define __pyx_n_u_verbatim __pyx_string_tab[513]
#define __pyx_n_u_warn __pyx_string_tab[514]
#define __pyx_n_u_warnings __pyx_string_tab[515]
#define __pyx_kp_b_PyObject_PyObject_PyObject_PyObj __pyx_string_tab[516]
#define __pyx_kp_b_PyObject_PyObject_int___pyx_skip __pyx_string_tab[517]
#define __pyx_kp_b_PyObject_PyObject_int___pyx_skip_2 __pyx_string_tab[518]
#define __pyx_kp_b_PyObject_PyObject_int___pyx_skip_3 __pyx_string_tab[519]
#define __pyx_kp_b_iso88591_0_1_fA_7_Bd_Q_d __pyx_string_tab[520]
#define __pyx_kp_b_iso88591_1_HA_Q_Ja __pyx_string_tab[521]
#define __pyx_kp_b_iso88591_6 __pyx_string_tab[522]
#define __pyx_kp_b_iso88591_6_2 __pyx_string_tab[523]
#define __pyx_kp_b_iso88591_A __pyx_string_tab[524]
#define __pyx_kp_b_iso88591_AJ_vU_q_q_q_E_a_vS_T_S_q_WAU_WAV __pyx_string_tab[525]
#define __pyx_kp_b_iso88591_A_1_ar_3a_as_F_4q_xs_a_uAYg_Q_A __pyx_string_tab[526]
#define __pyx_kp_b_iso88591_A_2 __pyx_string_tab[527]
#define __pyx_kp_b_iso88591_A_4_d_t7_Qd_fA_U_Q_4z_IQ_Jd_q __pyx_string_tab[528]
#define __pyx_kp_b_iso88591_A_4q_1_G1_G_Q __pyx_string_tab[529]
#define __pyx_kp_b_iso88591_A_4q_G1_s_Rwa_3as_A_AQ_d_Yaq_aq __pyx_string_tab[530]
#define __pyx_kp_b_iso88591_A_4q_Gq_Qa_d __pyx_string_tab[531]
#define __pyx_kp_b_iso88591_A_4q_s_Rq_wgQa_Q_S_S_G_1_s_1_s_9 __pyx_string_tab[532]
#define __pyx_kp_b_iso88591_A_4wa_Jat1_E_a_iq_q_q_q_vV1_fA_t __pyx_string_tab[533]
#define __pyx_kp_b_iso88591_A_4waq_A_wiwa_4was_a_q_1_ixs_QR __pyx_string_tab[534]
#define __pyx_kp_b_iso88591_A_4wg_4wa_x_a __pyx_string_tab[535]
#define __pyx_kp_b_iso88591_A_4y_q_D_D_4q_j_E_q_IQj_Q_t1_AT __pyx_string_tab[536]
#define __pyx_kp_b_iso88591_A_4z_1_way_1IQ_iq_LBdRSS_WA_b_a __pyx_string_tab[537]
#define __pyx_kp_b_iso88591_A_4z_A __pyx_string_tab[538]
#define __pyx_kp_b_iso88591_A_4z_Q_1A_4was_Ya_q __pyx_string_tab[539]
#define __pyx_kp_b_iso88591_A_8_4q_d_haq_1_y_q_q_5_1_5Rt1_1 __pyx_string_tab[540]
#define __pyx_kp_b_iso88591_A_D_r __pyx_string_tab[541]
#define __pyx_kp_b_iso88591_A_E_A_HG1Cq __pyx_string_tab[542]
#define __pyx_kp_b_iso88591_A_F_Q_q_gQd_q_fHA_fAQ_T_q __pyx_string_tab[543]
#define __pyx_kp_b_iso88591_A_G1_Ja __pyx_string_tab[544]
#define __pyx_kp_b_iso88591_A_G7_1 __pyx_string_tab[545]
#define __pyx_kp_b_iso88591_A_HD_q_q __pyx_string_tab[546]
#define __pyx_kp_b_iso88591_A_N_L_Ja_L __pyx_string_tab[547]
#define __pyx_kp_b_iso88591_A_N_d_q_gQd_q_j_PQ_fAQ_T_q __pyx_string_tab[548]
#define __pyx_kp_b_iso88591_A_QfA_HD_wavV1_q_WAX_7q_q __pyx_string_tab[549]
#define __pyx_kp_b_iso88591_A_T_81A_1_axq __pyx_string_tab[550]
#define __pyx_kp_b_iso88591_A_T_E_A_q_3havQ __pyx_string_tab[551]
#define __pyx_kp_b_iso88591_A_WA_b_a_q_wj_1_A_7_9A_aq_t81A_q __pyx_string_tab[552]
#define __pyx_kp_b_iso88591_A_Z_d __pyx_string_tab[553]
#define __pyx_kp_b_iso88591_A_d_D_1_uL_9G4uJc_q __pyx_string_tab[554]
#define __pyx_kp_b_iso88591_A_d_s_1_wa_U_d_gQ_4vT_T_r_A_z_q __pyx_string_tab[555]
#define __pyx_kp_b_iso88591_A_q_L __pyx_string_tab[556]
#define __pyx_kp_b_iso88591_A_q_XQfA __pyx_string_tab[557]
#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[558]
#define __pyx_kp_b_iso88591_A_s_81_d_D_1_k_Q_AZxq_Cq_4uA_fA __pyx_string_tab[559]
#define __pyx_kp_b_iso88591_A_s_a_4xq_Q_Rq __pyx_string_tab[560]
#define __pyx_kp_b_iso88591_A_t1 __pyx_string_tab[561]
#define __pyx_kp_b_iso88591_A_t1_2 __pyx_string_tab[562]
#define __pyx_kp_b_iso88591_A_t1_3 __pyx_string_tab[563]
#define __pyx_kp_b_iso88591_A_t5_a __pyx_string_tab[564]
#define __pyx_kp_b_iso88591_A_t7_a __pyx_string_tab[565]
#define __pyx_kp_b_iso88591_A_t9G1A __pyx_string_tab[566]
#define __pyx_kp_b_iso88591_A_wa_M_T_4_s_1_at_4D_q __pyx_string_tab[567]
#define __pyx_kp_b_iso88591_A_z_T_s_vT_XUXX __pyx_string_tab[568]
#define __pyx_kp_b_iso88591_Q_1_1_Q_Bc_uAQ_QfA_q_A_Cq_D_1_D __pyx_string_tab[569]
#define __pyx_kp_b_iso88591_QfA __pyx_string_tab[570]
#define __pyx_kp_b_iso88591_T_0_G4z_Q_G1F_a_vWE_Q_q_t6_S_F __pyx_string_tab[571]
#define __pyx_kp_b_iso88591_T_4z_t_tST_G1F_a_vWE_Q_q_t9G5_4 __pyx_string_tab[572]
#define __pyx_kp_b_iso88591_T_Jd_4xt1_G1F_a_vWE_Q_q_t9G5_4w __pyx_string_tab[573]
#define __pyx_kp_b_iso88591_T_T_a_G1F_a_vWE_Q_q_t_gU_T_PUUX __pyx_string_tab[574]
#define __pyx_kp_b_iso88591_T_a_G1F_a_vWE_Q_q_t87_q_Qg_q_Qg __pyx_string_tab[575]
#define __pyx_kp_b_iso88591_T_a_G1F_a_vWE_Q_q_t87_s_gWA_q_T __pyx_string_tab[576]
#define __pyx_kp_b_iso88591_T_d_a_G1F_a_vWE_Q_q_t87_s_c_S_G __pyx_string_tab[577]
#define __pyx_kp_b_iso88591_T_m4wd_T_RVVW_G1F_a_vWE_Q_q_t87 __pyx_string_tab[578]
#define __pyx_kp_b_iso88591_T_t_34wd_TQR_G1F_a_vWE_Q_q_t_uC __pyx_string_tab[579]
#define __pyx_kp_b_iso88591__36 __pyx_string_tab[580]
#define __pyx_kp_b_iso88591__37 __pyx_string_tab[581]
#define __pyx_kp_b_iso88591__38 __pyx_string_tab[582]
#define __pyx_kp_b_iso88591_a_Jd_81A_HA_Kq_Q_N_S_9Cq_q_M_Kq __pyx_string_tab[583]
#define __pyx_kp_b_iso88591_avQ __pyx_string_tab[584]
#define __pyx_kp_b_iso88591_avQ_2 __pyx_string_tab[585]
#define __pyx_kp_b_iso88591_q_0_kQR_1_7_1_2DNRS_1 __pyx_string_tab[586]
#define __pyx_kp_b_iso88591_q_0_kQR_4xq_7_awnA_1 __pyx_string_tab[587]
#define __pyx_kp_b_iso88591_q_0_kQR_81A_7_2_3FnTU_1 __pyx_string_tab[588]
#define __pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1 __pyx_string_tab[589]
#define __pyx_kp_b_iso88591_q_0_kQR_haq_7_QnN_1 __pyx_string_tab[590]
#define __pyx_kp_b_iso88591_q_0_kQR_xq_7_a_nA_1 __pyx_string_tab[591]
#define __pyx_kp_b_iso88591_q_t1_q_HF_4q_6_U_1_t1_4q_1_3avR __pyx_string_tab[592]
#define __pyx_kp_b_iso88591_z_7_z_q_q_q_z_7_uCq_Q_1_y_HA_W __pyx_string_tab[593]
#define __pyx_int_0 __pyx_number_tab[0]
#define __pyx_int_neg_1 __pyx_number_tab[1]
#define __pyx_int_1 __pyx_number_tab[2]
#define __pyx_int_neg_2 __pyx_number_tab[3]
#define __pyx_int_2 __pyx_number_tab[4]
#define __pyx_int_3 __pyx_number_tab[5]
#define __pyx_int_4 __pyx_number_tab[6]
#define __pyx_int_9 __pyx_number_tab[7]
#define __pyx_int_20 __pyx_number_tab[8]
#define __pyx_int_28149491 __pyx_number_tab[9]
#define __pyx_int_90054167 __pyx_number_tab[10]
#define __pyx_int_91121623 __pyx_number_tab[11]
#define __pyx_int_154960213 __pyx_number_tab[12]
#define __pyx_int_178447223 __pyx_number_tab[13]
#define __pyx_int_200228074 __pyx_number_tab[14]
#define __pyx_int_218595859 __pyx_number_tab[15]
#define __pyx_int_245643908 __pyx_number_tab[16]
#define __pyx_int_256349668 __pyx_number_tab[17]
/* #### Code section: module_state_clear ### */
#if CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
  __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m);
  if (!clear_module_state) return 0;
  Py_CLEAR(clear_module_state->__pyx_d);
  Py_CLEAR(clear_module_state->__pyx_b);
  Py_CLEAR(clear_module_state->__pyx_cython_runtime);
  Py_CLEAR(clear_module_state->__pyx_empty_tuple);
  Py_CLEAR(clear_module_state->__pyx_empty_bytes);
  Py_CLEAR(clear_module_state->__pyx_empty_unicode);
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __Pyx_State_RemoveModule(NULL);
  #endif
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_7context_BaseContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_7context_RenderContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_7context_Context);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base_CFilterInfo);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base_Node);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base_Node);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base_TextNode);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base_TextNode);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base_NodeList);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base_NodeList);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base_Template);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base_Template);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base_FilterExpression);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base_VariableNode);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base_VariableNode);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base_PartialTemplate);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base_Variable);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base_Variable);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions);
  Py_CLEAR(clear_module_state->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split);
  Py_CLEAR(clear_module_state->__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split);
  for (int i=0; i<8; ++i) { Py_CLEAR(clear_module_state->__pyx_slice[i]); }
  for (int i=0; i<10; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); }
  for (int i=0; i<83; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); }
  for (int i=0; i<594; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
  for (int i=0; i<18; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); }
/* #### Code section: module_state_clear_contents ### */
/* CommonTypesMetaclass.module_state_clear */
Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType);

/* CythonFunctionShared.module_state_clear */
Py_CLEAR(clear_module_state->__pyx_CyFunctionType);

/* Generator.module_state_clear */
Py_CLEAR(clear_module_state->__pyx_GeneratorType);

/* #### Code section: module_state_clear_end ### */
return 0;
}
#endif
/* #### Code section: module_state_traverse ### */
#if CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
  __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m);
  if (!traverse_module_state) return 0;
  Py_VISIT(traverse_module_state->__pyx_d);
  Py_VISIT(traverse_module_state->__pyx_b);
  Py_VISIT(traverse_module_state->__pyx_cython_runtime);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_7context_BaseContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_7context_RenderContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_7context_Context);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base_CFilterInfo);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base_Node);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base_Node);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base_TextNode);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base_TextNode);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base_NodeList);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base_NodeList);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base_Template);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base_Template);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base_FilterExpression);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base_VariableNode);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base_VariableNode);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base_PartialTemplate);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base_Variable);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base_Variable);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions);
  Py_VISIT(traverse_module_state->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split);
  Py_VISIT(traverse_module_state->__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split);
  for (int i=0; i<8; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_slice[i]); }
  for (int i=0; i<10; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); }
  for (int i=0; i<83; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); }
  for (int i=0; i<594; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
  for (int i=0; i<18; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); }
/* #### Code section: module_state_traverse_contents ### */
/* CommonTypesMetaclass.module_state_traverse */
Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType);

/* CythonFunctionShared.module_state_traverse */
Py_VISIT(traverse_module_state->__pyx_CyFunctionType);

/* Generator.module_state_traverse */
Py_VISIT(traverse_module_state->__pyx_GeneratorType);

/* #### Code section: module_state_traverse_end ### */
return 0;
}
#endif
/* #### Code section: module_code ### */

/* "django_templates_cythonized/base.py":106
 * 
 * class VariableDoesNotExist(Exception):
 *     def __init__(self, msg, params=()):             # <<<<<<<<<<<<<<
 *         self.msg = msg
 *         self.params = params
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_20VariableDoesNotExist_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_20VariableDoesNotExist_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_20VariableDoesNotExist_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_20VariableDoesNotExist_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_msg = 0;
  PyObject *__pyx_v_params = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_msg,&__pyx_mstate_global->__pyx_n_u_params,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 106, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 106, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 106, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 106, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 106, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(0, 106, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 106, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 106, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 106, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)));
    }
    __pyx_v_self = values[0];
    __pyx_v_msg = values[1];
    __pyx_v_params = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 106, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableDoesNotExist.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_20VariableDoesNotExist___init__(__pyx_self, __pyx_v_self, __pyx_v_msg, __pyx_v_params);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_20VariableDoesNotExist___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_msg, PyObject *__pyx_v_params) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":107
 * class VariableDoesNotExist(Exception):
 *     def __init__(self, msg, params=()):
 *         self.msg = msg             # <<<<<<<<<<<<<<
 *         self.params = params
 * 
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_msg, __pyx_v_msg) < (0)) __PYX_ERR(0, 107, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":108
 *     def __init__(self, msg, params=()):
 *         self.msg = msg
 *         self.params = params             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_params, __pyx_v_params) < (0)) __PYX_ERR(0, 108, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":106
 * 
 * class VariableDoesNotExist(Exception):
 *     def __init__(self, msg, params=()):             # <<<<<<<<<<<<<<
 *         self.msg = msg
 *         self.params = params
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableDoesNotExist.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":110
 *         self.params = params
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.msg % self.params
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_20VariableDoesNotExist_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_20VariableDoesNotExist_3__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_20VariableDoesNotExist_3__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_20VariableDoesNotExist_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 110, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 110, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(0, 110, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(0, 110, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 110, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 110, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableDoesNotExist.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_20VariableDoesNotExist_2__str__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_20VariableDoesNotExist_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "django_templates_cythonized/base.py":111
 * 
 *     def __str__(self):
 *         return self.msg % self.params             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_msg); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_params); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Remainder(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":110
 *         self.params = params
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.msg % self.params
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableDoesNotExist.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":115
 * 
 * class Origin:
 *     def __init__(self, name, template_name=None, loader=None):             # <<<<<<<<<<<<<<
 *         self.name = name
 *         self.template_name = template_name
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Origin_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Origin_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_template_name = 0;
  PyObject *__pyx_v_loader = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_template_name,&__pyx_mstate_global->__pyx_n_u_loader,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 115, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 115, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 115, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 115, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 115, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 115, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(0, 115, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 115, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 115, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 115, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 115, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_template_name = values[2];
    __pyx_v_loader = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 115, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Origin___init__(__pyx_self, __pyx_v_self, __pyx_v_name, __pyx_v_template_name, __pyx_v_loader);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_template_name, PyObject *__pyx_v_loader) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":116
 * class Origin:
 *     def __init__(self, name, template_name=None, loader=None):
 *         self.name = name             # <<<<<<<<<<<<<<
 *         self.template_name = template_name
 *         self.loader = loader
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(0, 116, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":117
 *     def __init__(self, name, template_name=None, loader=None):
 *         self.name = name
 *         self.template_name = template_name             # <<<<<<<<<<<<<<
 *         self.loader = loader
 * 
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_template_name, __pyx_v_template_name) < (0)) __PYX_ERR(0, 117, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":118
 *         self.name = name
 *         self.template_name = template_name
 *         self.loader = loader             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_loader, __pyx_v_loader) < (0)) __PYX_ERR(0, 118, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":115
 * 
 * class Origin:
 *     def __init__(self, name, template_name=None, loader=None):             # <<<<<<<<<<<<<<
 *         self.name = name
 *         self.template_name = template_name
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":120
 *         self.loader = loader
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Origin_3__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Origin_3__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_3__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 120, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 120, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(0, 120, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(0, 120, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 120, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 120, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Origin_2__str__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "django_templates_cythonized/base.py":121
 * 
 *     def __str__(self):
 *         return self.name             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":120
 *         self.loader = loader
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":123
 *         return self.name
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s name=%r>" % (self.__class__.__qualname__, self.name)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_5__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Origin_5__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Origin_5__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_5__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 123, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 123, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(0, 123, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(0, 123, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 123, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 123, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Origin_4__repr__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin_4__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":124
 * 
 *     def __repr__(self):
 *         return "<%s name=%r>" % (self.__class__.__qualname__, self.name)             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_qualname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u_name_2;
  __pyx_t_4[3] = __pyx_t_3;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":123
 *         return self.name
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s name=%r>" % (self.__class__.__qualname__, self.name)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":126
 *         return "<%s name=%r>" % (self.__class__.__qualname__, self.name)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return isinstance(other, Origin) and self.name == other.name and self.loader == other.loader
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_7__eq__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Origin_7__eq__ = {"__eq__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Origin_7__eq__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_7__eq__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_other = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_other,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 126, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 126, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 126, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__eq__", 0) < (0)) __PYX_ERR(0, 126, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, i); __PYX_ERR(0, 126, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 126, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 126, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_other = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 126, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Origin_6__eq__(__pyx_self, __pyx_v_self, __pyx_v_other);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin_6__eq__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "django_templates_cythonized/base.py":127
 * 
 *     def __eq__(self, other):
 *         return isinstance(other, Origin) and self.name == other.name and self.loader == other.loader             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Origin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_other, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 127, __pyx_L1_error)
  if (__pyx_t_3) {
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_1 = __pyx_t_5;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_loader); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_mstate_global->__pyx_n_u_loader); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":126
 *         return "<%s name=%r>" % (self.__class__.__qualname__, self.name)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return isinstance(other, Origin) and self.name == other.name and self.loader == other.loader
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":129
 *         return isinstance(other, Origin) and self.name == other.name and self.loader == other.loader
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def loader_name(self):
 *         if self.loader:
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_9loader_name(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Origin_9loader_name = {"loader_name", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Origin_9loader_name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Origin_9loader_name(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("loader_name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 129, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 129, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "loader_name", 0) < (0)) __PYX_ERR(0, 129, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("loader_name", 1, 1, 1, i); __PYX_ERR(0, 129, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 129, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("loader_name", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 129, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.loader_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Origin_8loader_name(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Origin_8loader_name(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("loader_name", 0);

  /* "django_templates_cythonized/base.py":131
 *     @property
 *     def loader_name(self):
 *         if self.loader:             # <<<<<<<<<<<<<<
 *             return "%s.%s" % (
 *                 self.loader.__module__,
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_loader); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "django_templates_cythonized/base.py":132
 *     def loader_name(self):
 *         if self.loader:
 *             return "%s.%s" % (             # <<<<<<<<<<<<<<
 *                 self.loader.__module__,
 *                 self.loader.__class__.__name__,
*/
    __Pyx_XDECREF(__pyx_r);

    /* "django_templates_cythonized/base.py":133
 *         if self.loader:
 *             return "%s.%s" % (
 *                 self.loader.__module__,             # <<<<<<<<<<<<<<
 *                 self.loader.__class__.__name__,
 *             )
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_loader); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_3), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":134
 *             return "%s.%s" % (
 *                 self.loader.__module__,
 *                 self.loader.__class__.__name__,             # <<<<<<<<<<<<<<
 *             )
 * 
*/
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_loader); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_3), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_5[0] = __pyx_t_1;
    __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u__3;
    __pyx_t_5[2] = __pyx_t_4;

    /* "django_templates_cythonized/base.py":132
 *     def loader_name(self):
 *         if self.loader:
 *             return "%s.%s" % (             # <<<<<<<<<<<<<<
 *                 self.loader.__module__,
 *                 self.loader.__class__.__name__,
*/
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":131
 *     @property
 *     def loader_name(self):
 *         if self.loader:             # <<<<<<<<<<<<<<
 *             return "%s.%s" % (
 *                 self.loader.__module__,
*/
  }

  /* "django_templates_cythonized/base.py":129
 *         return isinstance(other, Origin) and self.name == other.name and self.loader == other.loader
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def loader_name(self):
 *         if self.loader:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Origin.loader_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":138
 * 
 * 
 * def _flatten_includes(nodelist, engine, seen):             # <<<<<<<<<<<<<<
 *     """
 *     Walk a NodeList and replace qualifying IncludeNodes with inlined nodes
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_1_flatten_includes(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base__flatten_includes, "\n    Walk a NodeList and replace qualifying IncludeNodes with inlined nodes\n    from the included template. This eliminates Template.render() overhead\n    (render_context push/pop) for simple static includes.\n\n    Qualifying criteria for an IncludeNode:\n    - Template name is a compile-time literal string (not a variable)\n    - No extra_context\n    - Not isolated_context\n    - Not a relative path (./  or ../)\n    - No cycle (template not already being flattened)\n    - Not already spliced into this nodelist (duplicate includes of the same\n      template are kept as IncludeNodes so each gets its own render_context\n      scope, preventing stateful nodes like CycleNode from sharing state)\n    ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_1_flatten_includes = {"_flatten_includes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_1_flatten_includes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base__flatten_includes};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_1_flatten_includes(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_nodelist = 0;
  PyObject *__pyx_v_engine = 0;
  PyObject *__pyx_v_seen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_flatten_includes (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nodelist,&__pyx_mstate_global->__pyx_n_u_engine,&__pyx_mstate_global->__pyx_n_u_seen,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 138, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 138, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 138, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 138, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_flatten_includes", 0) < (0)) __PYX_ERR(0, 138, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_flatten_includes", 1, 3, 3, i); __PYX_ERR(0, 138, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 138, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 138, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 138, __pyx_L3_error)
    }
    __pyx_v_nodelist = values[0];
    __pyx_v_engine = values[1];
    __pyx_v_seen = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_flatten_includes", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 138, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base._flatten_includes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base__flatten_includes(__pyx_self, __pyx_v_nodelist, __pyx_v_engine, __pyx_v_seen);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_27django_templates_cythonized_4base_17_flatten_includes_2generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "django_templates_cythonized/base.py":211
 *     if changed:
 *         # Recompute contains_nontext flag
 *         nodelist.contains_nontext = any(not isinstance(n, TextNode) for n in nodes)             # <<<<<<<<<<<<<<
 * 
 * 
*/

static PyObject *__pyx_pf_27django_templates_cythonized_4base_17_flatten_includes_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *)__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct__genexpr(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 211, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_27django_templates_cythonized_4base_17_flatten_includes_2generator3, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_flatten_includes_locals_genexpr, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base); if (unlikely(!gen)) __PYX_ERR(0, 211, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base._flatten_includes.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_27django_templates_cythonized_4base_17_flatten_includes_2generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *__pyx_cur_scope = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 211, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(0, 211, __pyx_L1_error) }
  if (unlikely(__pyx_cur_scope->__pyx_genexpr_arg_0 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 211, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 211, __pyx_L1_error)
      #endif
      if (__pyx_t_2 >= __pyx_temp) break;
    }
    __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
    ++__pyx_t_2;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_n);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_n, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_TypeCheck(__pyx_cur_scope->__pyx_v_n, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode); 
    __pyx_t_5 = (!__pyx_t_4);
    if (__pyx_t_5) {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_True);
      __pyx_r = Py_True;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":138
 * 
 * 
 * def _flatten_includes(nodelist, engine, seen):             # <<<<<<<<<<<<<<
 *     """
 *     Walk a NodeList and replace qualifying IncludeNodes with inlined nodes
*/

static PyObject *__pyx_pf_27django_templates_cythonized_4base__flatten_includes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_nodelist, PyObject *__pyx_v_engine, PyObject *__pyx_v_seen) {
  PyObject *__pyx_v_IncludeNode = NULL;
  PyObject *__pyx_v_nodes = 0;
  Py_ssize_t __pyx_v_i;
  int __pyx_v_changed;
  PyObject *__pyx_v_flattened_here = 0;
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_v_inc = NULL;
  PyObject *__pyx_v_fe = NULL;
  PyObject *__pyx_v_tpl_name = NULL;
  PyObject *__pyx_v_included_tpl = NULL;
  PyObject *__pyx_v_included_nodes = 0;
  Py_ssize_t __pyx_v_n_included;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_child_nl = NULL;
  CYTHON_UNUSED PyObject *__pyx_v__cond = NULL;
  PyObject *__pyx_gb_27django_templates_cythonized_4base_17_flatten_includes_2generator3 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  size_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  PyObject *(*__pyx_t_15)(PyObject *);
  PyObject *__pyx_t_16 = NULL;
  PyObject *(*__pyx_t_17)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_flatten_includes", 0);

  /* "django_templates_cythonized/base.py":154
 *       scope, preventing stateful nodes like CycleNode from sharing state)
 *     """
 *     from .loader_tags import IncludeNode             # <<<<<<<<<<<<<<
 * 
 *     nodes: list = nodelist._nodes
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_IncludeNode};
    __pyx_t_2 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_loader_tags, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_django_templates_cythonized_load, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_t_2;
  __Pyx_GOTREF(__pyx_t_1);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_IncludeNode};
    __pyx_t_3 = 0; {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_1, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 154, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      switch (__pyx_t_3) {
        case 0:
        __Pyx_INCREF(__pyx_t_4);
        __pyx_v_IncludeNode = __pyx_t_4;
        break;
        default:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":156
 *     from .loader_tags import IncludeNode
 * 
 *     nodes: list = nodelist._nodes             # <<<<<<<<<<<<<<
 *     i: cython.Py_ssize_t = 0
 *     changed: cython.bint = False
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_nodelist, __pyx_mstate_global->__pyx_n_u_nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(0, 156, __pyx_L1_error)
  __pyx_v_nodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":157
 * 
 *     nodes: list = nodelist._nodes
 *     i: cython.Py_ssize_t = 0             # <<<<<<<<<<<<<<
 *     changed: cython.bint = False
 *     # Track templates already spliced into THIS nodelist to prevent sharing
*/
  __pyx_v_i = 0;

  /* "django_templates_cythonized/base.py":158
 *     nodes: list = nodelist._nodes
 *     i: cython.Py_ssize_t = 0
 *     changed: cython.bint = False             # <<<<<<<<<<<<<<
 *     # Track templates already spliced into THIS nodelist to prevent sharing
 *     # stateful node objects (CycleNode, InclusionTag) across duplicate includes.
*/
  __pyx_v_changed = 0;

  /* "django_templates_cythonized/base.py":161
 *     # Track templates already spliced into THIS nodelist to prevent sharing
 *     # stateful node objects (CycleNode, InclusionTag) across duplicate includes.
 *     flattened_here: set = set()             # <<<<<<<<<<<<<<
 *     while i < len(nodes):
 *         node = nodes[i]
*/
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_flattened_here = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":162
 *     # stateful node objects (CycleNode, InclusionTag) across duplicate includes.
 *     flattened_here: set = set()
 *     while i < len(nodes):             # <<<<<<<<<<<<<<
 *         node = nodes[i]
 *         if isinstance(node, IncludeNode):
*/
  while (1) {
    if (unlikely(__pyx_v_nodes == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 162, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_v_nodes); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 162, __pyx_L1_error)
    __pyx_t_5 = (__pyx_v_i < __pyx_t_3);
    if (!__pyx_t_5) break;

    /* "django_templates_cythonized/base.py":163
 *     flattened_here: set = set()
 *     while i < len(nodes):
 *         node = nodes[i]             # <<<<<<<<<<<<<<
 *         if isinstance(node, IncludeNode):
 *             inc: IncludeNode = node
*/
    if (unlikely(__pyx_v_nodes == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 163, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_nodes, __pyx_v_i, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 1, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":164
 *     while i < len(nodes):
 *         node = nodes[i]
 *         if isinstance(node, IncludeNode):             # <<<<<<<<<<<<<<
 *             inc: IncludeNode = node
 *             fe = inc.template
*/
    __pyx_t_5 = PyObject_IsInstance(__pyx_v_node, __pyx_v_IncludeNode); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 164, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "django_templates_cythonized/base.py":165
 *         node = nodes[i]
 *         if isinstance(node, IncludeNode):
 *             inc: IncludeNode = node             # <<<<<<<<<<<<<<
 *             fe = inc.template
 *             # Check all qualifying criteria
*/
      __Pyx_INCREF(__pyx_v_node);
      __Pyx_XDECREF_SET(__pyx_v_inc, __pyx_v_node);

      /* "django_templates_cythonized/base.py":166
 *         if isinstance(node, IncludeNode):
 *             inc: IncludeNode = node
 *             fe = inc.template             # <<<<<<<<<<<<<<
 *             # Check all qualifying criteria
 *             if (
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_inc, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_fe, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":169
 *             # Check all qualifying criteria
 *             if (
 *                 not inc.isolated_context             # <<<<<<<<<<<<<<
 *                 and not inc.extra_context
 *                 and not fe.is_var
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_inc, __pyx_mstate_global->__pyx_n_u_isolated_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 169, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = (!__pyx_t_6);
      if (__pyx_t_7) {
      } else {
        __pyx_t_5 = __pyx_t_7;
        goto __pyx_L7_bool_binop_done;
      }

      /* "django_templates_cythonized/base.py":170
 *             if (
 *                 not inc.isolated_context
 *                 and not inc.extra_context             # <<<<<<<<<<<<<<
 *                 and not fe.is_var
 *                 and isinstance(fe.var, str)
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_inc, __pyx_mstate_global->__pyx_n_u_extra_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 170, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = (!__pyx_t_7);
      if (__pyx_t_6) {
      } else {
        __pyx_t_5 = __pyx_t_6;
        goto __pyx_L7_bool_binop_done;
      }

      /* "django_templates_cythonized/base.py":171
 *                 not inc.isolated_context
 *                 and not inc.extra_context
 *                 and not fe.is_var             # <<<<<<<<<<<<<<
 *                 and isinstance(fe.var, str)
 *                 and not fe.filters
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_fe, __pyx_mstate_global->__pyx_n_u_is_var); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 171, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = (!__pyx_t_6);
      if (__pyx_t_7) {
      } else {
        __pyx_t_5 = __pyx_t_7;
        goto __pyx_L7_bool_binop_done;
      }

      /* "django_templates_cythonized/base.py":172
 *                 and not inc.extra_context
 *                 and not fe.is_var
 *                 and isinstance(fe.var, str)             # <<<<<<<<<<<<<<
 *                 and not fe.filters
 *             ):
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_fe, __pyx_mstate_global->__pyx_n_u_var); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyUnicode_Check(__pyx_t_1); 
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_7) {
      } else {
        __pyx_t_5 = __pyx_t_7;
        goto __pyx_L7_bool_binop_done;
      }

      /* "django_templates_cythonized/base.py":173
 *                 and not fe.is_var
 *                 and isinstance(fe.var, str)
 *                 and not fe.filters             # <<<<<<<<<<<<<<
 *             ):
 *                 tpl_name = fe.var
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_fe, __pyx_mstate_global->__pyx_n_u_filters); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 173, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = (!__pyx_t_7);
      __pyx_t_5 = __pyx_t_6;
      __pyx_L7_bool_binop_done:;

      /* "django_templates_cythonized/base.py":168
 *             fe = inc.template
 *             # Check all qualifying criteria
 *             if (             # <<<<<<<<<<<<<<
 *                 not inc.isolated_context
 *                 and not inc.extra_context
*/
      if (__pyx_t_5) {

        /* "django_templates_cythonized/base.py":175
 *                 and not fe.filters
 *             ):
 *                 tpl_name = fe.var             # <<<<<<<<<<<<<<
 *                 if not tpl_name.startswith(("./", "../")) and tpl_name not in seen and tpl_name not in flattened_here:
 *                     try:
*/
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_fe, __pyx_mstate_global->__pyx_n_u_var); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_tpl_name, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":176
 *             ):
 *                 tpl_name = fe.var
 *                 if not tpl_name.startswith(("./", "../")) and tpl_name not in seen and tpl_name not in flattened_here:             # <<<<<<<<<<<<<<
 *                     try:
 *                         included_tpl = engine.get_template(tpl_name)
*/
        __pyx_t_4 = __pyx_v_tpl_name;
        __Pyx_INCREF(__pyx_t_4);
        __pyx_t_8 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0]};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_startswith, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 176, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_7 = (!__pyx_t_6);
        if (__pyx_t_7) {
        } else {
          __pyx_t_5 = __pyx_t_7;
          goto __pyx_L13_bool_binop_done;
        }
        __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_tpl_name, __pyx_v_seen, Py_NE)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 176, __pyx_L1_error)
        if (__pyx_t_7) {
        } else {
          __pyx_t_5 = __pyx_t_7;
          goto __pyx_L13_bool_binop_done;
        }
        __pyx_t_7 = (__Pyx_PySet_ContainsTF(__pyx_v_tpl_name, __pyx_v_flattened_here, Py_NE)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 176, __pyx_L1_error)
        __pyx_t_5 = __pyx_t_7;
        __pyx_L13_bool_binop_done:;
        if (__pyx_t_5) {

          /* "django_templates_cythonized/base.py":177
 *                 tpl_name = fe.var
 *                 if not tpl_name.startswith(("./", "../")) and tpl_name not in seen and tpl_name not in flattened_here:
 *                     try:             # <<<<<<<<<<<<<<
 *                         included_tpl = engine.get_template(tpl_name)
 *                         # Unwrap backend _Template wrapper if needed
*/
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_9, &__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_2);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            /*try:*/ {

              /* "django_templates_cythonized/base.py":178
 *                 if not tpl_name.startswith(("./", "../")) and tpl_name not in seen and tpl_name not in flattened_here:
 *                     try:
 *                         included_tpl = engine.get_template(tpl_name)             # <<<<<<<<<<<<<<
 *                         # Unwrap backend _Template wrapper if needed
 *                         if hasattr(included_tpl, "template"):
*/
              __pyx_t_4 = __pyx_v_engine;
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_8 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_tpl_name};
                __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_template, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 178, __pyx_L16_error)
                __Pyx_GOTREF(__pyx_t_1);
              }
              __Pyx_XDECREF_SET(__pyx_v_included_tpl, __pyx_t_1);
              __pyx_t_1 = 0;

              /* "django_templates_cythonized/base.py":180
 *                         included_tpl = engine.get_template(tpl_name)
 *                         # Unwrap backend _Template wrapper if needed
 *                         if hasattr(included_tpl, "template"):             # <<<<<<<<<<<<<<
 *                             included_tpl = included_tpl.template
 *                         included_nodes: list = included_tpl.nodelist._nodes
*/
              __pyx_t_5 = __Pyx_HasAttr(__pyx_v_included_tpl, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 180, __pyx_L16_error)
              if (__pyx_t_5) {

                /* "django_templates_cythonized/base.py":181
 *                         # Unwrap backend _Template wrapper if needed
 *                         if hasattr(included_tpl, "template"):
 *                             included_tpl = included_tpl.template             # <<<<<<<<<<<<<<
 *                         included_nodes: list = included_tpl.nodelist._nodes
 *                         # Splice included nodes in place of the IncludeNode
*/
                __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_included_tpl, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L16_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_DECREF_SET(__pyx_v_included_tpl, __pyx_t_1);
                __pyx_t_1 = 0;

                /* "django_templates_cythonized/base.py":180
 *                         included_tpl = engine.get_template(tpl_name)
 *                         # Unwrap backend _Template wrapper if needed
 *                         if hasattr(included_tpl, "template"):             # <<<<<<<<<<<<<<
 *                             included_tpl = included_tpl.template
 *                         included_nodes: list = included_tpl.nodelist._nodes
*/
              }

              /* "django_templates_cythonized/base.py":182
 *                         if hasattr(included_tpl, "template"):
 *                             included_tpl = included_tpl.template
 *                         included_nodes: list = included_tpl.nodelist._nodes             # <<<<<<<<<<<<<<
 *                         # Splice included nodes in place of the IncludeNode
 *                         seen.add(tpl_name)
*/
              __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_included_tpl, __pyx_mstate_global->__pyx_n_u_nodelist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L16_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nodes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 182, __pyx_L16_error)
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 182, __pyx_L16_error)
              __Pyx_XDECREF_SET(__pyx_v_included_nodes, ((PyObject*)__pyx_t_4));
              __pyx_t_4 = 0;

              /* "django_templates_cythonized/base.py":184
 *                         included_nodes: list = included_tpl.nodelist._nodes
 *                         # Splice included nodes in place of the IncludeNode
 *                         seen.add(tpl_name)             # <<<<<<<<<<<<<<
 *                         flattened_here.add(tpl_name)
 *                         # Recursively flatten the included template's nodes first
*/
              __pyx_t_1 = __pyx_v_seen;
              __Pyx_INCREF(__pyx_t_1);
              __pyx_t_8 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_tpl_name};
                __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_add, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 184, __pyx_L16_error)
                __Pyx_GOTREF(__pyx_t_4);
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

              /* "django_templates_cythonized/base.py":185
 *                         # Splice included nodes in place of the IncludeNode
 *                         seen.add(tpl_name)
 *                         flattened_here.add(tpl_name)             # <<<<<<<<<<<<<<
 *                         # Recursively flatten the included template's nodes first
 *                         _flatten_includes(included_tpl.nodelist, engine, seen)
*/
              __pyx_t_11 = PySet_Add(__pyx_v_flattened_here, __pyx_v_tpl_name); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 185, __pyx_L16_error)

              /* "django_templates_cythonized/base.py":187
 *                         flattened_here.add(tpl_name)
 *                         # Recursively flatten the included template's nodes first
 *                         _flatten_includes(included_tpl.nodelist, engine, seen)             # <<<<<<<<<<<<<<
 *                         # Splice included nodes into parent
 *                         n_included = len(included_nodes)
*/
              __pyx_t_1 = NULL;
              __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_flatten_includes); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 187, __pyx_L16_error)
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_included_tpl, __pyx_mstate_global->__pyx_n_u_nodelist); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 187, __pyx_L16_error)
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_8 = 1;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_12))) {
                __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_12);
                assert(__pyx_t_1);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
                __Pyx_INCREF(__pyx_t_1);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
                __pyx_t_8 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[4] = {__pyx_t_1, __pyx_t_13, __pyx_v_engine, __pyx_v_seen};
                __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L16_error)
                __Pyx_GOTREF(__pyx_t_4);
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

              /* "django_templates_cythonized/base.py":189
 *                         _flatten_includes(included_tpl.nodelist, engine, seen)
 *                         # Splice included nodes into parent
 *                         n_included = len(included_nodes)             # <<<<<<<<<<<<<<
 *                         nodes[i : i + 1] = included_nodes
 *                         seen.discard(tpl_name)
*/
              if (unlikely(__pyx_v_included_nodes == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
                __PYX_ERR(0, 189, __pyx_L16_error)
              }
              __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_v_included_nodes); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 189, __pyx_L16_error)
              __pyx_v_n_included = __pyx_t_3;

              /* "django_templates_cythonized/base.py":190
 *                         # Splice included nodes into parent
 *                         n_included = len(included_nodes)
 *                         nodes[i : i + 1] = included_nodes             # <<<<<<<<<<<<<<
 *                         seen.discard(tpl_name)
 *                         changed = True
*/
              if (unlikely(__pyx_v_nodes == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                __PYX_ERR(0, 190, __pyx_L16_error)
              }
              if (__Pyx_PyObject_SetSlice(__pyx_v_nodes, __pyx_v_included_nodes, __pyx_v_i, (__pyx_v_i + 1), NULL, NULL, NULL, 1, 1, 1) < (0)) __PYX_ERR(0, 190, __pyx_L16_error)

              /* "django_templates_cythonized/base.py":191
 *                         n_included = len(included_nodes)
 *                         nodes[i : i + 1] = included_nodes
 *                         seen.discard(tpl_name)             # <<<<<<<<<<<<<<
 *                         changed = True
 *                         i += n_included
*/
              __pyx_t_12 = __pyx_v_seen;
              __Pyx_INCREF(__pyx_t_12);
              __pyx_t_8 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_tpl_name};
                __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_discard, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 191, __pyx_L16_error)
                __Pyx_GOTREF(__pyx_t_4);
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

              /* "django_templates_cythonized/base.py":192
 *                         nodes[i : i + 1] = included_nodes
 *                         seen.discard(tpl_name)
 *                         changed = True             # <<<<<<<<<<<<<<
 *                         i += n_included
 *                         continue
*/
              __pyx_v_changed = 1;

              /* "django_templates_cythonized/base.py":193
 *                         seen.discard(tpl_name)
 *                         changed = True
 *                         i += n_included             # <<<<<<<<<<<<<<
 *                         continue
 *                     except (TemplateDoesNotExist, AttributeError):
*/
              __pyx_v_i = (__pyx_v_i + __pyx_v_n_included);

              /* "django_templates_cythonized/base.py":194
 *                         changed = True
 *                         i += n_included
 *                         continue             # <<<<<<<<<<<<<<
 *                     except (TemplateDoesNotExist, AttributeError):
 *                         pass  # If loading fails, keep the IncludeNode as-is
*/
              goto __pyx_L22_try_continue;

              /* "django_templates_cythonized/base.py":177
 *                 tpl_name = fe.var
 *                 if not tpl_name.startswith(("./", "../")) and tpl_name not in seen and tpl_name not in flattened_here:
 *                     try:             # <<<<<<<<<<<<<<
 *                         included_tpl = engine.get_template(tpl_name)
 *                         # Unwrap backend _Template wrapper if needed
*/
            }
            __pyx_L16_error:;
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "django_templates_cythonized/base.py":195
 *                         i += n_included
 *                         continue
 *                     except (TemplateDoesNotExist, AttributeError):             # <<<<<<<<<<<<<<
 *                         pass  # If loading fails, keep the IncludeNode as-is
 *         # Recurse into child nodelists of this node
*/
            __Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_12, &__pyx_t_13);
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TemplateDoesNotExist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L18_except_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_14 = __Pyx_PyErr_GivenExceptionMatches2(__pyx_t_4, __pyx_t_1, ((PyObject *)(((PyTypeObject*)PyExc_AttributeError))));
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_ErrRestore(__pyx_t_4, __pyx_t_12, __pyx_t_13);
            __pyx_t_4 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
            if (__pyx_t_14) {
              __Pyx_ErrRestore(0,0,0);
              goto __pyx_L17_exception_handled;
            }
            goto __pyx_L18_except_error;

            /* "django_templates_cythonized/base.py":177
 *                 tpl_name = fe.var
 *                 if not tpl_name.startswith(("./", "../")) and tpl_name not in seen and tpl_name not in flattened_here:
 *                     try:             # <<<<<<<<<<<<<<
 *                         included_tpl = engine.get_template(tpl_name)
 *                         # Unwrap backend _Template wrapper if needed
*/
            __pyx_L18_except_error:;
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_9, __pyx_t_10);
            goto __pyx_L1_error;
            __pyx_L22_try_continue:;
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_9, __pyx_t_10);
            goto __pyx_L3_continue;
            __pyx_L17_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_9, __pyx_t_10);
          }

          /* "django_templates_cythonized/base.py":176
 *             ):
 *                 tpl_name = fe.var
 *                 if not tpl_name.startswith(("./", "../")) and tpl_name not in seen and tpl_name not in flattened_here:             # <<<<<<<<<<<<<<
 *                     try:
 *                         included_tpl = engine.get_template(tpl_name)
*/
        }

        /* "django_templates_cythonized/base.py":168
 *             fe = inc.template
 *             # Check all qualifying criteria
 *             if (             # <<<<<<<<<<<<<<
 *                 not inc.isolated_context
 *                 and not inc.extra_context
*/
      }

      /* "django_templates_cythonized/base.py":164
 *     while i < len(nodes):
 *         node = nodes[i]
 *         if isinstance(node, IncludeNode):             # <<<<<<<<<<<<<<
 *             inc: IncludeNode = node
 *             fe = inc.template
*/
    }

    /* "django_templates_cythonized/base.py":198
 *                         pass  # If loading fails, keep the IncludeNode as-is
 *         # Recurse into child nodelists of this node
 *         if hasattr(node, "child_nodelists"):             # <<<<<<<<<<<<<<
 *             for attr in node.child_nodelists:
 *                 child_nl = getattr(node, attr, None)
*/
    __pyx_t_5 = __Pyx_HasAttr(__pyx_v_node, __pyx_mstate_global->__pyx_n_u_child_nodelists); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 198, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "django_templates_cythonized/base.py":199
 *         # Recurse into child nodelists of this node
 *         if hasattr(node, "child_nodelists"):
 *             for attr in node.child_nodelists:             # <<<<<<<<<<<<<<
 *                 child_nl = getattr(node, attr, None)
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
*/
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_mstate_global->__pyx_n_u_child_nodelists); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 199, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
        __pyx_t_12 = __pyx_t_13; __Pyx_INCREF(__pyx_t_12);
        __pyx_t_3 = 0;
        __pyx_t_15 = NULL;
      } else {
        __pyx_t_3 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 199, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 199, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (likely(!__pyx_t_15)) {
          if (likely(PyList_CheckExact(__pyx_t_12))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_12);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 199, __pyx_L1_error)
              #endif
              if (__pyx_t_3 >= __pyx_temp) break;
            }
            __pyx_t_13 = __Pyx_PyList_GetItemRefFast(__pyx_t_12, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference);
            ++__pyx_t_3;
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_12);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 199, __pyx_L1_error)
              #endif
              if (__pyx_t_3 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_13 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_3));
            #else
            __pyx_t_13 = __Pyx_PySequence_ITEM(__pyx_t_12, __pyx_t_3);
            #endif
            ++__pyx_t_3;
          }
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 199, __pyx_L1_error)
        } else {
          __pyx_t_13 = __pyx_t_15(__pyx_t_12);
          if (unlikely(!__pyx_t_13)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 199, __pyx_L1_error)
              PyErr_Clear();
            }
            break;
          }
        }
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_13);
        __pyx_t_13 = 0;

        /* "django_templates_cythonized/base.py":200
 *         if hasattr(node, "child_nodelists"):
 *             for attr in node.child_nodelists:
 *                 child_nl = getattr(node, attr, None)             # <<<<<<<<<<<<<<
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
 *                     _flatten_includes(child_nl, engine, seen)
*/
        __pyx_t_13 = __Pyx_GetAttr3(__pyx_v_node, __pyx_v_attr, Py_None); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 200, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_XDECREF_SET(__pyx_v_child_nl, __pyx_t_13);
        __pyx_t_13 = 0;

        /* "django_templates_cythonized/base.py":201
 *             for attr in node.child_nodelists:
 *                 child_nl = getattr(node, attr, None)
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):             # <<<<<<<<<<<<<<
 *                     _flatten_includes(child_nl, engine, seen)
 *         # Special case: IfNode stores nodelists in conditions_nodelists
*/
        __pyx_t_7 = (__pyx_v_child_nl != Py_None);
        if (__pyx_t_7) {
        } else {
          __pyx_t_5 = __pyx_t_7;
          goto __pyx_L31_bool_binop_done;
        }
        __pyx_t_7 = __Pyx_HasAttr(__pyx_v_child_nl, __pyx_mstate_global->__pyx_n_u_nodes); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 201, __pyx_L1_error)
        __pyx_t_5 = __pyx_t_7;
        __pyx_L31_bool_binop_done:;
        if (__pyx_t_5) {

          /* "django_templates_cythonized/base.py":202
 *                 child_nl = getattr(node, attr, None)
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
 *                     _flatten_includes(child_nl, engine, seen)             # <<<<<<<<<<<<<<
 *         # Special case: IfNode stores nodelists in conditions_nodelists
 *         if hasattr(node, "conditions_nodelists"):
*/
          __pyx_t_4 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_flatten_includes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 202, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_8 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
            assert(__pyx_t_4);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
            __pyx_t_8 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_child_nl, __pyx_v_engine, __pyx_v_seen};
            __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 202, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

          /* "django_templates_cythonized/base.py":201
 *             for attr in node.child_nodelists:
 *                 child_nl = getattr(node, attr, None)
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):             # <<<<<<<<<<<<<<
 *                     _flatten_includes(child_nl, engine, seen)
 *         # Special case: IfNode stores nodelists in conditions_nodelists
*/
        }

        /* "django_templates_cythonized/base.py":199
 *         # Recurse into child nodelists of this node
 *         if hasattr(node, "child_nodelists"):
 *             for attr in node.child_nodelists:             # <<<<<<<<<<<<<<
 *                 child_nl = getattr(node, attr, None)
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
*/
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

      /* "django_templates_cythonized/base.py":198
 *                         pass  # If loading fails, keep the IncludeNode as-is
 *         # Recurse into child nodelists of this node
 *         if hasattr(node, "child_nodelists"):             # <<<<<<<<<<<<<<
 *             for attr in node.child_nodelists:
 *                 child_nl = getattr(node, attr, None)
*/
    }

    /* "django_templates_cythonized/base.py":204
 *                     _flatten_includes(child_nl, engine, seen)
 *         # Special case: IfNode stores nodelists in conditions_nodelists
 *         if hasattr(node, "conditions_nodelists"):             # <<<<<<<<<<<<<<
 *             for _cond, child_nl in node.conditions_nodelists:
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
*/
    __pyx_t_5 = __Pyx_HasAttr(__pyx_v_node, __pyx_mstate_global->__pyx_n_u_conditions_nodelists); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 204, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "django_templates_cythonized/base.py":205
 *         # Special case: IfNode stores nodelists in conditions_nodelists
 *         if hasattr(node, "conditions_nodelists"):
 *             for _cond, child_nl in node.conditions_nodelists:             # <<<<<<<<<<<<<<
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
 *                     _flatten_includes(child_nl, engine, seen)
*/
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_mstate_global->__pyx_n_u_conditions_nodelists); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 205, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
        __pyx_t_13 = __pyx_t_12; __Pyx_INCREF(__pyx_t_13);
        __pyx_t_3 = 0;
        __pyx_t_15 = NULL;
      } else {
        __pyx_t_3 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 205, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 205, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      for (;;) {
        if (likely(!__pyx_t_15)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_13);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 205, __pyx_L1_error)
              #endif
              if (__pyx_t_3 >= __pyx_temp) break;
            }
            __pyx_t_12 = __Pyx_PyList_GetItemRefFast(__pyx_t_13, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference);
            ++__pyx_t_3;
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_13);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 205, __pyx_L1_error)
              #endif
              if (__pyx_t_3 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_12 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_3));
            #else
            __pyx_t_12 = __Pyx_PySequence_ITEM(__pyx_t_13, __pyx_t_3);
            #endif
            ++__pyx_t_3;
          }
          if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 205, __pyx_L1_error)
        } else {
          __pyx_t_12 = __pyx_t_15(__pyx_t_13);
          if (unlikely(!__pyx_t_12)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 205, __pyx_L1_error)
              PyErr_Clear();
            }
            break;
          }
        }
        __Pyx_GOTREF(__pyx_t_12);
        if ((likely(PyTuple_CheckExact(__pyx_t_12))) || (PyList_CheckExact(__pyx_t_12))) {
          PyObject* sequence = __pyx_t_12;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 205, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
            __Pyx_INCREF(__pyx_t_1);
            __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
            __Pyx_INCREF(__pyx_t_4);
          } else {
            __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
            if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error)
            __Pyx_XGOTREF(__pyx_t_1);
            __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
            if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 205, __pyx_L1_error)
            __Pyx_XGOTREF(__pyx_t_4);
          }
          #else
          __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 205, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_16 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 205, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_17 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_16);
          index = 0; __pyx_t_1 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_1)) goto __pyx_L37_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_1);
          index = 1; __pyx_t_4 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_4)) goto __pyx_L37_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_4);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_16), 2) < (0)) __PYX_ERR(0, 205, __pyx_L1_error)
          __pyx_t_17 = NULL;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          goto __pyx_L38_unpacking_done;
          __pyx_L37_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_17 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 205, __pyx_L1_error)
          __pyx_L38_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v__cond, __pyx_t_1);
        __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_child_nl, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "django_templates_cythonized/base.py":206
 *         if hasattr(node, "conditions_nodelists"):
 *             for _cond, child_nl in node.conditions_nodelists:
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):             # <<<<<<<<<<<<<<
 *                     _flatten_includes(child_nl, engine, seen)
 *         i += 1
*/
        __pyx_t_7 = (__pyx_v_child_nl != Py_None);
        if (__pyx_t_7) {
        } else {
          __pyx_t_5 = __pyx_t_7;
          goto __pyx_L40_bool_binop_done;
        }
        __pyx_t_7 = __Pyx_HasAttr(__pyx_v_child_nl, __pyx_mstate_global->__pyx_n_u_nodes); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 206, __pyx_L1_error)
        __pyx_t_5 = __pyx_t_7;
        __pyx_L40_bool_binop_done:;
        if (__pyx_t_5) {

          /* "django_templates_cythonized/base.py":207
 *             for _cond, child_nl in node.conditions_nodelists:
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
 *                     _flatten_includes(child_nl, engine, seen)             # <<<<<<<<<<<<<<
 *         i += 1
 *     if changed:
*/
          __pyx_t_4 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_flatten_includes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_8 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
            assert(__pyx_t_4);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
            __pyx_t_8 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_child_nl, __pyx_v_engine, __pyx_v_seen};
            __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 207, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
          }
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

          /* "django_templates_cythonized/base.py":206
 *         if hasattr(node, "conditions_nodelists"):
 *             for _cond, child_nl in node.conditions_nodelists:
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):             # <<<<<<<<<<<<<<
 *                     _flatten_includes(child_nl, engine, seen)
 *         i += 1
*/
        }

        /* "django_templates_cythonized/base.py":205
 *         # Special case: IfNode stores nodelists in conditions_nodelists
 *         if hasattr(node, "conditions_nodelists"):
 *             for _cond, child_nl in node.conditions_nodelists:             # <<<<<<<<<<<<<<
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
 *                     _flatten_includes(child_nl, engine, seen)
*/
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

      /* "django_templates_cythonized/base.py":204
 *                     _flatten_includes(child_nl, engine, seen)
 *         # Special case: IfNode stores nodelists in conditions_nodelists
 *         if hasattr(node, "conditions_nodelists"):             # <<<<<<<<<<<<<<
 *             for _cond, child_nl in node.conditions_nodelists:
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
*/
    }

    /* "django_templates_cythonized/base.py":208
 *                 if child_nl is not None and hasattr(child_nl, "_nodes"):
 *                     _flatten_includes(child_nl, engine, seen)
 *         i += 1             # <<<<<<<<<<<<<<
 *     if changed:
 *         # Recompute contains_nontext flag
*/
    __pyx_v_i = (__pyx_v_i + 1);
    __pyx_L3_continue:;
  }

  /* "django_templates_cythonized/base.py":209
 *                     _flatten_includes(child_nl, engine, seen)
 *         i += 1
 *     if changed:             # <<<<<<<<<<<<<<
 *         # Recompute contains_nontext flag
 *         nodelist.contains_nontext = any(not isinstance(n, TextNode) for n in nodes)
*/
  if (__pyx_v_changed) {

    /* "django_templates_cythonized/base.py":211
 *     if changed:
 *         # Recompute contains_nontext flag
 *         nodelist.contains_nontext = any(not isinstance(n, TextNode) for n in nodes)             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_13 = __pyx_pf_27django_templates_cythonized_4base_17_flatten_includes_genexpr(NULL, __pyx_v_nodes); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __Pyx_Generator_GetInlinedResult(__pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_nodelist, __pyx_mstate_global->__pyx_n_u_contains_nontext, __pyx_t_12) < (0)) __PYX_ERR(0, 211, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

    /* "django_templates_cythonized/base.py":209
 *                     _flatten_includes(child_nl, engine, seen)
 *         i += 1
 *     if changed:             # <<<<<<<<<<<<<<
 *         # Recompute contains_nontext flag
 *         nodelist.contains_nontext = any(not isinstance(n, TextNode) for n in nodes)
*/
  }

  /* "django_templates_cythonized/base.py":138
 * 
 * 
 * def _flatten_includes(nodelist, engine, seen):             # <<<<<<<<<<<<<<
 *     """
 *     Walk a NodeList and replace qualifying IncludeNodes with inlined nodes
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("django_templates_cythonized.base._flatten_includes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_IncludeNode);
  __Pyx_XDECREF(__pyx_v_nodes);
  __Pyx_XDECREF(__pyx_v_flattened_here);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XDECREF(__pyx_v_inc);
  __Pyx_XDECREF(__pyx_v_fe);
  __Pyx_XDECREF(__pyx_v_tpl_name);
  __Pyx_XDECREF(__pyx_v_included_tpl);
  __Pyx_XDECREF(__pyx_v_included_nodes);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_child_nl);
  __Pyx_XDECREF(__pyx_v__cond);
  __Pyx_XDECREF(__pyx_gb_27django_templates_cythonized_4base_17_flatten_includes_2generator3);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":216
 * @cython.cclass
 * class Template:
 *     def __init__(self, template_string, origin=None, name=None, engine=None):             # <<<<<<<<<<<<<<
 *         # If Template is instantiated directly rather than from an Engine and
 *         # exactly one Django template engine is configured, use that engine.
*/

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_template_string = 0;
  PyObject *__pyx_v_origin = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_engine = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_template_string,&__pyx_mstate_global->__pyx_n_u_origin,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_engine,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 216, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 216, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(0, 216, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 216, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_template_string = values[0];
    __pyx_v_origin = values[1];
    __pyx_v_name = values[2];
    __pyx_v_engine = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 216, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template___init__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), __pyx_v_template_string, __pyx_v_origin, __pyx_v_name, __pyx_v_engine);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template___init__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_template_string, PyObject *__pyx_v_origin, PyObject *__pyx_v_name, PyObject *__pyx_v_engine) {
  PyObject *__pyx_v_Engine = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_origin);
  __Pyx_INCREF(__pyx_v_engine);

  /* "django_templates_cythonized/base.py":221
 *         # This is required to preserve backwards-compatibility for direct use
 *         # e.g. Template('...').render(Context({...}))
 *         if engine is None:             # <<<<<<<<<<<<<<
 *             from .engine import Engine
 * 
*/
  __pyx_t_1 = (__pyx_v_engine == Py_None);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":222
 *         # e.g. Template('...').render(Context({...}))
 *         if engine is None:
 *             from .engine import Engine             # <<<<<<<<<<<<<<
 * 
 *             engine = Engine.get_default()
*/
    {
      PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_Engine};
      __pyx_t_3 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_engine, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_django_templates_cythonized_engi, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 222, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_t_3;
    __Pyx_GOTREF(__pyx_t_2);
    {
      PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_Engine};
      __pyx_t_4 = 0; {
        __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_4]); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        switch (__pyx_t_4) {
          case 0:
          __Pyx_INCREF(__pyx_t_5);
          __pyx_v_Engine = __pyx_t_5;
          break;
          default:;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":224
 *             from .engine import Engine
 * 
 *             engine = Engine.get_default()             # <<<<<<<<<<<<<<
 *         if origin is None:
 *             origin = Origin(UNKNOWN_SOURCE)
*/
    __pyx_t_5 = __pyx_v_Engine;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_default, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF_SET(__pyx_v_engine, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":221
 *         # This is required to preserve backwards-compatibility for direct use
 *         # e.g. Template('...').render(Context({...}))
 *         if engine is None:             # <<<<<<<<<<<<<<
 *             from .engine import Engine
 * 
*/
  }

  /* "django_templates_cythonized/base.py":225
 * 
 *             engine = Engine.get_default()
 *         if origin is None:             # <<<<<<<<<<<<<<
 *             origin = Origin(UNKNOWN_SOURCE)
 *         self.name = name
*/
  __pyx_t_1 = (__pyx_v_origin == Py_None);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":226
 *             engine = Engine.get_default()
 *         if origin is None:
 *             origin = Origin(UNKNOWN_SOURCE)             # <<<<<<<<<<<<<<
 *         self.name = name
 *         self.origin = origin
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Origin); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_UNKNOWN_SOURCE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 226, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF_SET(__pyx_v_origin, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":225
 * 
 *             engine = Engine.get_default()
 *         if origin is None:             # <<<<<<<<<<<<<<
 *             origin = Origin(UNKNOWN_SOURCE)
 *         self.name = name
*/
  }

  /* "django_templates_cythonized/base.py":227
 *         if origin is None:
 *             origin = Origin(UNKNOWN_SOURCE)
 *         self.name = name             # <<<<<<<<<<<<<<
 *         self.origin = origin
 *         self.engine = engine
*/
  __Pyx_INCREF(__pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __Pyx_GOTREF(__pyx_v_self->name);
  __Pyx_DECREF(__pyx_v_self->name);
  __pyx_v_self->name = __pyx_v_name;

  /* "django_templates_cythonized/base.py":228
 *             origin = Origin(UNKNOWN_SOURCE)
 *         self.name = name
 *         self.origin = origin             # <<<<<<<<<<<<<<
 *         self.engine = engine
 *         self.source = str(template_string)  # May be lazy.
*/
  __Pyx_INCREF(__pyx_v_origin);
  __Pyx_GIVEREF(__pyx_v_origin);
  __Pyx_GOTREF(__pyx_v_self->origin);
  __Pyx_DECREF(__pyx_v_self->origin);
  __pyx_v_self->origin = __pyx_v_origin;

  /* "django_templates_cythonized/base.py":229
 *         self.name = name
 *         self.origin = origin
 *         self.engine = engine             # <<<<<<<<<<<<<<
 *         self.source = str(template_string)  # May be lazy.
 *         self.nodelist = self.compile_nodelist()
*/
  __Pyx_INCREF(__pyx_v_engine);
  __Pyx_GIVEREF(__pyx_v_engine);
  __Pyx_GOTREF(__pyx_v_self->engine);
  __Pyx_DECREF(__pyx_v_self->engine);
  __pyx_v_self->engine = __pyx_v_engine;

  /* "django_templates_cythonized/base.py":230
 *         self.origin = origin
 *         self.engine = engine
 *         self.source = str(template_string)  # May be lazy.             # <<<<<<<<<<<<<<
 *         self.nodelist = self.compile_nodelist()
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_template_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->source);
  __Pyx_DECREF(__pyx_v_self->source);
  __pyx_v_self->source = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":231
 *         self.engine = engine
 *         self.source = str(template_string)  # May be lazy.
 *         self.nodelist = self.compile_nodelist()             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_t_2 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_Template *)__pyx_v_self->__pyx_vtab)->compile_nodelist(__pyx_v_self, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList))))) __PYX_ERR(0, 231, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->nodelist);
  __Pyx_DECREF((PyObject *)__pyx_v_self->nodelist);
  __pyx_v_self->nodelist = ((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":216
 * @cython.cclass
 * class Template:
 *     def __init__(self, template_string, origin=None, name=None, engine=None):             # <<<<<<<<<<<<<<
 *         # If Template is instantiated directly rather than from an Engine and
 *         # exactly one Django template engine is configured, use that engine.
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_Engine);
  __Pyx_XDECREF(__pyx_v_origin);
  __Pyx_XDECREF(__pyx_v_engine);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":233
 *         self.nodelist = self.compile_nodelist()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<%s template_string="%s...">' % (
 *             self.__class__.__qualname__,
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_3__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_3__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_2__repr__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_2__repr__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":234
 * 
 *     def __repr__(self):
 *         return '<%s template_string="%s...">' % (             # <<<<<<<<<<<<<<
 *             self.__class__.__qualname__,
 *             self.source[:20].replace("\n", ""),
*/
  __Pyx_XDECREF(__pyx_r);

  /* "django_templates_cythonized/base.py":235
 *     def __repr__(self):
 *         return '<%s template_string="%s...">' % (
 *             self.__class__.__qualname__,             # <<<<<<<<<<<<<<
 *             self.source[:20].replace("\n", ""),
 *         )
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_qualname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":236
 *         return '<%s template_string="%s...">' % (
 *             self.__class__.__qualname__,
 *             self.source[:20].replace("\n", ""),             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  if (unlikely(__pyx_v_self->source == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 236, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyUnicode_Substring(__pyx_v_self->source, 0, 20); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyUnicode_Replace(((PyObject*)__pyx_t_2), __pyx_mstate_global->__pyx_kp_u__6, __pyx_mstate_global->__pyx_kp_u__7, -1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u_template_string_2;
  __pyx_t_4[3] = __pyx_t_3;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u__8;

  /* "django_templates_cythonized/base.py":234
 * 
 *     def __repr__(self):
 *         return '<%s template_string="%s...">' % (             # <<<<<<<<<<<<<<
 *             self.__class__.__qualname__,
 *             self.source[:20].replace("\n", ""),
*/
  __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 18 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 5, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":233
 *         self.nodelist = self.compile_nodelist()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<%s template_string="%s...">' % (
 *             self.__class__.__qualname__,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":239
 *         )
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def _render(self, context: Context):
 *         return self.nodelist.render(context)
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_5_render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8Template__render(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_render", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_8Template_5_render)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":241
 *     @cython.ccall
 *     def _render(self, context: Context):
 *         return self.nodelist.render(context)             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_NodeList *)__pyx_v_self->nodelist->__pyx_vtab)->render(__pyx_v_self->nodelist, __pyx_v_context, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":239
 *         )
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def _render(self, context: Context):
 *         return self.nodelist.render(context)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template._render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_5_render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8Template_5_render = {"_render", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Template_5_render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_5_render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 239, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 239, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_render", 0) < (0)) __PYX_ERR(0, 239, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_render", 1, 1, 1, i); __PYX_ERR(0, 239, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 239, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_render", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 239, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Template._render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 240, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_4_render(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_4_render(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_render", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_8Template__render(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template._render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":243
 *         return self.nodelist.render(context)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context):
 *         "Display stage -- can be called many times"
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_7render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8Template_render(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_rc = NULL;
  PyObject *__pyx_v__rc_initial = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_t_15;
  char const *__pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  char const *__pyx_t_18;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  __Pyx_INCREF(__pyx_v_context);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_8Template_7render)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_context};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":246
 *     def render(self, context):
 *         "Display stage -- can be called many times"
 *         if not isinstance(context, Context):             # <<<<<<<<<<<<<<
 *             # Accept Django's stock Context or dict-like objects for compatibility.
 *             if hasattr(context, "flatten"):
*/
  __pyx_t_6 = __Pyx_TypeCheck(__pyx_v_context, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context); 
  __pyx_t_7 = (!__pyx_t_6);
  if (__pyx_t_7) {

    /* "django_templates_cythonized/base.py":248
 *         if not isinstance(context, Context):
 *             # Accept Django's stock Context or dict-like objects for compatibility.
 *             if hasattr(context, "flatten"):             # <<<<<<<<<<<<<<
 *                 context = Context(context.flatten())
 *             elif isinstance(context, dict):
*/
    __pyx_t_7 = __Pyx_HasAttr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_flatten); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 248, __pyx_L1_error)
    if (__pyx_t_7) {

      /* "django_templates_cythonized/base.py":249
 *             # Accept Django's stock Context or dict-like objects for compatibility.
 *             if hasattr(context, "flatten"):
 *                 context = Context(context.flatten())             # <<<<<<<<<<<<<<
 *             elif isinstance(context, dict):
 *                 context = Context(context)
*/
      __pyx_t_2 = NULL;
      __pyx_t_3 = __pyx_v_context;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_flatten, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 249, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_t_5 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error)
        __Pyx_GOTREF((PyObject *)__pyx_t_1);
      }
      __Pyx_DECREF_SET(__pyx_v_context, ((PyObject *)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":248
 *         if not isinstance(context, Context):
 *             # Accept Django's stock Context or dict-like objects for compatibility.
 *             if hasattr(context, "flatten"):             # <<<<<<<<<<<<<<
 *                 context = Context(context.flatten())
 *             elif isinstance(context, dict):
*/
      goto __pyx_L4;
    }

    /* "django_templates_cythonized/base.py":250
 *             if hasattr(context, "flatten"):
 *                 context = Context(context.flatten())
 *             elif isinstance(context, dict):             # <<<<<<<<<<<<<<
 *                 context = Context(context)
 *             else:
*/
    __pyx_t_7 = PyDict_Check(__pyx_v_context); 
    if (likely(__pyx_t_7)) {

      /* "django_templates_cythonized/base.py":251
 *                 context = Context(context.flatten())
 *             elif isinstance(context, dict):
 *                 context = Context(context)             # <<<<<<<<<<<<<<
 *             else:
 *                 raise TypeError("context must be a Context or dict, got %s" % type(context).__name__)
*/
      __pyx_t_4 = NULL;
      __pyx_t_5 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_context};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 251, __pyx_L1_error)
        __Pyx_GOTREF((PyObject *)__pyx_t_1);
      }
      __Pyx_DECREF_SET(__pyx_v_context, ((PyObject *)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":250
 *             if hasattr(context, "flatten"):
 *                 context = Context(context.flatten())
 *             elif isinstance(context, dict):             # <<<<<<<<<<<<<<
 *                 context = Context(context)
 *             else:
*/
      goto __pyx_L4;
    }

    /* "django_templates_cythonized/base.py":253
 *                 context = Context(context)
 *             else:
 *                 raise TypeError("context must be a Context or dict, got %s" % type(context).__name__)             # <<<<<<<<<<<<<<
 *         # Inline push_state(self)  avoids contextlib generator + ContextDict overhead.
 *         rc = context.render_context
*/
    /*else*/ {
      __pyx_t_4 = NULL;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_context)), __pyx_mstate_global->__pyx_n_u_name_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_context_must_be_a_Context_or_dic, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 253, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_Raise(__pyx_t_1, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __PYX_ERR(0, 253, __pyx_L1_error)
    }
    __pyx_L4:;

    /* "django_templates_cythonized/base.py":246
 *     def render(self, context):
 *         "Display stage -- can be called many times"
 *         if not isinstance(context, Context):             # <<<<<<<<<<<<<<
 *             # Accept Django's stock Context or dict-like objects for compatibility.
 *             if hasattr(context, "flatten"):
*/
  }

  /* "django_templates_cythonized/base.py":255
 *                 raise TypeError("context must be a Context or dict, got %s" % type(context).__name__)
 *         # Inline push_state(self)  avoids contextlib generator + ContextDict overhead.
 *         rc = context.render_context             # <<<<<<<<<<<<<<
 *         _rc_initial = rc.template
 *         rc.template = self
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_render_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_rc = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":256
 *         # Inline push_state(self)  avoids contextlib generator + ContextDict overhead.
 *         rc = context.render_context
 *         _rc_initial = rc.template             # <<<<<<<<<<<<<<
 *         rc.template = self
 *         rc.dicts.append({})
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_rc, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__rc_initial = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":257
 *         rc = context.render_context
 *         _rc_initial = rc.template
 *         rc.template = self             # <<<<<<<<<<<<<<
 *         rc.dicts.append({})
 *         try:
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_rc, __pyx_mstate_global->__pyx_n_u_template, ((PyObject *)__pyx_v_self)) < (0)) __PYX_ERR(0, 257, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":258
 *         _rc_initial = rc.template
 *         rc.template = self
 *         rc.dicts.append({})             # <<<<<<<<<<<<<<
 *         try:
 *             if context.template is None:
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_rc, __pyx_mstate_global->__pyx_n_u_dicts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 258, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "django_templates_cythonized/base.py":259
 *         rc.template = self
 *         rc.dicts.append({})
 *         try:             # <<<<<<<<<<<<<<
 *             if context.template is None:
 *                 context.template_name = self.name
*/
  /*try:*/ {

    /* "django_templates_cythonized/base.py":260
 *         rc.dicts.append({})
 *         try:
 *             if context.template is None:             # <<<<<<<<<<<<<<
 *                 context.template_name = self.name
 *                 # RequestContext needs context processor setup via its
*/
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 260, __pyx_L6_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = (__pyx_t_3 == Py_None);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_7) {

      /* "django_templates_cythonized/base.py":261
 *         try:
 *             if context.template is None:
 *                 context.template_name = self.name             # <<<<<<<<<<<<<<
 *                 # RequestContext needs context processor setup via its
 *                 # overridden bind_template; plain Context just sets .template.
*/
      __pyx_t_3 = __pyx_v_self->name;
      __Pyx_INCREF(__pyx_t_3);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template_name, __pyx_t_3) < (0)) __PYX_ERR(0, 261, __pyx_L6_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":264
 *                 # RequestContext needs context processor setup via its
 *                 # overridden bind_template; plain Context just sets .template.
 *                 if hasattr(context, "_processors_index"):             # <<<<<<<<<<<<<<
 *                     with context.bind_template(self):
 *                         return self._render(context)
*/
      __pyx_t_7 = __Pyx_HasAttr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_processors_index); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 264, __pyx_L6_error)
      if (__pyx_t_7) {

        /* "django_templates_cythonized/base.py":265
 *                 # overridden bind_template; plain Context just sets .template.
 *                 if hasattr(context, "_processors_index"):
 *                     with context.bind_template(self):             # <<<<<<<<<<<<<<
 *                         return self._render(context)
 *                 else:
*/
        /*with:*/ {
          __pyx_t_1 = __pyx_v_context;
          __Pyx_INCREF(__pyx_t_1);
          __pyx_t_5 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_1, ((PyObject *)__pyx_v_self)};
            __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_bind_template, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_3);
          }
          __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 265, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_4 = NULL;
          __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 265, __pyx_L10_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_5 = 1;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
            assert(__pyx_t_4);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
            __pyx_t_5 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
            __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 265, __pyx_L10_error)
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          /*try:*/ {
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
              __Pyx_XGOTREF(__pyx_t_10);
              __Pyx_XGOTREF(__pyx_t_11);
              __Pyx_XGOTREF(__pyx_t_12);
              /*try:*/ {

                /* "django_templates_cythonized/base.py":266
 *                 if hasattr(context, "_processors_index"):
 *                     with context.bind_template(self):
 *                         return self._render(context)             # <<<<<<<<<<<<<<
 *                 else:
 *                     context.template = self
*/
                __Pyx_XDECREF(__pyx_r);
                if (!(likely(((__pyx_v_context) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_context, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context))))) __PYX_ERR(0, 266, __pyx_L14_error)
                __pyx_t_3 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_Template *)__pyx_v_self->__pyx_vtab)->_render(__pyx_v_self, ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)__pyx_v_context), 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 266, __pyx_L14_error)
                __Pyx_GOTREF(__pyx_t_3);
                __pyx_r = __pyx_t_3;
                __pyx_t_3 = 0;
                goto __pyx_L18_try_return;

                /* "django_templates_cythonized/base.py":265
 *                 # overridden bind_template; plain Context just sets .template.
 *                 if hasattr(context, "_processors_index"):
 *                     with context.bind_template(self):             # <<<<<<<<<<<<<<
 *                         return self._render(context)
 *                 else:
*/
              }
              __pyx_L14_error:;
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              /*except:*/ {
                __Pyx_AddTraceback("django_templates_cythonized.base.Template.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 265, __pyx_L16_except_error)
                __Pyx_XGOTREF(__pyx_t_3);
                __Pyx_XGOTREF(__pyx_t_1);
                __Pyx_XGOTREF(__pyx_t_2);
                __pyx_t_4 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 265, __pyx_L16_except_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_4, NULL);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 265, __pyx_L16_except_error)
                __Pyx_GOTREF(__pyx_t_13);
                __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_13);
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                if (__pyx_t_7 < (0)) __PYX_ERR(0, 265, __pyx_L16_except_error)
                __pyx_t_6 = (!__pyx_t_7);
                if (unlikely(__pyx_t_6)) {
                  __Pyx_GIVEREF(__pyx_t_3);
                  __Pyx_GIVEREF(__pyx_t_1);
                  __Pyx_XGIVEREF(__pyx_t_2);
                  __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_2);
                  __pyx_t_3 = 0;  __pyx_t_1 = 0;  __pyx_t_2 = 0; 
                  __PYX_ERR(0, 265, __pyx_L16_except_error)
                }
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                goto __pyx_L15_exception_handled;
              }
              __pyx_L16_except_error:;
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_XGIVEREF(__pyx_t_12);
              __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
              goto __pyx_L6_error;
              __pyx_L18_try_return:;
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_XGIVEREF(__pyx_t_12);
              __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
              goto __pyx_L11_return;
              __pyx_L15_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_XGIVEREF(__pyx_t_12);
              __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
            }
          }
          /*finally:*/ {
            /*normal exit:*/{
              if (__pyx_t_9) {
                __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[1], NULL);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 265, __pyx_L6_error)
                __Pyx_GOTREF(__pyx_t_12);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              }
              goto __pyx_L13;
            }
            __pyx_L11_return: {
              __pyx_t_12 = __pyx_r;
              __pyx_r = 0;
              if (__pyx_t_9) {
                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[1], NULL);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 265, __pyx_L6_error)
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              }
              __pyx_r = __pyx_t_12;
              __pyx_t_12 = 0;
              goto __pyx_L5_return;
            }
            __pyx_L13:;
          }
          goto __pyx_L23;
          __pyx_L10_error:;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          goto __pyx_L6_error;
          __pyx_L23:;
        }

        /* "django_templates_cythonized/base.py":264
 *                 # RequestContext needs context processor setup via its
 *                 # overridden bind_template; plain Context just sets .template.
 *                 if hasattr(context, "_processors_index"):             # <<<<<<<<<<<<<<
 *                     with context.bind_template(self):
 *                         return self._render(context)
*/
        goto __pyx_L9;
      }

      /* "django_templates_cythonized/base.py":268
 *                         return self._render(context)
 *                 else:
 *                     context.template = self             # <<<<<<<<<<<<<<
 *                     try:
 *                         return self._render(context)
*/
      /*else*/ {
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template, ((PyObject *)__pyx_v_self)) < (0)) __PYX_ERR(0, 268, __pyx_L6_error)

        /* "django_templates_cythonized/base.py":269
 *                 else:
 *                     context.template = self
 *                     try:             # <<<<<<<<<<<<<<
 *                         return self._render(context)
 *                     finally:
*/
        /*try:*/ {

          /* "django_templates_cythonized/base.py":270
 *                     context.template = self
 *                     try:
 *                         return self._render(context)             # <<<<<<<<<<<<<<
 *                     finally:
 *                         context.template = None
*/
          __Pyx_XDECREF(__pyx_r);
          if (!(likely(((__pyx_v_context) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_context, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context))))) __PYX_ERR(0, 270, __pyx_L25_error)
          __pyx_t_2 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_Template *)__pyx_v_self->__pyx_vtab)->_render(__pyx_v_self, ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)__pyx_v_context), 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 270, __pyx_L25_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_r = __pyx_t_2;
          __pyx_t_2 = 0;
          goto __pyx_L24_return;
        }

        /* "django_templates_cythonized/base.py":272
 *                         return self._render(context)
 *                     finally:
 *                         context.template = None             # <<<<<<<<<<<<<<
 *             else:
 *                 return self._render(context)
*/
        /*finally:*/ {
          __pyx_L25_error:;
          /*exception exit:*/{
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __pyx_t_9 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_13 = 0; __pyx_t_17 = 0;
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
             __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_13, &__pyx_t_17);
            if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_12, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_12);
            __Pyx_XGOTREF(__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_13);
            __Pyx_XGOTREF(__pyx_t_17);
            __pyx_t_14 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
            {
              if (__Pyx_PyObject_SetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template, Py_None) < (0)) __PYX_ERR(0, 272, __pyx_L28_error)
            }
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_13, __pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ErrRestore(__pyx_t_9, __pyx_t_12, __pyx_t_11);
            __pyx_t_9 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_13 = 0; __pyx_t_17 = 0;
            __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
            goto __pyx_L6_error;
            __pyx_L28_error:;
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_13, __pyx_t_17);
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_10 = 0; __pyx_t_13 = 0; __pyx_t_17 = 0;
            goto __pyx_L6_error;
          }
          __pyx_L24_return: {
            __pyx_t_17 = __pyx_r;
            __pyx_r = 0;
            if (__Pyx_PyObject_SetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template, Py_None) < (0)) __PYX_ERR(0, 272, __pyx_L6_error)
            __pyx_r = __pyx_t_17;
            __pyx_t_17 = 0;
            goto __pyx_L5_return;
          }
        }
      }
      __pyx_L9:;

      /* "django_templates_cythonized/base.py":260
 *         rc.dicts.append({})
 *         try:
 *             if context.template is None:             # <<<<<<<<<<<<<<
 *                 context.template_name = self.name
 *                 # RequestContext needs context processor setup via its
*/
      goto __pyx_L8;
    }

    /* "django_templates_cythonized/base.py":274
 *                         context.template = None
 *             else:
 *                 return self._render(context)             # <<<<<<<<<<<<<<
 *         finally:
 *             rc.template = _rc_initial
*/
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      if (!(likely(((__pyx_v_context) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_context, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context))))) __PYX_ERR(0, 274, __pyx_L6_error)
      __pyx_t_2 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_Template *)__pyx_v_self->__pyx_vtab)->_render(__pyx_v_self, ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)__pyx_v_context), 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 274, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L5_return;
    }
    __pyx_L8:;
  }

  /* "django_templates_cythonized/base.py":276
 *                 return self._render(context)
 *         finally:
 *             rc.template = _rc_initial             # <<<<<<<<<<<<<<
 *             rc.dicts.pop()
 * 
*/
  /*finally:*/ {
    /*normal exit:*/{
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_rc, __pyx_mstate_global->__pyx_n_u_template, __pyx_v__rc_initial) < (0)) __PYX_ERR(0, 276, __pyx_L1_error)

      /* "django_templates_cythonized/base.py":277
 *         finally:
 *             rc.template = _rc_initial
 *             rc.dicts.pop()             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_rc, __pyx_mstate_global->__pyx_n_u_dicts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_Pop(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L7;
    }
    __pyx_L6_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_17 = 0; __pyx_t_13 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_9);
      if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_13, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_13, &__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_17);
      __Pyx_XGOTREF(__pyx_t_13);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_9);
      __pyx_t_15 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_18 = __pyx_filename;
      {

        /* "django_templates_cythonized/base.py":276
 *                 return self._render(context)
 *         finally:
 *             rc.template = _rc_initial             # <<<<<<<<<<<<<<
 *             rc.dicts.pop()
 * 
*/
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_rc, __pyx_mstate_global->__pyx_n_u_template, __pyx_v__rc_initial) < (0)) __PYX_ERR(0, 276, __pyx_L30_error)

        /* "django_templates_cythonized/base.py":277
 *         finally:
 *             rc.template = _rc_initial
 *             rc.dicts.pop()             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_rc, __pyx_mstate_global->__pyx_n_u_dicts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L30_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = __Pyx_PyObject_Pop(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L30_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_9);
      __Pyx_XGIVEREF(__pyx_t_17);
      __Pyx_XGIVEREF(__pyx_t_13);
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_ErrRestore(__pyx_t_17, __pyx_t_13, __pyx_t_10);
      __pyx_t_17 = 0; __pyx_t_13 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_9 = 0;
      __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_18;
      goto __pyx_L1_error;
      __pyx_L30_error:;
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_9);
      __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_9 = 0;
      goto __pyx_L1_error;
    }
    __pyx_L5_return: {
      __pyx_t_9 = __pyx_r;
      __pyx_r = 0;

      /* "django_templates_cythonized/base.py":276
 *                 return self._render(context)
 *         finally:
 *             rc.template = _rc_initial             # <<<<<<<<<<<<<<
 *             rc.dicts.pop()
 * 
*/
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_rc, __pyx_mstate_global->__pyx_n_u_template, __pyx_v__rc_initial) < (0)) __PYX_ERR(0, 276, __pyx_L1_error)

      /* "django_templates_cythonized/base.py":277
 *         finally:
 *             rc.template = _rc_initial
 *             rc.dicts.pop()             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_rc, __pyx_mstate_global->__pyx_n_u_dicts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_Pop(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      goto __pyx_L0;
    }
    __pyx_L7:;
  }

  /* "django_templates_cythonized/base.py":243
 *         return self.nodelist.render(context)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context):
 *         "Display stage -- can be called many times"
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_rc);
  __Pyx_XDECREF(__pyx_v__rc_initial);
  __Pyx_XDECREF(__pyx_v_context);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_7render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_8Template_6render, "Display stage -- can be called many times");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8Template_7render = {"render", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Template_7render, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_8Template_6render};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_7render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 243, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 243, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "render", 0) < (0)) __PYX_ERR(0, 243, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, i); __PYX_ERR(0, 243, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 243, __pyx_L3_error)
    }
    __pyx_v_context = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 243, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6render(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_6render(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_8Template_render(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":279
 *             rc.dicts.pop()
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def compile_nodelist(self):
 *         """
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_9compile_nodelist(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8Template_compile_nodelist(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_lexer = NULL;
  PyObject *__pyx_v_tokens = NULL;
  PyObject *__pyx_v_parser = NULL;
  PyObject *__pyx_v_nodelist = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_v_raw_message = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14[4];
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  char const *__pyx_t_17;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("compile_nodelist", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_compile_nodelist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_8Template_9compile_nodelist)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":287
 *         template source.
 *         """
 *         if self.engine.debug:             # <<<<<<<<<<<<<<
 *             lexer = DebugLexer(self.source)
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->engine, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "django_templates_cythonized/base.py":288
 *         """
 *         if self.engine.debug:
 *             lexer = DebugLexer(self.source)             # <<<<<<<<<<<<<<
 *         else:
 *             lexer = Lexer(self.source)
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DebugLexer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_self->source};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 288, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_v_lexer = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":287
 *         template source.
 *         """
 *         if self.engine.debug:             # <<<<<<<<<<<<<<
 *             lexer = DebugLexer(self.source)
 *         else:
*/
    goto __pyx_L3;
  }

  /* "django_templates_cythonized/base.py":290
 *             lexer = DebugLexer(self.source)
 *         else:
 *             lexer = Lexer(self.source)             # <<<<<<<<<<<<<<
 * 
 *         tokens = lexer.tokenize()
*/
  /*else*/ {
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Lexer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_self->source};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 290, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_v_lexer = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "django_templates_cythonized/base.py":292
 *             lexer = Lexer(self.source)
 * 
 *         tokens = lexer.tokenize()             # <<<<<<<<<<<<<<
 *         parser = Parser(
 *             tokens,
*/
  __pyx_t_2 = __pyx_v_lexer;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_tokenize, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_tokens = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":293
 * 
 *         tokens = lexer.tokenize()
 *         parser = Parser(             # <<<<<<<<<<<<<<
 *             tokens,
 *             self.engine.template_libraries,
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Parser); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "django_templates_cythonized/base.py":295
 *         parser = Parser(
 *             tokens,
 *             self.engine.template_libraries,             # <<<<<<<<<<<<<<
 *             self.engine.template_builtins,
 *             self.origin,
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->engine, __pyx_mstate_global->__pyx_n_u_template_libraries); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "django_templates_cythonized/base.py":296
 *             tokens,
 *             self.engine.template_libraries,
 *             self.engine.template_builtins,             # <<<<<<<<<<<<<<
 *             self.origin,
 *         )
*/
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->engine, __pyx_mstate_global->__pyx_n_u_template_builtins); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "django_templates_cythonized/base.py":297
 *             self.engine.template_libraries,
 *             self.engine.template_builtins,
 *             self.origin,             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_v_tokens, __pyx_t_3, __pyx_t_7, __pyx_v_self->origin};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_parser = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":300
 *         )
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             nodelist = parser.parse()
 *             self.extra_data = parser.extra_data
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_10);
    /*try:*/ {

      /* "django_templates_cythonized/base.py":301
 * 
 *         try:
 *             nodelist = parser.parse()             # <<<<<<<<<<<<<<
 *             self.extra_data = parser.extra_data
 *             if not self.engine.debug:
*/
      __pyx_t_4 = __pyx_v_parser;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_parse, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_v_nodelist = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":302
 *         try:
 *             nodelist = parser.parse()
 *             self.extra_data = parser.extra_data             # <<<<<<<<<<<<<<
 *             if not self.engine.debug:
 *                 _flatten_includes(nodelist, self.engine, set())
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_mstate_global->__pyx_n_u_extra_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 302, __pyx_L4_error)
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_v_self->extra_data);
      __Pyx_DECREF(__pyx_v_self->extra_data);
      __pyx_v_self->extra_data = ((PyObject*)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":303
 *             nodelist = parser.parse()
 *             self.extra_data = parser.extra_data
 *             if not self.engine.debug:             # <<<<<<<<<<<<<<
 *                 _flatten_includes(nodelist, self.engine, set())
 *             return nodelist
*/
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->engine, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 303, __pyx_L4_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_11 = (!__pyx_t_6);
      if (__pyx_t_11) {

        /* "django_templates_cythonized/base.py":304
 *             self.extra_data = parser.extra_data
 *             if not self.engine.debug:
 *                 _flatten_includes(nodelist, self.engine, set())             # <<<<<<<<<<<<<<
 *             return nodelist
 *         except Exception as e:
*/
        __pyx_t_4 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_flatten_includes); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 304, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 304, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
          assert(__pyx_t_4);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_nodelist, __pyx_v_self->engine, __pyx_t_3};
          __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 304, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":303
 *             nodelist = parser.parse()
 *             self.extra_data = parser.extra_data
 *             if not self.engine.debug:             # <<<<<<<<<<<<<<
 *                 _flatten_includes(nodelist, self.engine, set())
 *             return nodelist
*/
      }

      /* "django_templates_cythonized/base.py":305
 *             if not self.engine.debug:
 *                 _flatten_includes(nodelist, self.engine, set())
 *             return nodelist             # <<<<<<<<<<<<<<
 *         except Exception as e:
 *             if self.engine.debug:
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_nodelist);
      __pyx_r = __pyx_v_nodelist;
      goto __pyx_L8_try_return;

      /* "django_templates_cythonized/base.py":300
 *         )
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             nodelist = parser.parse()
 *             self.extra_data = parser.extra_data
*/
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "django_templates_cythonized/base.py":306
 *                 _flatten_includes(nodelist, self.engine, set())
 *             return nodelist
 *         except Exception as e:             # <<<<<<<<<<<<<<
 *             if self.engine.debug:
 *                 e.template_debug = self.get_exception_info(e, e.token)
*/
    __pyx_t_12 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
    if (__pyx_t_12) {
      __Pyx_AddTraceback("django_templates_cythonized.base.Template.compile_nodelist", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 306, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_7);
      __pyx_v_e = __pyx_t_7;
      /*try:*/ {

        /* "django_templates_cythonized/base.py":307
 *             return nodelist
 *         except Exception as e:
 *             if self.engine.debug:             # <<<<<<<<<<<<<<
 *                 e.template_debug = self.get_exception_info(e, e.token)
 *             if isinstance(e, TemplateSyntaxError) and self.origin.name != UNKNOWN_SOURCE and e.args:
*/
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->engine, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L16_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 307, __pyx_L16_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_11) {

          /* "django_templates_cythonized/base.py":308
 *         except Exception as e:
 *             if self.engine.debug:
 *                 e.template_debug = self.get_exception_info(e, e.token)             # <<<<<<<<<<<<<<
 *             if isinstance(e, TemplateSyntaxError) and self.origin.name != UNKNOWN_SOURCE and e.args:
 *                 raw_message = e.args[0]
*/
          __pyx_t_2 = ((PyObject *)__pyx_v_self);
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_token); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 308, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_5 = 0;
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_e, __pyx_t_13};
            __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_exception_info, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L16_error)
            __Pyx_GOTREF(__pyx_t_4);
          }
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_template_debug, __pyx_t_4) < (0)) __PYX_ERR(0, 308, __pyx_L16_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

          /* "django_templates_cythonized/base.py":307
 *             return nodelist
 *         except Exception as e:
 *             if self.engine.debug:             # <<<<<<<<<<<<<<
 *                 e.template_debug = self.get_exception_info(e, e.token)
 *             if isinstance(e, TemplateSyntaxError) and self.origin.name != UNKNOWN_SOURCE and e.args:
*/
        }

        /* "django_templates_cythonized/base.py":309
 *             if self.engine.debug:
 *                 e.template_debug = self.get_exception_info(e, e.token)
 *             if isinstance(e, TemplateSyntaxError) and self.origin.name != UNKNOWN_SOURCE and e.args:             # <<<<<<<<<<<<<<
 *                 raw_message = e.args[0]
 *                 e.raw_error_message = raw_message
*/
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L16_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PyObject_IsInstance(__pyx_v_e, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 309, __pyx_L16_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_6) {
        } else {
          __pyx_t_11 = __pyx_t_6;
          goto __pyx_L20_bool_binop_done;
        }
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->origin, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L16_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_UNKNOWN_SOURCE); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 309, __pyx_L16_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_t_13, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L16_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 309, __pyx_L16_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (__pyx_t_6) {
        } else {
          __pyx_t_11 = __pyx_t_6;
          goto __pyx_L20_bool_binop_done;
        }
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L16_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 309, __pyx_L16_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_11 = __pyx_t_6;
        __pyx_L20_bool_binop_done:;
        if (__pyx_t_11) {

          /* "django_templates_cythonized/base.py":310
 *                 e.template_debug = self.get_exception_info(e, e.token)
 *             if isinstance(e, TemplateSyntaxError) and self.origin.name != UNKNOWN_SOURCE and e.args:
 *                 raw_message = e.args[0]             # <<<<<<<<<<<<<<
 *                 e.raw_error_message = raw_message
 *                 e.args = (f"Template: {self.origin.name}, {raw_message}", *e.args[1:])
*/
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 310, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 310, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_v_raw_message = __pyx_t_13;
          __pyx_t_13 = 0;

          /* "django_templates_cythonized/base.py":311
 *             if isinstance(e, TemplateSyntaxError) and self.origin.name != UNKNOWN_SOURCE and e.args:
 *                 raw_message = e.args[0]
 *                 e.raw_error_message = raw_message             # <<<<<<<<<<<<<<
 *                 e.args = (f"Template: {self.origin.name}, {raw_message}", *e.args[1:])
 *             raise
*/
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_raw_error_message, __pyx_v_raw_message) < (0)) __PYX_ERR(0, 311, __pyx_L16_error)

          /* "django_templates_cythonized/base.py":312
 *                 raw_message = e.args[0]
 *                 e.raw_error_message = raw_message
 *                 e.args = (f"Template: {self.origin.name}, {raw_message}", *e.args[1:])             # <<<<<<<<<<<<<<
 *             raise
 * 
*/
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->origin, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 312, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 312, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_raw_message, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 312, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Template;
          __pyx_t_14[1] = __pyx_t_4;
          __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u__9;
          __pyx_t_14[3] = __pyx_t_2;
          __pyx_t_15 = __Pyx_PyUnicode_Join(__pyx_t_14, 4, 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
          if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 312, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 312, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_GIVEREF(__pyx_t_15);
          if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_15) != (0)) __PYX_ERR(0, 312, __pyx_L16_error);
          __pyx_t_15 = 0;
          __pyx_t_13 = __pyx_t_2;
          __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 312, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_15 = __Pyx_PyObject_GetSlice(__pyx_t_2, 1, 0, NULL, NULL, &__pyx_mstate_global->__pyx_slice[0], 1, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 312, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__Pyx_PyList_Extend(__pyx_t_13, __pyx_t_15) < (0)) __PYX_ERR(0, 312, __pyx_L16_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          {
            PyObject *__pyx_temp = PyList_AsTuple(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_13);
            __pyx_t_13 = __pyx_temp; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 312, __pyx_L16_error)
            __Pyx_GOTREF(__pyx_t_13);
          }
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_args, __pyx_t_13) < (0)) __PYX_ERR(0, 312, __pyx_L16_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

          /* "django_templates_cythonized/base.py":309
 *             if self.engine.debug:
 *                 e.template_debug = self.get_exception_info(e, e.token)
 *             if isinstance(e, TemplateSyntaxError) and self.origin.name != UNKNOWN_SOURCE and e.args:             # <<<<<<<<<<<<<<
 *                 raw_message = e.args[0]
 *                 e.raw_error_message = raw_message
*/
        }

        /* "django_templates_cythonized/base.py":313
 *                 e.raw_error_message = raw_message
 *                 e.args = (f"Template: {self.origin.name}, {raw_message}", *e.args[1:])
 *             raise             # <<<<<<<<<<<<<<
 * 
 *     def get_exception_info(self, exception, token):
*/
        __Pyx_GIVEREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_3);
        __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_7, __pyx_t_3);
        __pyx_t_1 = 0;  __pyx_t_7 = 0;  __pyx_t_3 = 0; 
        __PYX_ERR(0, 313, __pyx_L16_error)
      }

      /* "django_templates_cythonized/base.py":306
 *                 _flatten_includes(nodelist, self.engine, set())
 *             return nodelist
 *         except Exception as e:             # <<<<<<<<<<<<<<
 *             if self.engine.debug:
 *                 e.template_debug = self.get_exception_info(e, e.token)
*/
      /*finally:*/ {
        __pyx_L16_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23);
          if ( unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_23);
          __pyx_t_12 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_XGIVEREF(__pyx_t_23);
          __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20);
          __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0;
          __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17;
          goto __pyx_L6_except_error;
        }
      }
    }
    goto __pyx_L6_except_error;

    /* "django_templates_cythonized/base.py":300
 *         )
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             nodelist = parser.parse()
 *             self.extra_data = parser.extra_data
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L0;
  }

  /* "django_templates_cythonized/base.py":279
 *             rc.dicts.pop()
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def compile_nodelist(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.compile_nodelist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_lexer);
  __Pyx_XDECREF(__pyx_v_tokens);
  __Pyx_XDECREF(__pyx_v_parser);
  __Pyx_XDECREF(__pyx_v_nodelist);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XDECREF(__pyx_v_raw_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_9compile_nodelist(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_8Template_8compile_nodelist, "\n        Parse and compile the template source into a nodelist. If debug\n        is True and an exception occurs during parsing, the exception is\n        annotated with contextual line information where it occurred in the\n        template source.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8Template_9compile_nodelist = {"compile_nodelist", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Template_9compile_nodelist, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_8Template_8compile_nodelist};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_9compile_nodelist(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("compile_nodelist (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("compile_nodelist", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("compile_nodelist", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_8compile_nodelist(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_8compile_nodelist(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("compile_nodelist", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_8Template_compile_nodelist(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.compile_nodelist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":315
 *             raise
 * 
 *     def get_exception_info(self, exception, token):             # <<<<<<<<<<<<<<
 *         """
 *         Return a dictionary containing contextual line information of where
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_11get_exception_info(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_8Template_10get_exception_info, "\n        Return a dictionary containing contextual line information of where\n        the exception occurred in the template. The following information is\n        provided:\n\n        message\n            The message of the exception raised.\n\n        source_lines\n            The lines before, after, and including the line the exception\n            occurred on.\n\n        line\n            The line number the exception occurred on.\n\n        before, during, after\n            The line the exception occurred on split into three parts:\n            1. The content before the token that raised the error.\n            2. The token that raised the error.\n            3. The content after the token that raised the error.\n\n        total\n            The number of lines in source_lines.\n\n        top\n            The line number where source_lines starts.\n\n        bottom\n            The line number where source_lines ends.\n\n        start\n            The start position of the token in the template source.\n\n        end\n            The end position of the token in the template source.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8Template_11get_exception_info = {"get_exception_info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Template_11get_exception_info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_8Template_10get_exception_info};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_11get_exception_info(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_exception = 0;
  PyObject *__pyx_v_token = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_exception_info (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_exception,&__pyx_mstate_global->__pyx_n_u_token,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 315, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 315, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 315, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_exception_info", 0) < (0)) __PYX_ERR(0, 315, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_exception_info", 1, 2, 2, i); __PYX_ERR(0, 315, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 315, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 315, __pyx_L3_error)
    }
    __pyx_v_exception = values[0];
    __pyx_v_token = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_exception_info", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 315, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.get_exception_info", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_10get_exception_info(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), __pyx_v_exception, __pyx_v_token);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_10get_exception_info(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_exception, PyObject *__pyx_v_token) {
  PyObject *__pyx_v_start = NULL;
  PyObject *__pyx_v_end = NULL;
  long __pyx_v_context_lines;
  PyObject *__pyx_v_line = NULL;
  PyObject *__pyx_v_upto = NULL;
  PyObject *__pyx_v_source_lines = NULL;
  PyObject *__pyx_v_before = NULL;
  PyObject *__pyx_v_during = NULL;
  PyObject *__pyx_v_after = NULL;
  PyObject *__pyx_v_num = NULL;
  PyObject *__pyx_v_next = NULL;
  Py_ssize_t __pyx_v_total;
  PyObject *__pyx_v_top = NULL;
  PyObject *__pyx_v_bottom = NULL;
  PyObject *__pyx_v_message = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  size_t __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_t_9;
  int __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  Py_ssize_t __pyx_t_12;
  Py_ssize_t __pyx_t_13;
  int __pyx_t_14;
  long __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  int __pyx_t_19;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_exception_info", 0);

  /* "django_templates_cythonized/base.py":352
 *             The end position of the token in the template source.
 *         """
 *         start, end = token.position             # <<<<<<<<<<<<<<
 *         context_lines = 10
 *         line = 0
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_position); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 352, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
      __Pyx_INCREF(__pyx_t_3);
    } else {
      __pyx_t_2 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 352, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_3);
    }
    #else
    __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4);
    index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < (0)) __PYX_ERR(0, 352, __pyx_L1_error)
    __pyx_t_5 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 352, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_start = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_end = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "django_templates_cythonized/base.py":353
 *         """
 *         start, end = token.position
 *         context_lines = 10             # <<<<<<<<<<<<<<
 *         line = 0
 *         upto = 0
*/
  __pyx_v_context_lines = 10;

  /* "django_templates_cythonized/base.py":354
 *         start, end = token.position
 *         context_lines = 10
 *         line = 0             # <<<<<<<<<<<<<<
 *         upto = 0
 *         source_lines = []
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
  __pyx_v_line = __pyx_mstate_global->__pyx_int_0;

  /* "django_templates_cythonized/base.py":355
 *         context_lines = 10
 *         line = 0
 *         upto = 0             # <<<<<<<<<<<<<<
 *         source_lines = []
 *         before = during = after = ""
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
  __pyx_v_upto = __pyx_mstate_global->__pyx_int_0;

  /* "django_templates_cythonized/base.py":356
 *         line = 0
 *         upto = 0
 *         source_lines = []             # <<<<<<<<<<<<<<
 *         before = during = after = ""
 *         for num, next in enumerate(linebreak_iter(self.source)):
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_source_lines = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":357
 *         upto = 0
 *         source_lines = []
 *         before = during = after = ""             # <<<<<<<<<<<<<<
 *         for num, next in enumerate(linebreak_iter(self.source)):
 *             if start >= upto and end <= next:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__7);
  __pyx_v_before = __pyx_mstate_global->__pyx_kp_u__7;
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__7);
  __pyx_v_during = __pyx_mstate_global->__pyx_kp_u__7;
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__7);
  __pyx_v_after = __pyx_mstate_global->__pyx_kp_u__7;

  /* "django_templates_cythonized/base.py":358
 *         source_lines = []
 *         before = during = after = ""
 *         for num, next in enumerate(linebreak_iter(self.source)):             # <<<<<<<<<<<<<<
 *             if start >= upto and end <= next:
 *                 line = num
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
  __pyx_t_1 = __pyx_mstate_global->__pyx_int_0;
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_linebreak_iter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_self->source};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4);
    __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 358, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 358, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_7;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 358, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_7));
        #else
        __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_7);
        #endif
        ++__pyx_t_7;
      }
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 358, __pyx_L1_error)
    } else {
      __pyx_t_3 = __pyx_t_8(__pyx_t_4);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 358, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XDECREF_SET(__pyx_v_next, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_num, __pyx_t_1);
    __pyx_t_3 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":359
 *         before = during = after = ""
 *         for num, next in enumerate(linebreak_iter(self.source)):
 *             if start >= upto and end <= next:             # <<<<<<<<<<<<<<
 *                 line = num
 *                 before = self.source[upto:start]
*/
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_start, __pyx_v_upto, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 359, __pyx_L1_error)
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 359, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_10) {
    } else {
      __pyx_t_9 = __pyx_t_10;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_end, __pyx_v_next, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 359, __pyx_L1_error)
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 359, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_9 = __pyx_t_10;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_9) {

      /* "django_templates_cythonized/base.py":360
 *         for num, next in enumerate(linebreak_iter(self.source)):
 *             if start >= upto and end <= next:
 *                 line = num             # <<<<<<<<<<<<<<
 *                 before = self.source[upto:start]
 *                 during = self.source[start:end]
*/
      __Pyx_INCREF(__pyx_v_num);
      __Pyx_DECREF_SET(__pyx_v_line, __pyx_v_num);

      /* "django_templates_cythonized/base.py":361
 *             if start >= upto and end <= next:
 *                 line = num
 *                 before = self.source[upto:start]             # <<<<<<<<<<<<<<
 *                 during = self.source[start:end]
 *                 after = self.source[end:next]
*/
      if (unlikely(__pyx_v_self->source == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 361, __pyx_L1_error)
      }
      __Pyx_INCREF(__pyx_v_upto);
      __pyx_t_3 = __pyx_v_upto;
      __pyx_t_9 = (__pyx_t_3 == Py_None);
      if (__pyx_t_9) {
        __pyx_t_11 = 0;
      } else {
        __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 361, __pyx_L1_error)
        __pyx_t_11 = __pyx_t_12;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_INCREF(__pyx_v_start);
      __pyx_t_3 = __pyx_v_start;
      __pyx_t_9 = (__pyx_t_3 == Py_None);
      if (__pyx_t_9) {
        __pyx_t_12 = PY_SSIZE_T_MAX;
      } else {
        __pyx_t_13 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_13 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 361, __pyx_L1_error)
        __pyx_t_12 = __pyx_t_13;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Substring(__pyx_v_self->source, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 361, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF_SET(__pyx_v_before, ((PyObject*)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":362
 *                 line = num
 *                 before = self.source[upto:start]
 *                 during = self.source[start:end]             # <<<<<<<<<<<<<<
 *                 after = self.source[end:next]
 *             source_lines.append((num, self.source[upto:next]))
*/
      if (unlikely(__pyx_v_self->source == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 362, __pyx_L1_error)
      }
      __Pyx_INCREF(__pyx_v_start);
      __pyx_t_3 = __pyx_v_start;
      __pyx_t_9 = (__pyx_t_3 == Py_None);
      if (__pyx_t_9) {
        __pyx_t_12 = 0;
      } else {
        __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 362, __pyx_L1_error)
        __pyx_t_12 = __pyx_t_11;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_INCREF(__pyx_v_end);
      __pyx_t_3 = __pyx_v_end;
      __pyx_t_9 = (__pyx_t_3 == Py_None);
      if (__pyx_t_9) {
        __pyx_t_11 = PY_SSIZE_T_MAX;
      } else {
        __pyx_t_13 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_13 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 362, __pyx_L1_error)
        __pyx_t_11 = __pyx_t_13;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Substring(__pyx_v_self->source, __pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 362, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF_SET(__pyx_v_during, ((PyObject*)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":363
 *                 before = self.source[upto:start]
 *                 during = self.source[start:end]
 *                 after = self.source[end:next]             # <<<<<<<<<<<<<<
 *             source_lines.append((num, self.source[upto:next]))
 *             upto = next
*/
      if (unlikely(__pyx_v_self->source == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 363, __pyx_L1_error)
      }
      __Pyx_INCREF(__pyx_v_end);
      __pyx_t_3 = __pyx_v_end;
      __pyx_t_9 = (__pyx_t_3 == Py_None);
      if (__pyx_t_9) {
        __pyx_t_11 = 0;
      } else {
        __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 363, __pyx_L1_error)
        __pyx_t_11 = __pyx_t_12;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_INCREF(__pyx_v_next);
      __pyx_t_3 = __pyx_v_next;
      __pyx_t_9 = (__pyx_t_3 == Py_None);
      if (__pyx_t_9) {
        __pyx_t_12 = PY_SSIZE_T_MAX;
      } else {
        __pyx_t_13 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_13 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 363, __pyx_L1_error)
        __pyx_t_12 = __pyx_t_13;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyUnicode_Substring(__pyx_v_self->source, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 363, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF_SET(__pyx_v_after, ((PyObject*)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":359
 *         before = during = after = ""
 *         for num, next in enumerate(linebreak_iter(self.source)):
 *             if start >= upto and end <= next:             # <<<<<<<<<<<<<<
 *                 line = num
 *                 before = self.source[upto:start]
*/
    }

    /* "django_templates_cythonized/base.py":364
 *                 during = self.source[start:end]
 *                 after = self.source[end:next]
 *             source_lines.append((num, self.source[upto:next]))             # <<<<<<<<<<<<<<
 *             upto = next
 *         total = len(source_lines)
*/
    if (unlikely(__pyx_v_self->source == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 364, __pyx_L1_error)
    }
    __Pyx_INCREF(__pyx_v_upto);
    __pyx_t_3 = __pyx_v_upto;
    __pyx_t_9 = (__pyx_t_3 == Py_None);
    if (__pyx_t_9) {
      __pyx_t_12 = 0;
    } else {
      __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 364, __pyx_L1_error)
      __pyx_t_12 = __pyx_t_11;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_INCREF(__pyx_v_next);
    __pyx_t_3 = __pyx_v_next;
    __pyx_t_9 = (__pyx_t_3 == Py_None);
    if (__pyx_t_9) {
      __pyx_t_11 = PY_SSIZE_T_MAX;
    } else {
      __pyx_t_13 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_13 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 364, __pyx_L1_error)
      __pyx_t_11 = __pyx_t_13;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Substring(__pyx_v_self->source, __pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 364, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 364, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_num);
    __Pyx_GIVEREF(__pyx_v_num);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_num) != (0)) __PYX_ERR(0, 364, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(0, 364, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_source_lines, __pyx_t_2); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 364, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":365
 *                 after = self.source[end:next]
 *             source_lines.append((num, self.source[upto:next]))
 *             upto = next             # <<<<<<<<<<<<<<
 *         total = len(source_lines)
 * 
*/
    __Pyx_INCREF(__pyx_v_next);
    __Pyx_DECREF_SET(__pyx_v_upto, __pyx_v_next);

    /* "django_templates_cythonized/base.py":358
 *         source_lines = []
 *         before = during = after = ""
 *         for num, next in enumerate(linebreak_iter(self.source)):             # <<<<<<<<<<<<<<
 *             if start >= upto and end <= next:
 *                 line = num
*/
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":366
 *             source_lines.append((num, self.source[upto:next]))
 *             upto = next
 *         total = len(source_lines)             # <<<<<<<<<<<<<<
 * 
 *         top = max(1, line - context_lines)
*/
  __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_source_lines); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 366, __pyx_L1_error)
  __pyx_v_total = __pyx_t_7;

  /* "django_templates_cythonized/base.py":368
 *         total = len(source_lines)
 * 
 *         top = max(1, line - context_lines)             # <<<<<<<<<<<<<<
 *         bottom = min(total, line + 1 + context_lines)
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_From_long(__pyx_v_context_lines); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyNumber_Subtract(__pyx_v_line, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_15 = 1;
  __pyx_t_2 = __Pyx_PyLong_From_long(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 368, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_9) {
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_1 = __pyx_t_4;
  } else {
    __pyx_t_3 = __Pyx_PyLong_From_long(__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_t_1;
  __Pyx_INCREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_top = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "django_templates_cythonized/base.py":369
 * 
 *         top = max(1, line - context_lines)
 *         bottom = min(total, line + 1 + context_lines)             # <<<<<<<<<<<<<<
 * 
 *         # In some rare cases exc_value.args can be empty or an invalid
*/
  __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_v_line, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyLong_From_long(__pyx_v_context_lines); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Add(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_v_total;
  __pyx_t_4 = PyLong_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_9) {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
  } else {
    __pyx_t_2 = PyLong_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_t_1;
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_bottom = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "django_templates_cythonized/base.py":373
 *         # In some rare cases exc_value.args can be empty or an invalid
 *         # string.
 *         try:             # <<<<<<<<<<<<<<
 *             message = str(exception.args[0])
 *         except (IndexError, UnicodeDecodeError):
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
    __Pyx_XGOTREF(__pyx_t_16);
    __Pyx_XGOTREF(__pyx_t_17);
    __Pyx_XGOTREF(__pyx_t_18);
    /*try:*/ {

      /* "django_templates_cythonized/base.py":374
 *         # string.
 *         try:
 *             message = str(exception.args[0])             # <<<<<<<<<<<<<<
 *         except (IndexError, UnicodeDecodeError):
 *             message = "(Could not get exception message)"
*/
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 374, __pyx_L11_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L11_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 374, __pyx_L11_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_message = ((PyObject*)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":373
 *         # In some rare cases exc_value.args can be empty or an invalid
 *         # string.
 *         try:             # <<<<<<<<<<<<<<
 *             message = str(exception.args[0])
 *         except (IndexError, UnicodeDecodeError):
*/
    }
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
    goto __pyx_L16_try_end;
    __pyx_L11_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "django_templates_cythonized/base.py":375
 *         try:
 *             message = str(exception.args[0])
 *         except (IndexError, UnicodeDecodeError):             # <<<<<<<<<<<<<<
 *             message = "(Could not get exception message)"
 * 
*/
    __pyx_t_19 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_IndexError))), ((PyObject *)(((PyTypeObject*)PyExc_UnicodeDecodeError))));
    if (__pyx_t_19) {
      __Pyx_ErrRestore(0,0,0);

      /* "django_templates_cythonized/base.py":376
 *             message = str(exception.args[0])
 *         except (IndexError, UnicodeDecodeError):
 *             message = "(Could not get exception message)"             # <<<<<<<<<<<<<<
 * 
 *         return {
*/
      __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Could_not_get_exception_message);
      __Pyx_XDECREF_SET(__pyx_v_message, __pyx_mstate_global->__pyx_kp_u_Could_not_get_exception_message);
      goto __pyx_L12_exception_handled;
    }
    goto __pyx_L13_except_error;

    /* "django_templates_cythonized/base.py":373
 *         # In some rare cases exc_value.args can be empty or an invalid
 *         # string.
 *         try:             # <<<<<<<<<<<<<<
 *             message = str(exception.args[0])
 *         except (IndexError, UnicodeDecodeError):
*/
    __pyx_L13_except_error:;
    __Pyx_XGIVEREF(__pyx_t_16);
    __Pyx_XGIVEREF(__pyx_t_17);
    __Pyx_XGIVEREF(__pyx_t_18);
    __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
    goto __pyx_L1_error;
    __pyx_L12_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_16);
    __Pyx_XGIVEREF(__pyx_t_17);
    __Pyx_XGIVEREF(__pyx_t_18);
    __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
    __pyx_L16_try_end:;
  }

  /* "django_templates_cythonized/base.py":378
 *             message = "(Could not get exception message)"
 * 
 *         return {             # <<<<<<<<<<<<<<
 *             "message": message,
 *             "source_lines": source_lines[top:bottom],
*/
  __Pyx_XDECREF(__pyx_r);

  /* "django_templates_cythonized/base.py":379
 * 
 *         return {
 *             "message": message,             # <<<<<<<<<<<<<<
 *             "source_lines": source_lines[top:bottom],
 *             "before": before,
*/
  __pyx_t_3 = __Pyx_PyDict_NewPresized(12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_message, __pyx_v_message) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":380
 *         return {
 *             "message": message,
 *             "source_lines": source_lines[top:bottom],             # <<<<<<<<<<<<<<
 *             "before": before,
 *             "during": during,
*/
  __Pyx_INCREF(__pyx_v_top);
  __pyx_t_1 = __pyx_v_top;
  __pyx_t_9 = (__pyx_t_1 == Py_None);
  if (__pyx_t_9) {
    __pyx_t_7 = 0;
  } else {
    __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 380, __pyx_L1_error)
    __pyx_t_7 = __pyx_t_11;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_INCREF(__pyx_v_bottom);
  __pyx_t_1 = __pyx_v_bottom;
  __pyx_t_9 = (__pyx_t_1 == Py_None);
  if (__pyx_t_9) {
    __pyx_t_11 = PY_SSIZE_T_MAX;
  } else {
    __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 380, __pyx_L1_error)
    __pyx_t_11 = __pyx_t_12;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_source_lines, __pyx_t_7, __pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_source_lines, __pyx_t_1) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":381
 *             "message": message,
 *             "source_lines": source_lines[top:bottom],
 *             "before": before,             # <<<<<<<<<<<<<<
 *             "during": during,
 *             "after": after,
*/
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_before, __pyx_v_before) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":382
 *             "source_lines": source_lines[top:bottom],
 *             "before": before,
 *             "during": during,             # <<<<<<<<<<<<<<
 *             "after": after,
 *             "top": top,
*/
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_during, __pyx_v_during) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":383
 *             "before": before,
 *             "during": during,
 *             "after": after,             # <<<<<<<<<<<<<<
 *             "top": top,
 *             "bottom": bottom,
*/
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_after, __pyx_v_after) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":384
 *             "during": during,
 *             "after": after,
 *             "top": top,             # <<<<<<<<<<<<<<
 *             "bottom": bottom,
 *             "total": total,
*/
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_top, __pyx_v_top) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":385
 *             "after": after,
 *             "top": top,
 *             "bottom": bottom,             # <<<<<<<<<<<<<<
 *             "total": total,
 *             "line": line,
*/
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_bottom, __pyx_v_bottom) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":386
 *             "top": top,
 *             "bottom": bottom,
 *             "total": total,             # <<<<<<<<<<<<<<
 *             "line": line,
 *             "name": self.origin.name,
*/
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_v_total); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_total, __pyx_t_1) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":387
 *             "bottom": bottom,
 *             "total": total,
 *             "line": line,             # <<<<<<<<<<<<<<
 *             "name": self.origin.name,
 *             "start": start,
*/
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_line, __pyx_v_line) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":388
 *             "total": total,
 *             "line": line,
 *             "name": self.origin.name,             # <<<<<<<<<<<<<<
 *             "start": start,
 *             "end": end,
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->origin, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_1) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":389
 *             "line": line,
 *             "name": self.origin.name,
 *             "start": start,             # <<<<<<<<<<<<<<
 *             "end": end,
 *         }
*/
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_start, __pyx_v_start) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":390
 *             "name": self.origin.name,
 *             "start": start,
 *             "end": end,             # <<<<<<<<<<<<<<
 *         }
 * 
*/
  if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_end, __pyx_v_end) < (0)) __PYX_ERR(0, 379, __pyx_L1_error)
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":315
 *             raise
 * 
 *     def get_exception_info(self, exception, token):             # <<<<<<<<<<<<<<
 *         """
 *         Return a dictionary containing contextual line information of where
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.get_exception_info", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_start);
  __Pyx_XDECREF(__pyx_v_end);
  __Pyx_XDECREF(__pyx_v_line);
  __Pyx_XDECREF(__pyx_v_upto);
  __Pyx_XDECREF(__pyx_v_source_lines);
  __Pyx_XDECREF(__pyx_v_before);
  __Pyx_XDECREF(__pyx_v_during);
  __Pyx_XDECREF(__pyx_v_after);
  __Pyx_XDECREF(__pyx_v_num);
  __Pyx_XDECREF(__pyx_v_next);
  __Pyx_XDECREF(__pyx_v_top);
  __Pyx_XDECREF(__pyx_v_bottom);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":34
 * 
 * cdef class Template:
 *     cdef public object name             # <<<<<<<<<<<<<<
 *     cdef public object origin
 *     cdef public object engine
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_4name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_4name___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_4name___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_4name_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_4name_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->name);
  __Pyx_DECREF(__pyx_v_self->name);
  __pyx_v_self->name = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_4name_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_4name_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_4name_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_4name_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->name);
  __Pyx_DECREF(__pyx_v_self->name);
  __pyx_v_self->name = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":35
 * cdef class Template:
 *     cdef public object name
 *     cdef public object origin             # <<<<<<<<<<<<<<
 *     cdef public object engine
 *     cdef public str source
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_6origin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_6origin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6origin___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_6origin___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->origin);
  __pyx_r = __pyx_v_self->origin;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6origin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6origin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6origin_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_6origin_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->origin);
  __Pyx_DECREF(__pyx_v_self->origin);
  __pyx_v_self->origin = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6origin_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6origin_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6origin_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_6origin_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->origin);
  __Pyx_DECREF(__pyx_v_self->origin);
  __pyx_v_self->origin = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":36
 *     cdef public object name
 *     cdef public object origin
 *     cdef public object engine             # <<<<<<<<<<<<<<
 *     cdef public str source
 *     cdef public NodeList nodelist
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_6engine_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_6engine_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6engine___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_6engine___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->engine);
  __pyx_r = __pyx_v_self->engine;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6engine_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6engine_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6engine_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_6engine_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->engine);
  __Pyx_DECREF(__pyx_v_self->engine);
  __pyx_v_self->engine = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6engine_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6engine_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6engine_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_6engine_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->engine);
  __Pyx_DECREF(__pyx_v_self->engine);
  __pyx_v_self->engine = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":37
 *     cdef public object origin
 *     cdef public object engine
 *     cdef public str source             # <<<<<<<<<<<<<<
 *     cdef public NodeList nodelist
 *     cdef public dict extra_data
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_6source_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_6source_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6source___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_6source___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->source);
  __pyx_r = __pyx_v_self->source;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6source_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6source_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6source_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_6source_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(1, 37, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->source);
  __Pyx_DECREF(__pyx_v_self->source);
  __pyx_v_self->source = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.source.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6source_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_6source_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_6source_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_6source_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->source);
  __Pyx_DECREF(__pyx_v_self->source);
  __pyx_v_self->source = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":38
 *     cdef public object engine
 *     cdef public str source
 *     cdef public NodeList nodelist             # <<<<<<<<<<<<<<
 *     cdef public dict extra_data
 *     cpdef _render(self, Context context)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_8nodelist_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_8nodelist_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_8nodelist___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_8nodelist___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->nodelist);
  __pyx_r = ((PyObject *)__pyx_v_self->nodelist);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_8nodelist_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_8nodelist_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_8nodelist_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_8nodelist_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList))))) __PYX_ERR(1, 38, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->nodelist);
  __Pyx_DECREF((PyObject *)__pyx_v_self->nodelist);
  __pyx_v_self->nodelist = ((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.nodelist.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_8nodelist_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_8nodelist_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_8nodelist_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_8nodelist_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->nodelist);
  __Pyx_DECREF((PyObject *)__pyx_v_self->nodelist);
  __pyx_v_self->nodelist = ((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":39
 *     cdef public str source
 *     cdef public NodeList nodelist
 *     cdef public dict extra_data             # <<<<<<<<<<<<<<
 *     cpdef _render(self, Context context)
 *     cpdef render(self, object context)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_10extra_data_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_10extra_data_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_10extra_data___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_10extra_data___get__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->extra_data);
  __pyx_r = __pyx_v_self->extra_data;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_10extra_data_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_10extra_data_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_10extra_data_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_10extra_data_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(1, 39, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->extra_data);
  __Pyx_DECREF(__pyx_v_self->extra_data);
  __pyx_v_self->extra_data = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.extra_data.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Template_10extra_data_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Template_10extra_data_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_10extra_data_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Template_10extra_data_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->extra_data);
  __Pyx_DECREF(__pyx_v_self->extra_data);
  __pyx_v_self->extra_data = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8Template_13__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Template_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_12__reduce_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_12__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.engine, self.extra_data, self.name, self.nodelist, self.origin, self.source)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = PyTuple_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->engine);
  __Pyx_GIVEREF(__pyx_v_self->engine);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->engine) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->extra_data);
  __Pyx_GIVEREF(__pyx_v_self->extra_data);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->extra_data) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->name);
  __Pyx_GIVEREF(__pyx_v_self->name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_self->name) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->nodelist);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->nodelist);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->nodelist)) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->origin);
  __Pyx_GIVEREF(__pyx_v_self->origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_self->origin) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->source);
  __Pyx_GIVEREF(__pyx_v_self->source);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_v_self->source) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __pyx_v_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.engine, self.extra_data, self.name, self.nodelist, self.origin, self.source)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = (self.engine, self.extra_data, self.name, self.nodelist, self.origin, self.source)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.engine is not None or self.extra_data is not None or self.name is not None or self.nodelist is not None or self.origin is not None or self.source is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.engine, self.extra_data, self.name, self.nodelist, self.origin, self.source)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.engine is not None or self.extra_data is not None or self.name is not None or self.nodelist is not None or self.origin is not None or self.source is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, None), state
*/
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->engine != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->extra_data != ((PyObject*)Py_None));
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->name != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->nodelist) != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->origin != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->source != ((PyObject*)Py_None));
    __pyx_t_2 = __pyx_t_3;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_2;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.engine is not None or self.extra_data is not None or self.name is not None or self.nodelist is not None or self.origin is not None or self.source is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.engine is not None or self.extra_data is not None or self.name is not None or self.nodelist is not None or self.origin is not None or self.source is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Template); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_218595859);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_218595859);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_218595859) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.engine is not None or self.extra_data is not None or self.name is not None or self.nodelist is not None or self.origin is not None or self.source is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, None), state
 *     else:
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Template__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Template); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_218595859);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_218595859);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_218595859) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Template__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8Template_15__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Template_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Template_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Template_14__setstate_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Template_14__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Template__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Template__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Template__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.Template.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":408
 *     _source_end = cython.declare(object, visibility="public")
 * 
 *     def __init__(self, nodelist, origin, name, source_start=None, source_end=None):             # <<<<<<<<<<<<<<
 *         self.nodelist = nodelist
 *         self.origin = origin
*/

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_nodelist = 0;
  PyObject *__pyx_v_origin = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_source_start = 0;
  PyObject *__pyx_v_source_end = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nodelist,&__pyx_mstate_global->__pyx_n_u_origin,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_source_start,&__pyx_mstate_global->__pyx_n_u_source_end,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 408, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 408, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 408, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 408, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 408, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 408, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 408, __pyx_L3_error)
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, i); __PYX_ERR(0, 408, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 408, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 408, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 408, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 408, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 408, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_nodelist = values[0];
    __pyx_v_origin = values[1];
    __pyx_v_name = values[2];
    __pyx_v_source_start = values[3];
    __pyx_v_source_end = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, __pyx_nargs); __PYX_ERR(0, 408, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate___init__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), __pyx_v_nodelist, __pyx_v_origin, __pyx_v_name, __pyx_v_source_start, __pyx_v_source_end);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate___init__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_nodelist, PyObject *__pyx_v_origin, PyObject *__pyx_v_name, PyObject *__pyx_v_source_start, PyObject *__pyx_v_source_end) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":409
 * 
 *     def __init__(self, nodelist, origin, name, source_start=None, source_end=None):
 *         self.nodelist = nodelist             # <<<<<<<<<<<<<<
 *         self.origin = origin
 *         self.name = name
*/
  __Pyx_INCREF(__pyx_v_nodelist);
  __Pyx_GIVEREF(__pyx_v_nodelist);
  __Pyx_GOTREF(__pyx_v_self->nodelist);
  __Pyx_DECREF(__pyx_v_self->nodelist);
  __pyx_v_self->nodelist = __pyx_v_nodelist;

  /* "django_templates_cythonized/base.py":410
 *     def __init__(self, nodelist, origin, name, source_start=None, source_end=None):
 *         self.nodelist = nodelist
 *         self.origin = origin             # <<<<<<<<<<<<<<
 *         self.name = name
 *         # If available (debug mode), the absolute character offsets in the
*/
  __Pyx_INCREF(__pyx_v_origin);
  __Pyx_GIVEREF(__pyx_v_origin);
  __Pyx_GOTREF(__pyx_v_self->origin);
  __Pyx_DECREF(__pyx_v_self->origin);
  __pyx_v_self->origin = __pyx_v_origin;

  /* "django_templates_cythonized/base.py":411
 *         self.nodelist = nodelist
 *         self.origin = origin
 *         self.name = name             # <<<<<<<<<<<<<<
 *         # If available (debug mode), the absolute character offsets in the
 *         # template.source correspond to the full partial region.
*/
  __Pyx_INCREF(__pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __Pyx_GOTREF(__pyx_v_self->name);
  __Pyx_DECREF(__pyx_v_self->name);
  __pyx_v_self->name = __pyx_v_name;

  /* "django_templates_cythonized/base.py":414
 *         # If available (debug mode), the absolute character offsets in the
 *         # template.source correspond to the full partial region.
 *         self._source_start = source_start             # <<<<<<<<<<<<<<
 *         self._source_end = source_end
 * 
*/
  __Pyx_INCREF(__pyx_v_source_start);
  __Pyx_GIVEREF(__pyx_v_source_start);
  __Pyx_GOTREF(__pyx_v_self->_source_start);
  __Pyx_DECREF(__pyx_v_self->_source_start);
  __pyx_v_self->_source_start = __pyx_v_source_start;

  /* "django_templates_cythonized/base.py":415
 *         # template.source correspond to the full partial region.
 *         self._source_start = source_start
 *         self._source_end = source_end             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __Pyx_INCREF(__pyx_v_source_end);
  __Pyx_GIVEREF(__pyx_v_source_end);
  __Pyx_GOTREF(__pyx_v_self->_source_end);
  __Pyx_DECREF(__pyx_v_self->_source_end);
  __pyx_v_self->_source_end = __pyx_v_source_end;

  /* "django_templates_cythonized/base.py":408
 *     _source_end = cython.declare(object, visibility="public")
 * 
 *     def __init__(self, nodelist, origin, name, source_start=None, source_end=None):             # <<<<<<<<<<<<<<
 *         self.nodelist = nodelist
 *         self.origin = origin
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":417
 *         self._source_end = source_end
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def get_exception_info(self, exception, token):
 *         template = self.origin.loader.get_template(self.origin.template_name)
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_3get_exception_info(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_15PartialTemplate_get_exception_info(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_exception, PyObject *__pyx_v_token, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_template = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_exception_info", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_get_exception_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 417, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_3get_exception_info)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_exception, __pyx_v_token};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 417, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":419
 *     @cython.ccall
 *     def get_exception_info(self, exception, token):
 *         template = self.origin.loader.get_template(self.origin.template_name)             # <<<<<<<<<<<<<<
 *         return template.get_exception_info(exception, token)
 * 
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->origin, __pyx_mstate_global->__pyx_n_u_loader); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_t_4;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->origin, __pyx_mstate_global->__pyx_n_u_template_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_template, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_template = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":420
 *     def get_exception_info(self, exception, token):
 *         template = self.origin.loader.get_template(self.origin.template_name)
 *         return template.get_exception_info(exception, token)             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __pyx_v_template;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_exception, __pyx_v_token};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_exception_info, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":417
 *         self._source_end = source_end
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def get_exception_info(self, exception, token):
 *         template = self.origin.loader.get_template(self.origin.template_name)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.get_exception_info", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_template);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_3get_exception_info(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_3get_exception_info = {"get_exception_info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_3get_exception_info, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_3get_exception_info(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_exception = 0;
  PyObject *__pyx_v_token = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_exception_info (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_exception,&__pyx_mstate_global->__pyx_n_u_token,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 417, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 417, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 417, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_exception_info", 0) < (0)) __PYX_ERR(0, 417, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_exception_info", 1, 2, 2, i); __PYX_ERR(0, 417, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 417, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 417, __pyx_L3_error)
    }
    __pyx_v_exception = values[0];
    __pyx_v_token = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_exception_info", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 417, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.get_exception_info", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_2get_exception_info(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), __pyx_v_exception, __pyx_v_token);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_2get_exception_info(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_exception, PyObject *__pyx_v_token) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_exception_info", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_15PartialTemplate_get_exception_info(__pyx_v_self, __pyx_v_exception, __pyx_v_token, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.get_exception_info", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":422
 *         return template.get_exception_info(exception, token)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def find_partial_source(self, full_source):
 *         if (
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_5find_partial_source(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_15PartialTemplate_find_partial_source(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_full_source, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("find_partial_source", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_find_partial_source); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 422, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_5find_partial_source)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_full_source};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 422, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":425
 *     def find_partial_source(self, full_source):
 *         if (
 *             self._source_start is not None             # <<<<<<<<<<<<<<
 *             and self._source_end is not None
 *             and 0 <= self._source_start <= self._source_end <= len(full_source)
*/
  __pyx_t_7 = (__pyx_v_self->_source_start != Py_None);
  if (__pyx_t_7) {
  } else {
    __pyx_t_6 = __pyx_t_7;
    goto __pyx_L4_bool_binop_done;
  }

  /* "django_templates_cythonized/base.py":426
 *         if (
 *             self._source_start is not None
 *             and self._source_end is not None             # <<<<<<<<<<<<<<
 *             and 0 <= self._source_start <= self._source_end <= len(full_source)
 *         ):
*/
  __pyx_t_7 = (__pyx_v_self->_source_end != Py_None);
  if (__pyx_t_7) {
  } else {
    __pyx_t_6 = __pyx_t_7;
    goto __pyx_L4_bool_binop_done;
  }

  /* "django_templates_cythonized/base.py":427
 *             self._source_start is not None
 *             and self._source_end is not None
 *             and 0 <= self._source_start <= self._source_end <= len(full_source)             # <<<<<<<<<<<<<<
 *         ):
 *             return full_source[self._source_start : self._source_end]
*/
  __pyx_t_1 = PyObject_RichCompare(__pyx_mstate_global->__pyx_int_0, __pyx_v_self->_source_start, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
  if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->_source_start, __pyx_v_self->_source_end, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_8 = PyObject_Length(__pyx_v_full_source); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 427, __pyx_L1_error)
      __pyx_t_2 = PyLong_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->_source_end, __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
  }
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 427, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;

  /* "django_templates_cythonized/base.py":424
 *     @cython.ccall
 *     def find_partial_source(self, full_source):
 *         if (             # <<<<<<<<<<<<<<
 *             self._source_start is not None
 *             and self._source_end is not None
*/
  if (__pyx_t_6) {

    /* "django_templates_cythonized/base.py":429
 *             and 0 <= self._source_start <= self._source_end <= len(full_source)
 *         ):
 *             return full_source[self._source_start : self._source_end]             # <<<<<<<<<<<<<<
 * 
 *         return ""
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_full_source, 0, 0, &__pyx_v_self->_source_start, &__pyx_v_self->_source_end, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":424
 *     @cython.ccall
 *     def find_partial_source(self, full_source):
 *         if (             # <<<<<<<<<<<<<<
 *             self._source_start is not None
 *             and self._source_end is not None
*/
  }

  /* "django_templates_cythonized/base.py":431
 *             return full_source[self._source_start : self._source_end]
 * 
 *         return ""             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__7);
  __pyx_r = __pyx_mstate_global->__pyx_kp_u__7;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":422
 *         return template.get_exception_info(exception, token)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def find_partial_source(self, full_source):
 *         if (
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.find_partial_source", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_5find_partial_source(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_5find_partial_source = {"find_partial_source", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_5find_partial_source, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_5find_partial_source(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_full_source = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_partial_source (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_full_source,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 422, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 422, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "find_partial_source", 0) < (0)) __PYX_ERR(0, 422, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("find_partial_source", 1, 1, 1, i); __PYX_ERR(0, 422, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 422, __pyx_L3_error)
    }
    __pyx_v_full_source = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_partial_source", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 422, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.find_partial_source", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4find_partial_source(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), __pyx_v_full_source);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4find_partial_source(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_full_source) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("find_partial_source", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_15PartialTemplate_find_partial_source(__pyx_v_self, __pyx_v_full_source, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.find_partial_source", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":433
 *         return ""
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def source(self):
 *         template = self.origin.loader.get_template(self.origin.template_name)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6source_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6source_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6source___get__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6source___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  PyObject *__pyx_v_template = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "django_templates_cythonized/base.py":435
 *     @property
 *     def source(self):
 *         template = self.origin.loader.get_template(self.origin.template_name)             # <<<<<<<<<<<<<<
 *         if not template.engine.debug:
 *             warnings.warn(
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->origin, __pyx_mstate_global->__pyx_n_u_loader); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->origin, __pyx_mstate_global->__pyx_n_u_template_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_template, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_template = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":436
 *     def source(self):
 *         template = self.origin.loader.get_template(self.origin.template_name)
 *         if not template.engine.debug:             # <<<<<<<<<<<<<<
 *             warnings.warn(
 *                 "PartialTemplate.source is only available when template debugging is enabled.",
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_template, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 436, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = (!__pyx_t_6);
  if (__pyx_t_7) {

    /* "django_templates_cythonized/base.py":437
 *         template = self.origin.loader.get_template(self.origin.template_name)
 *         if not template.engine.debug:
 *             warnings.warn(             # <<<<<<<<<<<<<<
 *                 "PartialTemplate.source is only available when template debugging is enabled.",
 *                 RuntimeWarning,
*/
    __pyx_t_1 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "django_templates_cythonized/base.py":440
 *                 "PartialTemplate.source is only available when template debugging is enabled.",
 *                 RuntimeWarning,
 *                 skip_file_prefixes=django_file_prefixes(),             # <<<<<<<<<<<<<<
 *             )
 *         return self.find_partial_source(template.source)
*/
    __pyx_t_8 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_django_file_prefixes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
      assert(__pyx_t_8);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 440, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_1);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_PartialTemplate_source_is_only_a, ((PyObject *)(((PyTypeObject*)PyExc_RuntimeWarning)))};
      __pyx_t_9 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_skip_file_prefixes, __pyx_t_4, __pyx_t_9, __pyx_callargs+3, 0) < (0)) __PYX_ERR(0, 437, __pyx_L1_error)
      __pyx_t_3 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_9);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":436
 *     def source(self):
 *         template = self.origin.loader.get_template(self.origin.template_name)
 *         if not template.engine.debug:             # <<<<<<<<<<<<<<
 *             warnings.warn(
 *                 "PartialTemplate.source is only available when template debugging is enabled.",
*/
  }

  /* "django_templates_cythonized/base.py":442
 *                 skip_file_prefixes=django_file_prefixes(),
 *             )
 *         return self.find_partial_source(template.source)             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_template, __pyx_mstate_global->__pyx_n_u_source); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self->__pyx_vtab)->find_partial_source(__pyx_v_self, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":433
 *         return ""
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def source(self):
 *         template = self.origin.loader.get_template(self.origin.template_name)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.source.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_template);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":444
 *         return self.find_partial_source(template.source)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def _render(self, context: Context):
 *         return self.nodelist.render(context)
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_7_render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_15PartialTemplate__render(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_render", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_7_render)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":446
 *     @cython.ccall
 *     def _render(self, context: Context):
 *         return self.nodelist.render(context)             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_v_self->nodelist;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_context)};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_render_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":444
 *         return self.find_partial_source(template.source)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def _render(self, context: Context):
 *         return self.nodelist.render(context)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate._render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_7_render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_7_render = {"_render", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_7_render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_7_render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 444, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 444, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_render", 0) < (0)) __PYX_ERR(0, 444, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_render", 1, 1, 1, i); __PYX_ERR(0, 444, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 444, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_render", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 444, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate._render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 445, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6_render(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6_render(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_render", 0);
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(((PyObject *)__pyx_v_context) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(0, 444, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_15PartialTemplate__render(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate._render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":448
 *         return self.nodelist.render(context)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         # Inline push_state + bind_template (same as Template.render).
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_9render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_15PartialTemplate_render(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch) {
  struct __pyx_obj_27django_templates_cythonized_7context_RenderContext *__pyx_v_rc = NULL;
  PyObject *__pyx_v__rc_initial = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_t_15;
  char const *__pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  char const *__pyx_t_18;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 448, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_9render)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 448, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":451
 *     def render(self, context: Context):
 *         # Inline push_state + bind_template (same as Template.render).
 *         rc = context.render_context             # <<<<<<<<<<<<<<
 *         _rc_initial = rc.template
 *         rc.template = self
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_context->render_context);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_rc = ((struct __pyx_obj_27django_templates_cythonized_7context_RenderContext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":452
 *         # Inline push_state + bind_template (same as Template.render).
 *         rc = context.render_context
 *         _rc_initial = rc.template             # <<<<<<<<<<<<<<
 *         rc.template = self
 *         rc.dicts.append({})
*/
  __pyx_t_1 = __pyx_v_rc->__pyx_template;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v__rc_initial = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":453
 *         rc = context.render_context
 *         _rc_initial = rc.template
 *         rc.template = self             # <<<<<<<<<<<<<<
 *         rc.dicts.append({})
 *         try:
*/
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  __Pyx_GOTREF(__pyx_v_rc->__pyx_template);
  __Pyx_DECREF(__pyx_v_rc->__pyx_template);
  __pyx_v_rc->__pyx_template = ((PyObject *)__pyx_v_self);

  /* "django_templates_cythonized/base.py":454
 *         _rc_initial = rc.template
 *         rc.template = self
 *         rc.dicts.append({})             # <<<<<<<<<<<<<<
 *         try:
 *             if context.template is None:
*/
  if (unlikely(__pyx_v_rc->__pyx_base.dicts == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(0, 454, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_rc->__pyx_base.dicts, __pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":455
 *         rc.template = self
 *         rc.dicts.append({})
 *         try:             # <<<<<<<<<<<<<<
 *             if context.template is None:
 *                 context.template_name = self.name
*/
  /*try:*/ {

    /* "django_templates_cythonized/base.py":456
 *         rc.dicts.append({})
 *         try:
 *             if context.template is None:             # <<<<<<<<<<<<<<
 *                 context.template_name = self.name
 *                 if hasattr(context, "_processors_index"):
*/
    __pyx_t_7 = (__pyx_v_context->__pyx_template == Py_None);
    if (__pyx_t_7) {

      /* "django_templates_cythonized/base.py":457
 *         try:
 *             if context.template is None:
 *                 context.template_name = self.name             # <<<<<<<<<<<<<<
 *                 if hasattr(context, "_processors_index"):
 *                     with context.bind_template(self):
*/
      __pyx_t_1 = __pyx_v_self->name;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_v_context->template_name);
      __Pyx_DECREF(__pyx_v_context->template_name);
      __pyx_v_context->template_name = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":458
 *             if context.template is None:
 *                 context.template_name = self.name
 *                 if hasattr(context, "_processors_index"):             # <<<<<<<<<<<<<<
 *                     with context.bind_template(self):
 *                         return self._render(context)
*/
      __pyx_t_7 = __Pyx_HasAttr(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_n_u_processors_index); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 458, __pyx_L4_error)
      if (__pyx_t_7) {

        /* "django_templates_cythonized/base.py":459
 *                 context.template_name = self.name
 *                 if hasattr(context, "_processors_index"):
 *                     with context.bind_template(self):             # <<<<<<<<<<<<<<
 *                         return self._render(context)
 *                 else:
*/
        /*with:*/ {
          __pyx_t_2 = ((PyObject *)__pyx_v_context);
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_5 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_self)};
            __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_bind_template, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 459, __pyx_L4_error)
            __Pyx_GOTREF(__pyx_t_1);
          }
          __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 459, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_4 = NULL;
          __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_5 = 1;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
            assert(__pyx_t_4);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
            __pyx_t_5 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
            __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 459, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_2);
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          /*try:*/ {
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
              __Pyx_XGOTREF(__pyx_t_9);
              __Pyx_XGOTREF(__pyx_t_10);
              __Pyx_XGOTREF(__pyx_t_11);
              /*try:*/ {

                /* "django_templates_cythonized/base.py":460
 *                 if hasattr(context, "_processors_index"):
 *                     with context.bind_template(self):
 *                         return self._render(context)             # <<<<<<<<<<<<<<
 *                 else:
 *                     context.template = self
*/
                __Pyx_XDECREF(__pyx_r);
                __pyx_t_1 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self->__pyx_vtab)->_render(__pyx_v_self, __pyx_v_context, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 460, __pyx_L12_error)
                __Pyx_GOTREF(__pyx_t_1);
                __pyx_r = __pyx_t_1;
                __pyx_t_1 = 0;
                goto __pyx_L16_try_return;

                /* "django_templates_cythonized/base.py":459
 *                 context.template_name = self.name
 *                 if hasattr(context, "_processors_index"):
 *                     with context.bind_template(self):             # <<<<<<<<<<<<<<
 *                         return self._render(context)
 *                 else:
*/
              }
              __pyx_L12_error:;
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              /*except:*/ {
                __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(0, 459, __pyx_L14_except_error)
                __Pyx_XGOTREF(__pyx_t_1);
                __Pyx_XGOTREF(__pyx_t_2);
                __Pyx_XGOTREF(__pyx_t_3);
                __pyx_t_4 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 459, __pyx_L14_except_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, NULL);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 459, __pyx_L14_except_error)
                __Pyx_GOTREF(__pyx_t_12);
                __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_12);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                if (__pyx_t_7 < (0)) __PYX_ERR(0, 459, __pyx_L14_except_error)
                __pyx_t_13 = (!__pyx_t_7);
                if (unlikely(__pyx_t_13)) {
                  __Pyx_GIVEREF(__pyx_t_1);
                  __Pyx_GIVEREF(__pyx_t_2);
                  __Pyx_XGIVEREF(__pyx_t_3);
                  __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_3);
                  __pyx_t_1 = 0;  __pyx_t_2 = 0;  __pyx_t_3 = 0; 
                  __PYX_ERR(0, 459, __pyx_L14_except_error)
                }
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                goto __pyx_L13_exception_handled;
              }
              __pyx_L14_except_error:;
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
              goto __pyx_L4_error;
              __pyx_L16_try_return:;
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
              goto __pyx_L9_return;
              __pyx_L13_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            }
          }
          /*finally:*/ {
            /*normal exit:*/{
              if (__pyx_t_8) {
                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[1], NULL);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 459, __pyx_L4_error)
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              }
              goto __pyx_L11;
            }
            __pyx_L9_return: {
              __pyx_t_11 = __pyx_r;
              __pyx_r = 0;
              if (__pyx_t_8) {
                __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[1], NULL);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 459, __pyx_L4_error)
                __Pyx_GOTREF(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              }
              __pyx_r = __pyx_t_11;
              __pyx_t_11 = 0;
              goto __pyx_L3_return;
            }
            __pyx_L11:;
          }
          goto __pyx_L21;
          __pyx_L8_error:;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          goto __pyx_L4_error;
          __pyx_L21:;
        }

        /* "django_templates_cythonized/base.py":458
 *             if context.template is None:
 *                 context.template_name = self.name
 *                 if hasattr(context, "_processors_index"):             # <<<<<<<<<<<<<<
 *                     with context.bind_template(self):
 *                         return self._render(context)
*/
        goto __pyx_L7;
      }

      /* "django_templates_cythonized/base.py":462
 *                         return self._render(context)
 *                 else:
 *                     context.template = self             # <<<<<<<<<<<<<<
 *                     try:
 *                         return self._render(context)
*/
      /*else*/ {
        __Pyx_INCREF((PyObject *)__pyx_v_self);
        __Pyx_GIVEREF((PyObject *)__pyx_v_self);
        __Pyx_GOTREF(__pyx_v_context->__pyx_template);
        __Pyx_DECREF(__pyx_v_context->__pyx_template);
        __pyx_v_context->__pyx_template = ((PyObject *)__pyx_v_self);

        /* "django_templates_cythonized/base.py":463
 *                 else:
 *                     context.template = self
 *                     try:             # <<<<<<<<<<<<<<
 *                         return self._render(context)
 *                     finally:
*/
        /*try:*/ {

          /* "django_templates_cythonized/base.py":464
 *                     context.template = self
 *                     try:
 *                         return self._render(context)             # <<<<<<<<<<<<<<
 *                     finally:
 *                         context.template = None
*/
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_3 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self->__pyx_vtab)->_render(__pyx_v_self, __pyx_v_context, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 464, __pyx_L23_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_r = __pyx_t_3;
          __pyx_t_3 = 0;
          goto __pyx_L22_return;
        }

        /* "django_templates_cythonized/base.py":466
 *                         return self._render(context)
 *                     finally:
 *                         context.template = None             # <<<<<<<<<<<<<<
 *             else:
 *                 return self._render(context)
*/
        /*finally:*/ {
          __pyx_L23_error:;
          /*exception exit:*/{
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __pyx_t_8 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_12 = 0; __pyx_t_17 = 0;
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
             __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_12, &__pyx_t_17);
            if ( unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_11, &__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_8);
            __Pyx_XGOTREF(__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_12);
            __Pyx_XGOTREF(__pyx_t_17);
            __pyx_t_14 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
            {
              __Pyx_INCREF(Py_None);
              __Pyx_GIVEREF(Py_None);
              __Pyx_GOTREF(__pyx_v_context->__pyx_template);
              __Pyx_DECREF(__pyx_v_context->__pyx_template);
              __pyx_v_context->__pyx_template = Py_None;
            }
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_12, __pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_8);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_ErrRestore(__pyx_t_8, __pyx_t_11, __pyx_t_10);
            __pyx_t_8 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_12 = 0; __pyx_t_17 = 0;
            __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
            goto __pyx_L4_error;
          }
          __pyx_L22_return: {
            __pyx_t_17 = __pyx_r;
            __pyx_r = 0;
            __Pyx_INCREF(Py_None);
            __Pyx_GIVEREF(Py_None);
            __Pyx_GOTREF(__pyx_v_context->__pyx_template);
            __Pyx_DECREF(__pyx_v_context->__pyx_template);
            __pyx_v_context->__pyx_template = Py_None;
            __pyx_r = __pyx_t_17;
            __pyx_t_17 = 0;
            goto __pyx_L3_return;
          }
        }
      }
      __pyx_L7:;

      /* "django_templates_cythonized/base.py":456
 *         rc.dicts.append({})
 *         try:
 *             if context.template is None:             # <<<<<<<<<<<<<<
 *                 context.template_name = self.name
 *                 if hasattr(context, "_processors_index"):
*/
      goto __pyx_L6;
    }

    /* "django_templates_cythonized/base.py":468
 *                         context.template = None
 *             else:
 *                 return self._render(context)             # <<<<<<<<<<<<<<
 *         finally:
 *             rc.template = _rc_initial
*/
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self->__pyx_vtab)->_render(__pyx_v_self, __pyx_v_context, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 468, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L3_return;
    }
    __pyx_L6:;
  }

  /* "django_templates_cythonized/base.py":470
 *                 return self._render(context)
 *         finally:
 *             rc.template = _rc_initial             # <<<<<<<<<<<<<<
 *             rc.dicts.pop()
 * 
*/
  /*finally:*/ {
    /*normal exit:*/{
      __Pyx_INCREF(__pyx_v__rc_initial);
      __Pyx_GIVEREF(__pyx_v__rc_initial);
      __Pyx_GOTREF(__pyx_v_rc->__pyx_template);
      __Pyx_DECREF(__pyx_v_rc->__pyx_template);
      __pyx_v_rc->__pyx_template = __pyx_v__rc_initial;

      /* "django_templates_cythonized/base.py":471
 *         finally:
 *             rc.template = _rc_initial
 *             rc.dicts.pop()             # <<<<<<<<<<<<<<
 * 
 * 
*/
      if (unlikely(__pyx_v_rc->__pyx_base.dicts == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
        __PYX_ERR(0, 471, __pyx_L1_error)
      }
      __pyx_t_3 = __Pyx_PyList_Pop(__pyx_v_rc->__pyx_base.dicts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 471, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L5;
    }
    __pyx_L4_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_17 = 0; __pyx_t_12 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_8);
      if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_12, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_12, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_17);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_8);
      __pyx_t_15 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_18 = __pyx_filename;
      {

        /* "django_templates_cythonized/base.py":470
 *                 return self._render(context)
 *         finally:
 *             rc.template = _rc_initial             # <<<<<<<<<<<<<<
 *             rc.dicts.pop()
 * 
*/
        __Pyx_INCREF(__pyx_v__rc_initial);
        __Pyx_GIVEREF(__pyx_v__rc_initial);
        __Pyx_GOTREF(__pyx_v_rc->__pyx_template);
        __Pyx_DECREF(__pyx_v_rc->__pyx_template);
        __pyx_v_rc->__pyx_template = __pyx_v__rc_initial;

        /* "django_templates_cythonized/base.py":471
 *         finally:
 *             rc.template = _rc_initial
 *             rc.dicts.pop()             # <<<<<<<<<<<<<<
 * 
 * 
*/
        if (unlikely(__pyx_v_rc->__pyx_base.dicts == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
          __PYX_ERR(0, 471, __pyx_L28_error)
        }
        __pyx_t_3 = __Pyx_PyList_Pop(__pyx_v_rc->__pyx_base.dicts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 471, __pyx_L28_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_17);
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ErrRestore(__pyx_t_17, __pyx_t_12, __pyx_t_9);
      __pyx_t_17 = 0; __pyx_t_12 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_8 = 0;
      __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_18;
      goto __pyx_L1_error;
      __pyx_L28_error:;
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_8);
      __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_8 = 0;
      goto __pyx_L1_error;
    }
    __pyx_L3_return: {
      __pyx_t_8 = __pyx_r;
      __pyx_r = 0;

      /* "django_templates_cythonized/base.py":470
 *                 return self._render(context)
 *         finally:
 *             rc.template = _rc_initial             # <<<<<<<<<<<<<<
 *             rc.dicts.pop()
 * 
*/
      __Pyx_INCREF(__pyx_v__rc_initial);
      __Pyx_GIVEREF(__pyx_v__rc_initial);
      __Pyx_GOTREF(__pyx_v_rc->__pyx_template);
      __Pyx_DECREF(__pyx_v_rc->__pyx_template);
      __pyx_v_rc->__pyx_template = __pyx_v__rc_initial;

      /* "django_templates_cythonized/base.py":471
 *         finally:
 *             rc.template = _rc_initial
 *             rc.dicts.pop()             # <<<<<<<<<<<<<<
 * 
 * 
*/
      if (unlikely(__pyx_v_rc->__pyx_base.dicts == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
        __PYX_ERR(0, 471, __pyx_L1_error)
      }
      __pyx_t_3 = __Pyx_PyList_Pop(__pyx_v_rc->__pyx_base.dicts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 471, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L0;
    }
    __pyx_L5:;
  }

  /* "django_templates_cythonized/base.py":448
 *         return self.nodelist.render(context)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         # Inline push_state + bind_template (same as Template.render).
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_rc);
  __Pyx_XDECREF(__pyx_v__rc_initial);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_9render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_9render = {"render", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_9render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_9render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 448, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 448, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "render", 0) < (0)) __PYX_ERR(0, 448, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, i); __PYX_ERR(0, 448, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 448, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 448, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 449, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8render(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8render(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(((PyObject *)__pyx_v_context) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(0, 448, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_15PartialTemplate_render(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":402
 *     """
 * 
 *     nodelist = cython.declare(object, visibility="public")             # <<<<<<<<<<<<<<
 *     origin = cython.declare(object, visibility="public")
 *     name = cython.declare(object, visibility="public")
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8nodelist___get__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8nodelist___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->nodelist);
  __pyx_r = __pyx_v_self->nodelist;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->nodelist);
  __Pyx_DECREF(__pyx_v_self->nodelist);
  __pyx_v_self->nodelist = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->nodelist);
  __Pyx_DECREF(__pyx_v_self->nodelist);
  __pyx_v_self->nodelist = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":403
 * 
 *     nodelist = cython.declare(object, visibility="public")
 *     origin = cython.declare(object, visibility="public")             # <<<<<<<<<<<<<<
 *     name = cython.declare(object, visibility="public")
 *     _source_start = cython.declare(object, visibility="public")
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6origin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6origin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6origin___get__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6origin___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->origin);
  __pyx_r = __pyx_v_self->origin;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6origin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6origin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6origin_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6origin_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->origin);
  __Pyx_DECREF(__pyx_v_self->origin);
  __pyx_v_self->origin = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6origin_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6origin_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6origin_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_6origin_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->origin);
  __Pyx_DECREF(__pyx_v_self->origin);
  __pyx_v_self->origin = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":404
 *     nodelist = cython.declare(object, visibility="public")
 *     origin = cython.declare(object, visibility="public")
 *     name = cython.declare(object, visibility="public")             # <<<<<<<<<<<<<<
 *     _source_start = cython.declare(object, visibility="public")
 *     _source_end = cython.declare(object, visibility="public")
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_4name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4name___get__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4name___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4name_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4name_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->name);
  __Pyx_DECREF(__pyx_v_self->name);
  __pyx_v_self->name = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_4name_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_4name_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4name_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_4name_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->name);
  __Pyx_DECREF(__pyx_v_self->name);
  __pyx_v_self->name = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":405
 *     origin = cython.declare(object, visibility="public")
 *     name = cython.declare(object, visibility="public")
 *     _source_start = cython.declare(object, visibility="public")             # <<<<<<<<<<<<<<
 *     _source_end = cython.declare(object, visibility="public")
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_13_source_start___get__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_13_source_start___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_source_start);
  __pyx_r = __pyx_v_self->_source_start;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->_source_start);
  __Pyx_DECREF(__pyx_v_self->_source_start);
  __pyx_v_self->_source_start = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_source_start);
  __Pyx_DECREF(__pyx_v_self->_source_start);
  __pyx_v_self->_source_start = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":406
 *     name = cython.declare(object, visibility="public")
 *     _source_start = cython.declare(object, visibility="public")
 *     _source_end = cython.declare(object, visibility="public")             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, nodelist, origin, name, source_start=None, source_end=None):
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_11_source_end___get__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_11_source_end___get__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_source_end);
  __pyx_r = __pyx_v_self->_source_end;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->_source_end);
  __Pyx_DECREF(__pyx_v_self->_source_end);
  __pyx_v_self->_source_end = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_source_end);
  __Pyx_DECREF(__pyx_v_self->_source_end);
  __pyx_v_self->_source_end = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_10__reduce_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_10__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._source_end, self._source_start, self.name, self.nodelist, self.origin)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->_source_end);
  __Pyx_GIVEREF(__pyx_v_self->_source_end);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->_source_end) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_source_start);
  __Pyx_GIVEREF(__pyx_v_self->_source_start);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->_source_start) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->name);
  __Pyx_GIVEREF(__pyx_v_self->name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_self->name) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->nodelist);
  __Pyx_GIVEREF(__pyx_v_self->nodelist);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->nodelist) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->origin);
  __Pyx_GIVEREF(__pyx_v_self->origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_self->origin) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __pyx_v_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._source_end, self._source_start, self.name, self.nodelist, self.origin)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = (self._source_end, self._source_start, self.name, self.nodelist, self.origin)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._source_end is not None or self._source_start is not None or self.name is not None or self.nodelist is not None or self.origin is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._source_end, self._source_start, self.name, self.nodelist, self.origin)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._source_end is not None or self._source_start is not None or self.name is not None or self.nodelist is not None or self.origin is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, None), state
*/
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->_source_end != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->_source_start != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->name != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->nodelist != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->origin != Py_None);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_2;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._source_end is not None or self._source_start is not None or self.name is not None or self.nodelist is not None or self.origin is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._source_end is not None or self._source_start is not None or self.name is not None or self.nodelist is not None or self.origin is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PartialTemplate); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_91121623);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_91121623);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_91121623) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._source_end is not None or self._source_start is not None or self.name is not None or self.nodelist is not None or self.origin is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, None), state
 *     else:
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PartialTemplate__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PartialTemplate); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_91121623);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_91121623);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_91121623) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PartialTemplate__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_12__setstate_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15PartialTemplate_12__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PartialTemplate__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_PartialTemplate__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PartialTemplate__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.PartialTemplate.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_27django_templates_cythonized_4base_4generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "django_templates_cythonized/base.py":474
 * 
 * 
 * def linebreak_iter(template_source):             # <<<<<<<<<<<<<<
 *     yield 0
 *     p = template_source.find("\n")
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_3linebreak_iter(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_3linebreak_iter = {"linebreak_iter", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_3linebreak_iter, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_3linebreak_iter(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_template_source = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("linebreak_iter (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_template_source,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 474, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 474, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "linebreak_iter", 0) < (0)) __PYX_ERR(0, 474, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("linebreak_iter", 1, 1, 1, i); __PYX_ERR(0, 474, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 474, __pyx_L3_error)
    }
    __pyx_v_template_source = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("linebreak_iter", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 474, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.linebreak_iter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_2linebreak_iter(__pyx_self, __pyx_v_template_source);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_2linebreak_iter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_template_source) {
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("linebreak_iter", 0);
  __pyx_cur_scope = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *)__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 474, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_template_source = __pyx_v_template_source;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_template_source);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_template_source);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_27django_templates_cythonized_4base_4generator, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_linebreak_iter, __pyx_mstate_global->__pyx_n_u_linebreak_iter, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base); if (unlikely(!gen)) __PYX_ERR(0, 474, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.linebreak_iter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_27django_templates_cythonized_4base_4generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *__pyx_cur_scope = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("linebreak_iter", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_yield;
    case 2: goto __pyx_L7_resume_from_yield;
    case 3: goto __pyx_L8_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(0, 474, __pyx_L1_error)
  }

  /* "django_templates_cythonized/base.py":475
 * 
 * def linebreak_iter(template_source):
 *     yield 0             # <<<<<<<<<<<<<<
 *     p = template_source.find("\n")
 *     while p >= 0:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
  __pyx_r = __pyx_mstate_global->__pyx_int_0;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  /* return from generator, yielding value */
  __pyx_generator->resume_label = 1;
  return __pyx_r;
  __pyx_L4_resume_from_yield:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 475, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":476
 * def linebreak_iter(template_source):
 *     yield 0
 *     p = template_source.find("\n")             # <<<<<<<<<<<<<<
 *     while p >= 0:
 *         yield p + 1
*/
  __pyx_t_2 = __pyx_cur_scope->__pyx_v_template_source;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u__6};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_find, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_p = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":477
 *     yield 0
 *     p = template_source.find("\n")
 *     while p >= 0:             # <<<<<<<<<<<<<<
 *         yield p + 1
 *         p = template_source.find("\n", p + 1)
*/
  while (1) {
    __pyx_t_1 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_p, __pyx_mstate_global->__pyx_int_0, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 477, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 477, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_4) break;

    /* "django_templates_cythonized/base.py":478
 *     p = template_source.find("\n")
 *     while p >= 0:
 *         yield p + 1             # <<<<<<<<<<<<<<
 *         p = template_source.find("\n", p + 1)
 *     yield len(template_source) + 1
*/
    __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_cur_scope->__pyx_v_p, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 478, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L7_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 478, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":479
 *     while p >= 0:
 *         yield p + 1
 *         p = template_source.find("\n", p + 1)             # <<<<<<<<<<<<<<
 *     yield len(template_source) + 1
 * 
*/
    __pyx_t_2 = __pyx_cur_scope->__pyx_v_template_source;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyLong_AddObjC(__pyx_cur_scope->__pyx_v_p, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u__6, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_find, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 479, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_p);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_p, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
  }

  /* "django_templates_cythonized/base.py":480
 *         yield p + 1
 *         p = template_source.find("\n", p + 1)
 *     yield len(template_source) + 1             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_6 = PyObject_Length(__pyx_cur_scope->__pyx_v_template_source); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_1 = PyLong_FromSsize_t((__pyx_t_6 + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  /* return from generator, yielding value */
  __pyx_generator->resume_label = 3;
  return __pyx_r;
  __pyx_L8_resume_from_yield:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 480, __pyx_L1_error)
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "django_templates_cythonized/base.py":474
 * 
 * 
 * def linebreak_iter(template_source):             # <<<<<<<<<<<<<<
 *     yield 0
 *     p = template_source.find("\n")
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("linebreak_iter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":484
 * 
 * class Token:
 *     def __init__(self, token_type, contents, position=None, lineno=None):             # <<<<<<<<<<<<<<
 *         """
 *         A token representing a string from the template.
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Token_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_5Token___init__, "\n        A token representing a string from the template.\n\n        token_type\n            A TokenType, either .TEXT, .VAR, .BLOCK, or .COMMENT.\n\n        contents\n            The token source string.\n\n        position\n            An optional tuple containing the start and end index of the token\n            in the template source. This is used for traceback information\n            when debug is on.\n\n        lineno\n            The line number the token appears on in the template source.\n            This is used for traceback information and gettext files.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_5Token_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_5Token_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_5Token___init__};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Token_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_token_type = 0;
  PyObject *__pyx_v_contents = 0;
  PyObject *__pyx_v_position = 0;
  PyObject *__pyx_v_lineno = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_token_type,&__pyx_mstate_global->__pyx_n_u_contents,&__pyx_mstate_global->__pyx_n_u_position,&__pyx_mstate_global->__pyx_n_u_lineno,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 484, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 484, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 484, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 484, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 484, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 484, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 484, __pyx_L3_error)
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, i); __PYX_ERR(0, 484, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 484, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 484, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 484, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 484, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 484, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_token_type = values[1];
    __pyx_v_contents = values[2];
    __pyx_v_position = values[3];
    __pyx_v_lineno = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, __pyx_nargs); __PYX_ERR(0, 484, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Token.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_5Token___init__(__pyx_self, __pyx_v_self, __pyx_v_token_type, __pyx_v_contents, __pyx_v_position, __pyx_v_lineno);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Token___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token_type, PyObject *__pyx_v_contents, PyObject *__pyx_v_position, PyObject *__pyx_v_lineno) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":503
 *             This is used for traceback information and gettext files.
 *         """
 *         self.token_type = token_type             # <<<<<<<<<<<<<<
 *         self.contents = contents
 *         self.lineno = lineno
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_token_type, __pyx_v_token_type) < (0)) __PYX_ERR(0, 503, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":504
 *         """
 *         self.token_type = token_type
 *         self.contents = contents             # <<<<<<<<<<<<<<
 *         self.lineno = lineno
 *         self.position = position
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_contents, __pyx_v_contents) < (0)) __PYX_ERR(0, 504, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":505
 *         self.token_type = token_type
 *         self.contents = contents
 *         self.lineno = lineno             # <<<<<<<<<<<<<<
 *         self.position = position
 * 
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lineno, __pyx_v_lineno) < (0)) __PYX_ERR(0, 505, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":506
 *         self.contents = contents
 *         self.lineno = lineno
 *         self.position = position             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_position, __pyx_v_position) < (0)) __PYX_ERR(0, 506, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":484
 * 
 * class Token:
 *     def __init__(self, token_type, contents, position=None, lineno=None):             # <<<<<<<<<<<<<<
 *         """
 *         A token representing a string from the template.
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.Token.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":508
 *         self.position = position
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         token_name = self.token_type.name.capitalize()
 *         return '<%s token: "%s...">' % (
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Token_3__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_5Token_3__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_5Token_3__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Token_3__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 508, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 508, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(0, 508, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(0, 508, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 508, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 508, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Token.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_5Token_2__repr__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Token_2__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_token_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":509
 * 
 *     def __repr__(self):
 *         token_name = self.token_type.name.capitalize()             # <<<<<<<<<<<<<<
 *         return '<%s token: "%s...">' % (
 *             token_name,
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_token_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_t_4;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_capitalize, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_token_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":510
 *     def __repr__(self):
 *         token_name = self.token_type.name.capitalize()
 *         return '<%s token: "%s...">' % (             # <<<<<<<<<<<<<<
 *             token_name,
 *             self.contents[:20].replace("\n", ""),
*/
  __Pyx_XDECREF(__pyx_r);

  /* "django_templates_cythonized/base.py":511
 *         token_name = self.token_type.name.capitalize()
 *         return '<%s token: "%s...">' % (
 *             token_name,             # <<<<<<<<<<<<<<
 *             self.contents[:20].replace("\n", ""),
 *         )
*/
  __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_token_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "django_templates_cythonized/base.py":512
 *         return '<%s token: "%s...">' % (
 *             token_name,
 *             self.contents[:20].replace("\n", ""),             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_contents); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_4, 0, 20, NULL, NULL, &__pyx_mstate_global->__pyx_slice[1], 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[2], NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6[0] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_6[1] = __pyx_t_1;
  __pyx_t_6[2] = __pyx_mstate_global->__pyx_kp_u_token_2;
  __pyx_t_6[3] = __pyx_t_4;
  __pyx_t_6[4] = __pyx_mstate_global->__pyx_kp_u__8;

  /* "django_templates_cythonized/base.py":510
 *     def __repr__(self):
 *         token_name = self.token_type.name.capitalize()
 *         return '<%s token: "%s...">' % (             # <<<<<<<<<<<<<<
 *             token_name,
 *             self.contents[:20].replace("\n", ""),
*/
  __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_6, 5, 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 5, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":508
 *         self.position = position
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         token_name = self.token_type.name.capitalize()
 *         return '<%s token: "%s...">' % (
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Token.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_token_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":515
 *         )
 * 
 *     def split_contents(self):             # <<<<<<<<<<<<<<
 *         split = []
 *         bits = smart_split(self.contents)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Token_5split_contents(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_5Token_5split_contents = {"split_contents", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_5Token_5split_contents, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Token_5split_contents(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("split_contents (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 515, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 515, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "split_contents", 0) < (0)) __PYX_ERR(0, 515, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("split_contents", 1, 1, 1, i); __PYX_ERR(0, 515, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 515, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("split_contents", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 515, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Token.split_contents", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_5Token_4split_contents(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Token_4split_contents(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_split = NULL;
  PyObject *__pyx_v_bits = NULL;
  PyObject *__pyx_v_bit = NULL;
  PyObject *__pyx_v_sentinel = NULL;
  PyObject *__pyx_v_trans_bit = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("split_contents", 0);

  /* "django_templates_cythonized/base.py":516
 * 
 *     def split_contents(self):
 *         split = []             # <<<<<<<<<<<<<<
 *         bits = smart_split(self.contents)
 *         for bit in bits:
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_split = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":517
 *     def split_contents(self):
 *         split = []
 *         bits = smart_split(self.contents)             # <<<<<<<<<<<<<<
 *         for bit in bits:
 *             # Handle translation-marked template pieces
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_smart_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_contents); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 517, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_bits = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":518
 *         split = []
 *         bits = smart_split(self.contents)
 *         for bit in bits:             # <<<<<<<<<<<<<<
 *             # Handle translation-marked template pieces
 *             if bit.startswith(('_("', "_('")):
*/
  if (likely(PyList_CheckExact(__pyx_v_bits)) || PyTuple_CheckExact(__pyx_v_bits)) {
    __pyx_t_1 = __pyx_v_bits; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_bits); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 518, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 518, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 518, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_6;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 518, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6));
        #else
        __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6);
        #endif
        ++__pyx_t_6;
      }
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 518, __pyx_L1_error)
    } else {
      __pyx_t_3 = __pyx_t_7(__pyx_t_1);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 518, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XDECREF_SET(__pyx_v_bit, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":520
 *         for bit in bits:
 *             # Handle translation-marked template pieces
 *             if bit.startswith(('_("', "_('")):             # <<<<<<<<<<<<<<
 *                 sentinel = bit[2] + ")"
 *                 trans_bit = [bit]
*/
    __pyx_t_4 = __pyx_v_bit;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_tuple[3]};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_startswith, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 520, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 520, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_8) {

      /* "django_templates_cythonized/base.py":521
 *             # Handle translation-marked template pieces
 *             if bit.startswith(('_("', "_('")):
 *                 sentinel = bit[2] + ")"             # <<<<<<<<<<<<<<
 *                 trans_bit = [bit]
 *                 while not bit.endswith(sentinel):
*/
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_bit, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 521, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_mstate_global->__pyx_kp_u__12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 521, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_sentinel, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":522
 *             if bit.startswith(('_("', "_('")):
 *                 sentinel = bit[2] + ")"
 *                 trans_bit = [bit]             # <<<<<<<<<<<<<<
 *                 while not bit.endswith(sentinel):
 *                     bit = next(bits)
*/
      __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 522, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_bit);
      __Pyx_GIVEREF(__pyx_v_bit);
      if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_bit) != (0)) __PYX_ERR(0, 522, __pyx_L1_error);
      __Pyx_XDECREF_SET(__pyx_v_trans_bit, ((PyObject*)__pyx_t_4));
      __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":523
 *                 sentinel = bit[2] + ")"
 *                 trans_bit = [bit]
 *                 while not bit.endswith(sentinel):             # <<<<<<<<<<<<<<
 *                     bit = next(bits)
 *                     trans_bit.append(bit)
*/
      while (1) {
        __pyx_t_3 = __pyx_v_bit;
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_5 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_sentinel};
          __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_endswith, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 523, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 523, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_9 = (!__pyx_t_8);
        if (!__pyx_t_9) break;

        /* "django_templates_cythonized/base.py":524
 *                 trans_bit = [bit]
 *                 while not bit.endswith(sentinel):
 *                     bit = next(bits)             # <<<<<<<<<<<<<<
 *                     trans_bit.append(bit)
 *                 bit = " ".join(trans_bit)
*/
        __pyx_t_4 = __Pyx_PyIter_Next(__pyx_v_bits); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 524, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF_SET(__pyx_v_bit, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "django_templates_cythonized/base.py":525
 *                 while not bit.endswith(sentinel):
 *                     bit = next(bits)
 *                     trans_bit.append(bit)             # <<<<<<<<<<<<<<
 *                 bit = " ".join(trans_bit)
 *             split.append(bit)
*/
        __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_trans_bit, __pyx_v_bit); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 525, __pyx_L1_error)
      }

      /* "django_templates_cythonized/base.py":526
 *                     bit = next(bits)
 *                     trans_bit.append(bit)
 *                 bit = " ".join(trans_bit)             # <<<<<<<<<<<<<<
 *             split.append(bit)
 *         return split
*/
      __pyx_t_4 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__13, __pyx_v_trans_bit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 526, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_bit, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":520
 *         for bit in bits:
 *             # Handle translation-marked template pieces
 *             if bit.startswith(('_("', "_('")):             # <<<<<<<<<<<<<<
 *                 sentinel = bit[2] + ")"
 *                 trans_bit = [bit]
*/
    }

    /* "django_templates_cythonized/base.py":527
 *                     trans_bit.append(bit)
 *                 bit = " ".join(trans_bit)
 *             split.append(bit)             # <<<<<<<<<<<<<<
 *         return split
 * 
*/
    __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_split, __pyx_v_bit); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 527, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":518
 *         split = []
 *         bits = smart_split(self.contents)
 *         for bit in bits:             # <<<<<<<<<<<<<<
 *             # Handle translation-marked template pieces
 *             if bit.startswith(('_("', "_('")):
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":528
 *                 bit = " ".join(trans_bit)
 *             split.append(bit)
 *         return split             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_split);
  __pyx_r = __pyx_v_split;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":515
 *         )
 * 
 *     def split_contents(self):             # <<<<<<<<<<<<<<
 *         split = []
 *         bits = smart_split(self.contents)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Token.split_contents", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_split);
  __Pyx_XDECREF(__pyx_v_bits);
  __Pyx_XDECREF(__pyx_v_bit);
  __Pyx_XDECREF(__pyx_v_sentinel);
  __Pyx_XDECREF(__pyx_v_trans_bit);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":532
 * 
 * class Lexer:
 *     def __init__(self, template_string):             # <<<<<<<<<<<<<<
 *         self.template_string = template_string
 *         self.verbatim = False
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Lexer_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_5Lexer_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_5Lexer_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Lexer_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_template_string = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_template_string,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 532, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 532, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 532, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 532, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 532, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 532, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 532, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_template_string = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 532, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Lexer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_5Lexer___init__(__pyx_self, __pyx_v_self, __pyx_v_template_string);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Lexer___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_template_string) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":533
 * class Lexer:
 *     def __init__(self, template_string):
 *         self.template_string = template_string             # <<<<<<<<<<<<<<
 *         self.verbatim = False
 * 
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_template_string, __pyx_v_template_string) < (0)) __PYX_ERR(0, 533, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":534
 *     def __init__(self, template_string):
 *         self.template_string = template_string
 *         self.verbatim = False             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_verbatim, Py_False) < (0)) __PYX_ERR(0, 534, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":532
 * 
 * class Lexer:
 *     def __init__(self, template_string):             # <<<<<<<<<<<<<<
 *         self.template_string = template_string
 *         self.verbatim = False
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.Lexer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":536
 *         self.verbatim = False
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<%s template_string="%s...", verbatim=%s>' % (
 *             self.__class__.__qualname__,
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Lexer_3__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_5Lexer_3__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_5Lexer_3__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Lexer_3__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 536, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 536, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(0, 536, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(0, 536, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 536, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 536, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Lexer.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_5Lexer_2__repr__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Lexer_2__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[7];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":537
 * 
 *     def __repr__(self):
 *         return '<%s template_string="%s...", verbatim=%s>' % (             # <<<<<<<<<<<<<<
 *             self.__class__.__qualname__,
 *             self.template_string[:20].replace("\n", ""),
*/
  __Pyx_XDECREF(__pyx_r);

  /* "django_templates_cythonized/base.py":538
 *     def __repr__(self):
 *         return '<%s template_string="%s...", verbatim=%s>' % (
 *             self.__class__.__qualname__,             # <<<<<<<<<<<<<<
 *             self.template_string[:20].replace("\n", ""),
 *             self.verbatim,
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_qualname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":539
 *         return '<%s template_string="%s...", verbatim=%s>' % (
 *             self.__class__.__qualname__,
 *             self.template_string[:20].replace("\n", ""),             # <<<<<<<<<<<<<<
 *             self.verbatim,
 *         )
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_template_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 20, NULL, NULL, &__pyx_mstate_global->__pyx_slice[1], 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[2], NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_3), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "django_templates_cythonized/base.py":540
 *             self.__class__.__qualname__,
 *             self.template_string[:20].replace("\n", ""),
 *             self.verbatim,             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_verbatim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_3), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_5[1] = __pyx_t_1;
  __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u_template_string_2;
  __pyx_t_5[3] = __pyx_t_2;
  __pyx_t_5[4] = __pyx_mstate_global->__pyx_kp_u_verbatim_2;
  __pyx_t_5[5] = __pyx_t_4;
  __pyx_t_5[6] = __pyx_mstate_global->__pyx_kp_u__2;

  /* "django_templates_cythonized/base.py":537
 * 
 *     def __repr__(self):
 *         return '<%s template_string="%s...", verbatim=%s>' % (             # <<<<<<<<<<<<<<
 *             self.__class__.__qualname__,
 *             self.template_string[:20].replace("\n", ""),
*/
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 7, 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 18 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":536
 *         self.verbatim = False
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<%s template_string="%s...", verbatim=%s>' % (
 *             self.__class__.__qualname__,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Lexer.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":543
 *         )
 * 
 *     def tokenize(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return a list of tokens from a given template_string.
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Lexer_5tokenize(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_5Lexer_4tokenize, "\n        Return a list of tokens from a given template_string.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_5Lexer_5tokenize = {"tokenize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_5Lexer_5tokenize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_5Lexer_4tokenize};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Lexer_5tokenize(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tokenize (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 543, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "tokenize", 0) < (0)) __PYX_ERR(0, 543, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("tokenize", 1, 1, 1, i); __PYX_ERR(0, 543, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 543, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tokenize", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 543, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Lexer.tokenize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_5Lexer_4tokenize(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Lexer_4tokenize(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  int __pyx_v_in_tag;
  PyObject *__pyx_v_lineno = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_token_string = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tokenize", 0);

  /* "django_templates_cythonized/base.py":547
 *         Return a list of tokens from a given template_string.
 *         """
 *         in_tag = False             # <<<<<<<<<<<<<<
 *         lineno = 1
 *         result = []
*/
  __pyx_v_in_tag = 0;

  /* "django_templates_cythonized/base.py":548
 *         """
 *         in_tag = False
 *         lineno = 1             # <<<<<<<<<<<<<<
 *         result = []
 *         for token_string in tag_re.split(self.template_string):
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
  __pyx_v_lineno = __pyx_mstate_global->__pyx_int_1;

  /* "django_templates_cythonized/base.py":549
 *         in_tag = False
 *         lineno = 1
 *         result = []             # <<<<<<<<<<<<<<
 *         for token_string in tag_re.split(self.template_string):
 *             if token_string:
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":550
 *         lineno = 1
 *         result = []
 *         for token_string in tag_re.split(self.template_string):             # <<<<<<<<<<<<<<
 *             if token_string:
 *                 result.append(self.create_token(token_string, None, lineno, in_tag))
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tag_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_template_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4);
    __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 550, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 550, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_6;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 550, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6);
        #endif
        ++__pyx_t_6;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 550, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_7(__pyx_t_4);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 550, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_token_string, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":551
 *         result = []
 *         for token_string in tag_re.split(self.template_string):
 *             if token_string:             # <<<<<<<<<<<<<<
 *                 result.append(self.create_token(token_string, None, lineno, in_tag))
 *                 lineno += token_string.count("\n")
*/
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_token_string); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 551, __pyx_L1_error)
    if (__pyx_t_8) {

      /* "django_templates_cythonized/base.py":552
 *         for token_string in tag_re.split(self.template_string):
 *             if token_string:
 *                 result.append(self.create_token(token_string, None, lineno, in_tag))             # <<<<<<<<<<<<<<
 *                 lineno += token_string.count("\n")
 *             in_tag = not in_tag
*/
      __pyx_t_3 = __pyx_v_self;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_in_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 552, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_v_token_string, Py_None, __pyx_v_lineno, __pyx_t_2};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_create_token, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 552, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 552, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":553
 *             if token_string:
 *                 result.append(self.create_token(token_string, None, lineno, in_tag))
 *                 lineno += token_string.count("\n")             # <<<<<<<<<<<<<<
 *             in_tag = not in_tag
 *         return result
*/
      __pyx_t_2 = __pyx_v_token_string;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u__6};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_count, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 553, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_lineno, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 553, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_lineno, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":551
 *         result = []
 *         for token_string in tag_re.split(self.template_string):
 *             if token_string:             # <<<<<<<<<<<<<<
 *                 result.append(self.create_token(token_string, None, lineno, in_tag))
 *                 lineno += token_string.count("\n")
*/
    }

    /* "django_templates_cythonized/base.py":554
 *                 result.append(self.create_token(token_string, None, lineno, in_tag))
 *                 lineno += token_string.count("\n")
 *             in_tag = not in_tag             # <<<<<<<<<<<<<<
 *         return result
 * 
*/
    __pyx_v_in_tag = (!__pyx_v_in_tag);

    /* "django_templates_cythonized/base.py":550
 *         lineno = 1
 *         result = []
 *         for token_string in tag_re.split(self.template_string):             # <<<<<<<<<<<<<<
 *             if token_string:
 *                 result.append(self.create_token(token_string, None, lineno, in_tag))
*/
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "django_templates_cythonized/base.py":555
 *                 lineno += token_string.count("\n")
 *             in_tag = not in_tag
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def create_token(self, token_string, position, lineno, in_tag):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":543
 *         )
 * 
 *     def tokenize(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return a list of tokens from a given template_string.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Lexer.tokenize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_lineno);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_token_string);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":557
 *         return result
 * 
 *     def create_token(self, token_string, position, lineno, in_tag):             # <<<<<<<<<<<<<<
 *         """
 *         Convert the given token string into a new Token object and return it.
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Lexer_7create_token(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_5Lexer_6create_token, "\n        Convert the given token string into a new Token object and return it.\n        If in_tag is True, we are processing something that matched a tag,\n        otherwise it should be treated as a literal string.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_5Lexer_7create_token = {"create_token", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_5Lexer_7create_token, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_5Lexer_6create_token};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_5Lexer_7create_token(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_token_string = 0;
  PyObject *__pyx_v_position = 0;
  PyObject *__pyx_v_lineno = 0;
  PyObject *__pyx_v_in_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("create_token (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_token_string,&__pyx_mstate_global->__pyx_n_u_position,&__pyx_mstate_global->__pyx_n_u_lineno,&__pyx_mstate_global->__pyx_n_u_in_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 557, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 557, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 557, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 557, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 557, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 557, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "create_token", 0) < (0)) __PYX_ERR(0, 557, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("create_token", 1, 5, 5, i); __PYX_ERR(0, 557, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 557, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 557, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 557, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 557, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 557, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_token_string = values[1];
    __pyx_v_position = values[2];
    __pyx_v_lineno = values[3];
    __pyx_v_in_tag = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("create_token", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 557, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Lexer.create_token", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_5Lexer_6create_token(__pyx_self, __pyx_v_self, __pyx_v_token_string, __pyx_v_position, __pyx_v_lineno, __pyx_v_in_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_5Lexer_6create_token(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token_string, PyObject *__pyx_v_position, PyObject *__pyx_v_lineno, PyObject *__pyx_v_in_tag) {
  PyObject *__pyx_v_token_start = NULL;
  PyObject *__pyx_v_content = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("create_token", 0);

  /* "django_templates_cythonized/base.py":563
 *         otherwise it should be treated as a literal string.
 *         """
 *         if in_tag:             # <<<<<<<<<<<<<<
 *             # The [0:2] and [2:-2] ranges below strip off *_TAG_START and
 *             # *_TAG_END. The 2's are hard-coded for performance. Using
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_in_tag); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 563, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":569
 *             # different, but it's not likely that the TAG_START values will
 *             # change anytime soon.
 *             token_start = token_string[0:2]             # <<<<<<<<<<<<<<
 *             if token_start == BLOCK_TAG_START:
 *                 content = token_string[2:-2].strip()
*/
    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_token_string, 0, 2, NULL, NULL, &__pyx_mstate_global->__pyx_slice[2], 1, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 569, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_token_start = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":570
 *             # change anytime soon.
 *             token_start = token_string[0:2]
 *             if token_start == BLOCK_TAG_START:             # <<<<<<<<<<<<<<
 *                 content = token_string[2:-2].strip()
 *                 if self.verbatim:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_BLOCK_TAG_START); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 570, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_token_start, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 570, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 570, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":571
 *             token_start = token_string[0:2]
 *             if token_start == BLOCK_TAG_START:
 *                 content = token_string[2:-2].strip()             # <<<<<<<<<<<<<<
 *                 if self.verbatim:
 *                     # Then a verbatim block is being processed.
*/
      __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_token_string, 2, -2L, NULL, NULL, &__pyx_mstate_global->__pyx_slice[3], 1, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 571, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __pyx_t_4;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_strip, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 571, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __pyx_v_content = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":572
 *             if token_start == BLOCK_TAG_START:
 *                 content = token_string[2:-2].strip()
 *                 if self.verbatim:             # <<<<<<<<<<<<<<
 *                     # Then a verbatim block is being processed.
 *                     if content != self.verbatim:
*/
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_verbatim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 572, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 572, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_1) {

        /* "django_templates_cythonized/base.py":574
 *                 if self.verbatim:
 *                     # Then a verbatim block is being processed.
 *                     if content != self.verbatim:             # <<<<<<<<<<<<<<
 *                         return Token(TokenType.TEXT, token_string, position, lineno)
 *                     # Otherwise, the current verbatim block is ending.
*/
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_verbatim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyObject_RichCompare(__pyx_v_content, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 574, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 574, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_1) {

          /* "django_templates_cythonized/base.py":575
 *                     # Then a verbatim block is being processed.
 *                     if content != self.verbatim:
 *                         return Token(TokenType.TEXT, token_string, position, lineno)             # <<<<<<<<<<<<<<
 *                     # Otherwise, the current verbatim block is ending.
 *                     self.verbatim = False
*/
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_3 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Token); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_TokenType); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_TEXT); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_5 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
            assert(__pyx_t_3);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
            __pyx_t_5 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_7, __pyx_v_token_string, __pyx_v_position, __pyx_v_lineno};
            __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
          }
          __pyx_r = __pyx_t_4;
          __pyx_t_4 = 0;
          goto __pyx_L0;

          /* "django_templates_cythonized/base.py":574
 *                 if self.verbatim:
 *                     # Then a verbatim block is being processed.
 *                     if content != self.verbatim:             # <<<<<<<<<<<<<<
 *                         return Token(TokenType.TEXT, token_string, position, lineno)
 *                     # Otherwise, the current verbatim block is ending.
*/
        }

        /* "django_templates_cythonized/base.py":577
 *                         return Token(TokenType.TEXT, token_string, position, lineno)
 *                     # Otherwise, the current verbatim block is ending.
 *                     self.verbatim = False             # <<<<<<<<<<<<<<
 *                 elif content[:9] in ("verbatim", "verbatim "):
 *                     # Then a verbatim block is starting.
*/
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_verbatim, Py_False) < (0)) __PYX_ERR(0, 577, __pyx_L1_error)

        /* "django_templates_cythonized/base.py":572
 *             if token_start == BLOCK_TAG_START:
 *                 content = token_string[2:-2].strip()
 *                 if self.verbatim:             # <<<<<<<<<<<<<<
 *                     # Then a verbatim block is being processed.
 *                     if content != self.verbatim:
*/
        goto __pyx_L5;
      }

      /* "django_templates_cythonized/base.py":578
 *                     # Otherwise, the current verbatim block is ending.
 *                     self.verbatim = False
 *                 elif content[:9] in ("verbatim", "verbatim "):             # <<<<<<<<<<<<<<
 *                     # Then a verbatim block is starting.
 *                     self.verbatim = "end%s" % content
*/
      __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_content, 0, 9, NULL, NULL, &__pyx_mstate_global->__pyx_slice[4], 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 578, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_verbatim, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 578, __pyx_L1_error)
      if (!__pyx_t_8) {
      } else {
        __pyx_t_1 = __pyx_t_8;
        goto __pyx_L7_bool_binop_done;
      }
      __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_verbatim_3, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 578, __pyx_L1_error)
      __pyx_t_1 = __pyx_t_8;
      __pyx_L7_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_8 = __pyx_t_1;
      if (__pyx_t_8) {

        /* "django_templates_cythonized/base.py":580
 *                 elif content[:9] in ("verbatim", "verbatim "):
 *                     # Then a verbatim block is starting.
 *                     self.verbatim = "end%s" % content             # <<<<<<<<<<<<<<
 *                 return Token(TokenType.BLOCK, content, position, lineno)
 *             if not self.verbatim:
*/
        __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_end_s, __pyx_v_content); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 580, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_verbatim, __pyx_t_4) < (0)) __PYX_ERR(0, 580, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "django_templates_cythonized/base.py":578
 *                     # Otherwise, the current verbatim block is ending.
 *                     self.verbatim = False
 *                 elif content[:9] in ("verbatim", "verbatim "):             # <<<<<<<<<<<<<<
 *                     # Then a verbatim block is starting.
 *                     self.verbatim = "end%s" % content
*/
      }
      __pyx_L5:;

      /* "django_templates_cythonized/base.py":581
 *                     # Then a verbatim block is starting.
 *                     self.verbatim = "end%s" % content
 *                 return Token(TokenType.BLOCK, content, position, lineno)             # <<<<<<<<<<<<<<
 *             if not self.verbatim:
 *                 content = token_string[2:-2].strip()
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_2 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Token); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 581, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TokenType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 581, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BLOCK); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 581, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_t_6, __pyx_v_content, __pyx_v_position, __pyx_v_lineno};
        __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 581, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":570
 *             # change anytime soon.
 *             token_start = token_string[0:2]
 *             if token_start == BLOCK_TAG_START:             # <<<<<<<<<<<<<<
 *                 content = token_string[2:-2].strip()
 *                 if self.verbatim:
*/
    }

    /* "django_templates_cythonized/base.py":582
 *                     self.verbatim = "end%s" % content
 *                 return Token(TokenType.BLOCK, content, position, lineno)
 *             if not self.verbatim:             # <<<<<<<<<<<<<<
 *                 content = token_string[2:-2].strip()
 *                 if token_start == VARIABLE_TAG_START:
*/
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_verbatim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 582, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 582, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_1 = (!__pyx_t_8);
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":583
 *                 return Token(TokenType.BLOCK, content, position, lineno)
 *             if not self.verbatim:
 *                 content = token_string[2:-2].strip()             # <<<<<<<<<<<<<<
 *                 if token_start == VARIABLE_TAG_START:
 *                     return Token(TokenType.VAR, content, position, lineno)
*/
      __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_token_string, 2, -2L, NULL, NULL, &__pyx_mstate_global->__pyx_slice[3], 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __pyx_t_6;
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_strip, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 583, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_v_content = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":584
 *             if not self.verbatim:
 *                 content = token_string[2:-2].strip()
 *                 if token_start == VARIABLE_TAG_START:             # <<<<<<<<<<<<<<
 *                     return Token(TokenType.VAR, content, position, lineno)
 *                 # BLOCK_TAG_START was handled above.
*/
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_VARIABLE_TAG_START); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 584, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_token_start, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 584, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 584, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_1) {

        /* "django_templates_cythonized/base.py":585
 *                 content = token_string[2:-2].strip()
 *                 if token_start == VARIABLE_TAG_START:
 *                     return Token(TokenType.VAR, content, position, lineno)             # <<<<<<<<<<<<<<
 *                 # BLOCK_TAG_START was handled above.
 *                 assert token_start == COMMENT_TAG_START
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_4 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Token); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 585, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_TokenType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_VAR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 585, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
          assert(__pyx_t_4);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[5] = {__pyx_t_4, __pyx_t_3, __pyx_v_content, __pyx_v_position, __pyx_v_lineno};
          __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 585, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
        }
        __pyx_r = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":584
 *             if not self.verbatim:
 *                 content = token_string[2:-2].strip()
 *                 if token_start == VARIABLE_TAG_START:             # <<<<<<<<<<<<<<
 *                     return Token(TokenType.VAR, content, position, lineno)
 *                 # BLOCK_TAG_START was handled above.
*/
      }

      /* "django_templates_cythonized/base.py":587
 *                     return Token(TokenType.VAR, content, position, lineno)
 *                 # BLOCK_TAG_START was handled above.
 *                 assert token_start == COMMENT_TAG_START             # <<<<<<<<<<<<<<
 *                 return Token(TokenType.COMMENT, content, position, lineno)
 *         return Token(TokenType.TEXT, token_string, position, lineno)
*/
      #ifndef CYTHON_WITHOUT_ASSERTIONS
      if (unlikely(__pyx_assertions_enabled())) {
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_COMMENT_TAG_START); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 587, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = PyObject_RichCompare(__pyx_v_token_start, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 587, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 587, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_1)) {
          __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
          __PYX_ERR(0, 587, __pyx_L1_error)
        }
      }
      #else
      if ((1)); else __PYX_ERR(0, 587, __pyx_L1_error)
      #endif

      /* "django_templates_cythonized/base.py":588
 *                 # BLOCK_TAG_START was handled above.
 *                 assert token_start == COMMENT_TAG_START
 *                 return Token(TokenType.COMMENT, content, position, lineno)             # <<<<<<<<<<<<<<
 *         return Token(TokenType.TEXT, token_string, position, lineno)
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Token); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 588, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TokenType); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 588, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_COMMENT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 588, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
        assert(__pyx_t_6);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[5] = {__pyx_t_6, __pyx_t_2, __pyx_v_content, __pyx_v_position, __pyx_v_lineno};
        __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 588, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
      }
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":582
 *                     self.verbatim = "end%s" % content
 *                 return Token(TokenType.BLOCK, content, position, lineno)
 *             if not self.verbatim:             # <<<<<<<<<<<<<<
 *                 content = token_string[2:-2].strip()
 *                 if token_start == VARIABLE_TAG_START:
*/
    }

    /* "django_templates_cythonized/base.py":563
 *         otherwise it should be treated as a literal string.
 *         """
 *         if in_tag:             # <<<<<<<<<<<<<<
 *             # The [0:2] and [2:-2] ranges below strip off *_TAG_START and
 *             # *_TAG_END. The 2's are hard-coded for performance. Using
*/
  }

  /* "django_templates_cythonized/base.py":589
 *                 assert token_start == COMMENT_TAG_START
 *                 return Token(TokenType.COMMENT, content, position, lineno)
 *         return Token(TokenType.TEXT, token_string, position, lineno)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Token); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_TokenType); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_TEXT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_4, __pyx_v_token_string, __pyx_v_position, __pyx_v_lineno};
    __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":557
 *         return result
 * 
 *     def create_token(self, token_string, position, lineno, in_tag):             # <<<<<<<<<<<<<<
 *         """
 *         Convert the given token string into a new Token object and return it.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("django_templates_cythonized.base.Lexer.create_token", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_token_start);
  __Pyx_XDECREF(__pyx_v_content);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_27django_templates_cythonized_4base_10DebugLexer_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "django_templates_cythonized/base.py":593
 * 
 * class DebugLexer(Lexer):
 *     def _tag_re_split_positions(self):             # <<<<<<<<<<<<<<
 *         last = 0
 *         for match in tag_re.finditer(self.template_string):
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_10DebugLexer_1_tag_re_split_positions(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_10DebugLexer_1_tag_re_split_positions = {"_tag_re_split_positions", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_10DebugLexer_1_tag_re_split_positions, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_10DebugLexer_1_tag_re_split_positions(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_tag_re_split_positions (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 593, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 593, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_tag_re_split_positions", 0) < (0)) __PYX_ERR(0, 593, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_tag_re_split_positions", 1, 1, 1, i); __PYX_ERR(0, 593, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 593, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_tag_re_split_positions", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 593, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.DebugLexer._tag_re_split_positions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_10DebugLexer__tag_re_split_positions(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_10DebugLexer__tag_re_split_positions(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_tag_re_split_positions", 0);
  __pyx_cur_scope = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *)__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 593, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_27django_templates_cythonized_4base_10DebugLexer_2generator1, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_tag_re_split_positions, __pyx_mstate_global->__pyx_n_u_DebugLexer__tag_re_split_positio, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base); if (unlikely(!gen)) __PYX_ERR(0, 593, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.DebugLexer._tag_re_split_positions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_27django_templates_cythonized_4base_10DebugLexer_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *__pyx_cur_scope = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_tag_re_split_positions", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L8_resume_from_yield;
    case 2: goto __pyx_L9_resume_from_yield;
    case 3: goto __pyx_L11_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(0, 593, __pyx_L1_error)
  }

  /* "django_templates_cythonized/base.py":594
 * class DebugLexer(Lexer):
 *     def _tag_re_split_positions(self):
 *         last = 0             # <<<<<<<<<<<<<<
 *         for match in tag_re.finditer(self.template_string):
 *             start, end = match.span()
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0);
  __pyx_cur_scope->__pyx_v_last = __pyx_mstate_global->__pyx_int_0;

  /* "django_templates_cythonized/base.py":595
 *     def _tag_re_split_positions(self):
 *         last = 0
 *         for match in tag_re.finditer(self.template_string):             # <<<<<<<<<<<<<<
 *             start, end = match.span()
 *             yield last, start
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tag_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_finditer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_mstate_global->__pyx_n_u_template_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4);
    __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 595, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 595, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_6;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 595, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6);
        #endif
        ++__pyx_t_6;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_7(__pyx_t_4);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 595, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_match);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_match, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":596
 *         last = 0
 *         for match in tag_re.finditer(self.template_string):
 *             start, end = match.span()             # <<<<<<<<<<<<<<
 *             yield last, start
 *             yield start, end
*/
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_match;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_span, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 596, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 596, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
        __Pyx_INCREF(__pyx_t_2);
      } else {
        __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 596, __pyx_L1_error)
        __Pyx_XGOTREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 596, __pyx_L1_error)
        __Pyx_XGOTREF(__pyx_t_2);
      }
      #else
      __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 596, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 596, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 596, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8);
      index = 0; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(0, 596, __pyx_L1_error)
      __pyx_t_9 = NULL;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L7_unpacking_done;
      __pyx_L6_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 596, __pyx_L1_error)
      __pyx_L7_unpacking_done:;
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_start);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_start, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_end);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_end, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":597
 *         for match in tag_re.finditer(self.template_string):
 *             start, end = match.span()
 *             yield last, start             # <<<<<<<<<<<<<<
 *             yield start, end
 *             last = end
*/
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 597, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_last);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_last);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_last) != (0)) __PYX_ERR(0, 597, __pyx_L1_error);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_start);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_start);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_start) != (0)) __PYX_ERR(0, 597, __pyx_L1_error);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_XGIVEREF(__pyx_t_4);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_6;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_7;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L8_resume_from_yield:;
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_4);
    __pyx_t_6 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_7 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 597, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":598
 *             start, end = match.span()
 *             yield last, start
 *             yield start, end             # <<<<<<<<<<<<<<
 *             last = end
 *         yield last, len(self.template_string)
*/
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 598, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_start);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_start);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_start) != (0)) __PYX_ERR(0, 598, __pyx_L1_error);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_end);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_end);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_end) != (0)) __PYX_ERR(0, 598, __pyx_L1_error);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_XGIVEREF(__pyx_t_4);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_6;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_7;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L9_resume_from_yield:;
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_4);
    __pyx_t_6 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_7 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 598, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":599
 *             yield last, start
 *             yield start, end
 *             last = end             # <<<<<<<<<<<<<<
 *         yield last, len(self.template_string)
 * 
*/
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_end);
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_last);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_last, __pyx_cur_scope->__pyx_v_end);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_end);

    /* "django_templates_cythonized/base.py":595
 *     def _tag_re_split_positions(self):
 *         last = 0
 *         for match in tag_re.finditer(self.template_string):             # <<<<<<<<<<<<<<
 *             start, end = match.span()
 *             yield last, start
*/
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "django_templates_cythonized/base.py":600
 *             yield start, end
 *             last = end
 *         yield last, len(self.template_string)             # <<<<<<<<<<<<<<
 * 
 *     # This parallels the use of tag_re.split() in Lexer.tokenize().
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_mstate_global->__pyx_n_u_template_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyLong_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_last);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_last);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_last) != (0)) __PYX_ERR(0, 600, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4) != (0)) __PYX_ERR(0, 600, __pyx_L1_error);
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  /* return from generator, yielding value */
  __pyx_generator->resume_label = 3;
  return __pyx_r;
  __pyx_L11_resume_from_yield:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 600, __pyx_L1_error)
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "django_templates_cythonized/base.py":593
 * 
 * class DebugLexer(Lexer):
 *     def _tag_re_split_positions(self):             # <<<<<<<<<<<<<<
 *         last = 0
 *         for match in tag_re.finditer(self.template_string):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_tag_re_split_positions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_27django_templates_cythonized_4base_10DebugLexer_5generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "django_templates_cythonized/base.py":603
 * 
 *     # This parallels the use of tag_re.split() in Lexer.tokenize().
 *     def _tag_re_split(self):             # <<<<<<<<<<<<<<
 *         for position in self._tag_re_split_positions():
 *             yield self.template_string[slice(*position)], position
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_10DebugLexer_4_tag_re_split(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_10DebugLexer_4_tag_re_split = {"_tag_re_split", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_10DebugLexer_4_tag_re_split, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_10DebugLexer_4_tag_re_split(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_tag_re_split (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 603, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 603, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_tag_re_split", 0) < (0)) __PYX_ERR(0, 603, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_tag_re_split", 1, 1, 1, i); __PYX_ERR(0, 603, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 603, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_tag_re_split", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 603, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.DebugLexer._tag_re_split", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_10DebugLexer_3_tag_re_split(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_10DebugLexer_3_tag_re_split(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_tag_re_split", 0);
  __pyx_cur_scope = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *)__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 603, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_27django_templates_cythonized_4base_10DebugLexer_5generator2, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_tag_re_split, __pyx_mstate_global->__pyx_n_u_DebugLexer__tag_re_split, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base); if (unlikely(!gen)) __PYX_ERR(0, 603, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.DebugLexer._tag_re_split", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_27django_templates_cythonized_4base_10DebugLexer_5generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *__pyx_cur_scope = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_tag_re_split", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(0, 603, __pyx_L1_error)
  }

  /* "django_templates_cythonized/base.py":604
 *     # This parallels the use of tag_re.split() in Lexer.tokenize().
 *     def _tag_re_split(self):
 *         for position in self._tag_re_split_positions():             # <<<<<<<<<<<<<<
 *             yield self.template_string[slice(*position)], position
 * 
*/
  __pyx_t_2 = __pyx_cur_scope->__pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_tag_re_split_positions, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 604, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 604, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 604, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 604, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 604, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_position);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_position, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":605
 *     def _tag_re_split(self):
 *         for position in self._tag_re_split_positions():
 *             yield self.template_string[slice(*position)], position             # <<<<<<<<<<<<<<
 * 
 *     def tokenize(self):
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_mstate_global->__pyx_n_u_template_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 605, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_cur_scope->__pyx_v_position); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 605, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)(&PySlice_Type)), __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 605, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 605, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 605, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6) != (0)) __PYX_ERR(0, 605, __pyx_L1_error);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_position);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_position);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_cur_scope->__pyx_v_position) != (0)) __PYX_ERR(0, 605, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 605, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":604
 *     # This parallels the use of tag_re.split() in Lexer.tokenize().
 *     def _tag_re_split(self):
 *         for position in self._tag_re_split_positions():             # <<<<<<<<<<<<<<
 *             yield self.template_string[slice(*position)], position
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "django_templates_cythonized/base.py":603
 * 
 *     # This parallels the use of tag_re.split() in Lexer.tokenize().
 *     def _tag_re_split(self):             # <<<<<<<<<<<<<<
 *         for position in self._tag_re_split_positions():
 *             yield self.template_string[slice(*position)], position
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_tag_re_split", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":607
 *             yield self.template_string[slice(*position)], position
 * 
 *     def tokenize(self):             # <<<<<<<<<<<<<<
 *         """
 *         Split a template string into tokens and annotates each token with its
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_10DebugLexer_7tokenize(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_10DebugLexer_6tokenize, "\n        Split a template string into tokens and annotates each token with its\n        start and end position in the source. This is slower than the default\n        lexer so only use it when debug is True.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_10DebugLexer_7tokenize = {"tokenize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_10DebugLexer_7tokenize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_10DebugLexer_6tokenize};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_10DebugLexer_7tokenize(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tokenize (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 607, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 607, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "tokenize", 0) < (0)) __PYX_ERR(0, 607, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("tokenize", 1, 1, 1, i); __PYX_ERR(0, 607, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 607, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tokenize", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 607, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.DebugLexer.tokenize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_10DebugLexer_6tokenize(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_10DebugLexer_6tokenize(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  int __pyx_v_in_tag;
  PyObject *__pyx_v_lineno = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_token_string = NULL;
  PyObject *__pyx_v_position = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tokenize", 0);

  /* "django_templates_cythonized/base.py":615
 *         # For maintainability, it is helpful if the implementation below can
 *         # continue to closely parallel Lexer.tokenize()'s implementation.
 *         in_tag = False             # <<<<<<<<<<<<<<
 *         lineno = 1
 *         result = []
*/
  __pyx_v_in_tag = 0;

  /* "django_templates_cythonized/base.py":616
 *         # continue to closely parallel Lexer.tokenize()'s implementation.
 *         in_tag = False
 *         lineno = 1             # <<<<<<<<<<<<<<
 *         result = []
 *         for token_string, position in self._tag_re_split():
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1);
  __pyx_v_lineno = __pyx_mstate_global->__pyx_int_1;

  /* "django_templates_cythonized/base.py":617
 *         in_tag = False
 *         lineno = 1
 *         result = []             # <<<<<<<<<<<<<<
 *         for token_string, position in self._tag_re_split():
 *             if token_string:
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":618
 *         lineno = 1
 *         result = []
 *         for token_string, position in self._tag_re_split():             # <<<<<<<<<<<<<<
 *             if token_string:
 *                 result.append(self.create_token(token_string, position, lineno, in_tag))
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_tag_re_split, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 618, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 618, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_4;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 618, __pyx_L1_error)
          #endif
          if (__pyx_t_4 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4);
        #endif
        ++__pyx_t_4;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 618, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 618, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 618, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1);
        __Pyx_INCREF(__pyx_t_7);
      } else {
        __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
        if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 618, __pyx_L1_error)
        __Pyx_XGOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 618, __pyx_L1_error)
        __Pyx_XGOTREF(__pyx_t_7);
      }
      #else
      __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 618, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 618, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 618, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8);
      index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_6);
      index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(0, 618, __pyx_L1_error)
      __pyx_t_9 = NULL;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L6_unpacking_done;
      __pyx_L5_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 618, __pyx_L1_error)
      __pyx_L6_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_token_string, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_XDECREF_SET(__pyx_v_position, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "django_templates_cythonized/base.py":619
 *         result = []
 *         for token_string, position in self._tag_re_split():
 *             if token_string:             # <<<<<<<<<<<<<<
 *                 result.append(self.create_token(token_string, position, lineno, in_tag))
 *                 lineno += token_string.count("\n")
*/
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_token_string); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 619, __pyx_L1_error)
    if (__pyx_t_10) {

      /* "django_templates_cythonized/base.py":620
 *         for token_string, position in self._tag_re_split():
 *             if token_string:
 *                 result.append(self.create_token(token_string, position, lineno, in_tag))             # <<<<<<<<<<<<<<
 *                 lineno += token_string.count("\n")
 *             in_tag = not in_tag
*/
      __pyx_t_7 = __pyx_v_self;
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_in_tag); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 620, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[5] = {__pyx_t_7, __pyx_v_token_string, __pyx_v_position, __pyx_v_lineno, __pyx_t_6};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_create_token, __pyx_callargs+__pyx_t_3, (5-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 620, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 620, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":621
 *             if token_string:
 *                 result.append(self.create_token(token_string, position, lineno, in_tag))
 *                 lineno += token_string.count("\n")             # <<<<<<<<<<<<<<
 *             in_tag = not in_tag
 *         return result
*/
      __pyx_t_6 = __pyx_v_token_string;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u__6};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_count, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 621, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_lineno, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 621, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_lineno, __pyx_t_6);
      __pyx_t_6 = 0;

      /* "django_templates_cythonized/base.py":619
 *         result = []
 *         for token_string, position in self._tag_re_split():
 *             if token_string:             # <<<<<<<<<<<<<<
 *                 result.append(self.create_token(token_string, position, lineno, in_tag))
 *                 lineno += token_string.count("\n")
*/
    }

    /* "django_templates_cythonized/base.py":622
 *                 result.append(self.create_token(token_string, position, lineno, in_tag))
 *                 lineno += token_string.count("\n")
 *             in_tag = not in_tag             # <<<<<<<<<<<<<<
 *         return result
 * 
*/
    __pyx_v_in_tag = (!__pyx_v_in_tag);

    /* "django_templates_cythonized/base.py":618
 *         lineno = 1
 *         result = []
 *         for token_string, position in self._tag_re_split():             # <<<<<<<<<<<<<<
 *             if token_string:
 *                 result.append(self.create_token(token_string, position, lineno, in_tag))
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":623
 *                 lineno += token_string.count("\n")
 *             in_tag = not in_tag
 *         return result             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":607
 *             yield self.template_string[slice(*position)], position
 * 
 *     def tokenize(self):             # <<<<<<<<<<<<<<
 *         """
 *         Split a template string into tokens and annotates each token with its
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("django_templates_cythonized.base.DebugLexer.tokenize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_lineno);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_token_string);
  __Pyx_XDECREF(__pyx_v_position);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":627
 * 
 * class Parser:
 *     def __init__(self, tokens, libraries=None, builtins=None, origin=None):             # <<<<<<<<<<<<<<
 *         # Reverse the tokens so delete_first_token(), prepend_token(), and
 *         # next_token() can operate at the end of the list in constant time.
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_tokens = 0;
  PyObject *__pyx_v_libraries = 0;
  PyObject *__pyx_v_builtins = 0;
  PyObject *__pyx_v_origin = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_tokens,&__pyx_mstate_global->__pyx_n_u_libraries,&__pyx_mstate_global->__pyx_n_u_builtins,&__pyx_mstate_global->__pyx_n_u_origin,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 627, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 627, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 627, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 627, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 627, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 627, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 627, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(0, 627, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 627, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 627, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 627, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 627, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 627, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_tokens = values[1];
    __pyx_v_libraries = values[2];
    __pyx_v_builtins = values[3];
    __pyx_v_origin = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(0, 627, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser___init__(__pyx_self, __pyx_v_self, __pyx_v_tokens, __pyx_v_libraries, __pyx_v_builtins, __pyx_v_origin);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_tokens, PyObject *__pyx_v_libraries, PyObject *__pyx_v_builtins, PyObject *__pyx_v_origin) {
  PyObject *__pyx_v_builtin = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_libraries);
  __Pyx_INCREF(__pyx_v_builtins);

  /* "django_templates_cythonized/base.py":630
 *         # Reverse the tokens so delete_first_token(), prepend_token(), and
 *         # next_token() can operate at the end of the list in constant time.
 *         self.tokens = list(reversed(tokens))             # <<<<<<<<<<<<<<
 *         self.tags = {}
 *         self.filters = {}
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_tokens};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_reversed, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 630, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_2 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tokens, __pyx_t_2) < (0)) __PYX_ERR(0, 630, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":631
 *         # next_token() can operate at the end of the list in constant time.
 *         self.tokens = list(reversed(tokens))
 *         self.tags = {}             # <<<<<<<<<<<<<<
 *         self.filters = {}
 *         self.command_stack = []
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tags, __pyx_t_2) < (0)) __PYX_ERR(0, 631, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":632
 *         self.tokens = list(reversed(tokens))
 *         self.tags = {}
 *         self.filters = {}             # <<<<<<<<<<<<<<
 *         self.command_stack = []
 * 
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_filters, __pyx_t_2) < (0)) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":633
 *         self.tags = {}
 *         self.filters = {}
 *         self.command_stack = []             # <<<<<<<<<<<<<<
 * 
 *         # Custom template tags may store additional data on the parser that
*/
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_command_stack, __pyx_t_2) < (0)) __PYX_ERR(0, 633, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":639
 *         # should use a key to namespace any added data. The 'django' namespace
 *         # is reserved for internal use.
 *         self.extra_data = {}             # <<<<<<<<<<<<<<
 * 
 *         if libraries is None:
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_extra_data, __pyx_t_2) < (0)) __PYX_ERR(0, 639, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":641
 *         self.extra_data = {}
 * 
 *         if libraries is None:             # <<<<<<<<<<<<<<
 *             libraries = {}
 *         if builtins is None:
*/
  __pyx_t_4 = (__pyx_v_libraries == Py_None);
  if (__pyx_t_4) {

    /* "django_templates_cythonized/base.py":642
 * 
 *         if libraries is None:
 *             libraries = {}             # <<<<<<<<<<<<<<
 *         if builtins is None:
 *             builtins = []
*/
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF_SET(__pyx_v_libraries, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":641
 *         self.extra_data = {}
 * 
 *         if libraries is None:             # <<<<<<<<<<<<<<
 *             libraries = {}
 *         if builtins is None:
*/
  }

  /* "django_templates_cythonized/base.py":643
 *         if libraries is None:
 *             libraries = {}
 *         if builtins is None:             # <<<<<<<<<<<<<<
 *             builtins = []
 * 
*/
  __pyx_t_4 = (__pyx_v_builtins == Py_None);
  if (__pyx_t_4) {

    /* "django_templates_cythonized/base.py":644
 *             libraries = {}
 *         if builtins is None:
 *             builtins = []             # <<<<<<<<<<<<<<
 * 
 *         self.libraries = libraries
*/
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 644, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF_SET(__pyx_v_builtins, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":643
 *         if libraries is None:
 *             libraries = {}
 *         if builtins is None:             # <<<<<<<<<<<<<<
 *             builtins = []
 * 
*/
  }

  /* "django_templates_cythonized/base.py":646
 *             builtins = []
 * 
 *         self.libraries = libraries             # <<<<<<<<<<<<<<
 *         for builtin in builtins:
 *             self.add_library(builtin)
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_libraries, __pyx_v_libraries) < (0)) __PYX_ERR(0, 646, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":647
 * 
 *         self.libraries = libraries
 *         for builtin in builtins:             # <<<<<<<<<<<<<<
 *             self.add_library(builtin)
 *         self.origin = origin
*/
  if (likely(PyList_CheckExact(__pyx_v_builtins)) || PyTuple_CheckExact(__pyx_v_builtins)) {
    __pyx_t_2 = __pyx_v_builtins; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_builtins); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 647, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 647, __pyx_L1_error)
          #endif
          if (__pyx_t_5 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_5;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 647, __pyx_L1_error)
          #endif
          if (__pyx_t_5 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_5);
        #endif
        ++__pyx_t_5;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 647, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_6(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 647, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_builtin, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":648
 *         self.libraries = libraries
 *         for builtin in builtins:
 *             self.add_library(builtin)             # <<<<<<<<<<<<<<
 *         self.origin = origin
 * 
*/
    __pyx_t_7 = __pyx_v_self;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_builtin};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_add_library, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 648, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":647
 * 
 *         self.libraries = libraries
 *         for builtin in builtins:             # <<<<<<<<<<<<<<
 *             self.add_library(builtin)
 *         self.origin = origin
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":649
 *         for builtin in builtins:
 *             self.add_library(builtin)
 *         self.origin = origin             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_origin, __pyx_v_origin) < (0)) __PYX_ERR(0, 649, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":627
 * 
 * class Parser:
 *     def __init__(self, tokens, libraries=None, builtins=None, origin=None):             # <<<<<<<<<<<<<<
 *         # Reverse the tokens so delete_first_token(), prepend_token(), and
 *         # next_token() can operate at the end of the list in constant time.
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_builtin);
  __Pyx_XDECREF(__pyx_v_libraries);
  __Pyx_XDECREF(__pyx_v_builtins);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":651
 *         self.origin = origin
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s tokens=%r>" % (self.__class__.__qualname__, self.tokens)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_3__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_3__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_3__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_3__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 651, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 651, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(0, 651, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(0, 651, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 651, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 651, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_2__repr__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_2__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":652
 * 
 *     def __repr__(self):
 *         return "<%s tokens=%r>" % (self.__class__.__qualname__, self.tokens)             # <<<<<<<<<<<<<<
 * 
 *     def parse(self, parse_until=None):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_qualname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u_tokens_2;
  __pyx_t_4[3] = __pyx_t_3;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":651
 *         self.origin = origin
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s tokens=%r>" % (self.__class__.__qualname__, self.tokens)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":654
 *         return "<%s tokens=%r>" % (self.__class__.__qualname__, self.tokens)
 * 
 *     def parse(self, parse_until=None):             # <<<<<<<<<<<<<<
 *         """
 *         Iterate through the parser tokens and compiles each one into a node.
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_5parse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_6Parser_4parse, "\n        Iterate through the parser tokens and compiles each one into a node.\n\n        If parse_until is provided, parsing will stop once one of the\n        specified tokens has been reached. This is formatted as a list of\n        tokens, e.g. ['elif', 'else', 'endif']. If no matching token is\n        reached, raise an exception with the unclosed block tag details.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_5parse = {"parse", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_5parse, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_6Parser_4parse};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_5parse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_parse_until = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("parse (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_parse_until,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 654, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 654, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 654, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "parse", 0) < (0)) __PYX_ERR(0, 654, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, i); __PYX_ERR(0, 654, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 654, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 654, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_parse_until = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 654, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_4parse(__pyx_self, __pyx_v_self, __pyx_v_parse_until);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_4parse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parse_until) {
  struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_nodelist = NULL;
  PyObject *__pyx_v_token = NULL;
  PyObject *__pyx_v_token_type = NULL;
  PyObject *__pyx_v_filter_expression = NULL;
  PyObject *__pyx_v_e = NULL;
  struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_var_node = NULL;
  PyObject *__pyx_v__parts = NULL;
  PyObject *__pyx_v_command = NULL;
  PyObject *__pyx_v_compile_func = NULL;
  PyObject *__pyx_v_compiled_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_t_13;
  char const *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  int __pyx_t_21;
  char const *__pyx_t_22;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("parse", 0);
  __Pyx_INCREF(__pyx_v_parse_until);

  /* "django_templates_cythonized/base.py":663
 *         reached, raise an exception with the unclosed block tag details.
 *         """
 *         if parse_until is None:             # <<<<<<<<<<<<<<
 *             parse_until = []
 *         nodelist = NodeList()
*/
  __pyx_t_1 = (__pyx_v_parse_until == Py_None);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":664
 *         """
 *         if parse_until is None:
 *             parse_until = []             # <<<<<<<<<<<<<<
 *         nodelist = NodeList()
 *         while self.tokens:
*/
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF_SET(__pyx_v_parse_until, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":663
 *         reached, raise an exception with the unclosed block tag details.
 *         """
 *         if parse_until is None:             # <<<<<<<<<<<<<<
 *             parse_until = []
 *         nodelist = NodeList()
*/
  }

  /* "django_templates_cythonized/base.py":665
 *         if parse_until is None:
 *             parse_until = []
 *         nodelist = NodeList()             # <<<<<<<<<<<<<<
 *         while self.tokens:
 *             token = self.next_token()
*/
  __pyx_t_3 = NULL;
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 665, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_2);
  }
  __pyx_v_nodelist = ((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":666
 *             parse_until = []
 *         nodelist = NodeList()
 *         while self.tokens:             # <<<<<<<<<<<<<<
 *             token = self.next_token()
 *             # Use the raw values here for TokenType.* for a tiny performance
*/
  while (1) {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tokens); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 666, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 666, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (!__pyx_t_1) break;

    /* "django_templates_cythonized/base.py":667
 *         nodelist = NodeList()
 *         while self.tokens:
 *             token = self.next_token()             # <<<<<<<<<<<<<<
 *             # Use the raw values here for TokenType.* for a tiny performance
 *             # boost.
*/
    __pyx_t_3 = __pyx_v_self;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next_token, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_token, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":670
 *             # Use the raw values here for TokenType.* for a tiny performance
 *             # boost.
 *             token_type = token.token_type.value             # <<<<<<<<<<<<<<
 *             if token_type == 0:  # TokenType.TEXT
 *                 self.extend_nodelist(nodelist, TextNode(token.contents), token)
*/
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_token_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_token_type, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":671
 *             # boost.
 *             token_type = token.token_type.value
 *             if token_type == 0:  # TokenType.TEXT             # <<<<<<<<<<<<<<
 *                 self.extend_nodelist(nodelist, TextNode(token.contents), token)
 *             elif token_type == 1:  # TokenType.VAR
*/
    __pyx_t_1 = (__Pyx_PyLong_BoolEqObjC(__pyx_v_token_type, __pyx_mstate_global->__pyx_int_0, 0, 0)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 671, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":672
 *             token_type = token.token_type.value
 *             if token_type == 0:  # TokenType.TEXT
 *                 self.extend_nodelist(nodelist, TextNode(token.contents), token)             # <<<<<<<<<<<<<<
 *             elif token_type == 1:  # TokenType.VAR
 *                 if not token.contents:
*/
      __pyx_t_2 = __pyx_v_self;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_6 = NULL;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_contents); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 672, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_7};
        __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 672, __pyx_L1_error)
        __Pyx_GOTREF((PyObject *)__pyx_t_5);
      }
      __pyx_t_4 = 0;
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_2, ((PyObject *)__pyx_v_nodelist), ((PyObject *)__pyx_t_5), __pyx_v_token};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_extend_nodelist, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF((PyObject *)__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 672, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":671
 *             # boost.
 *             token_type = token.token_type.value
 *             if token_type == 0:  # TokenType.TEXT             # <<<<<<<<<<<<<<
 *                 self.extend_nodelist(nodelist, TextNode(token.contents), token)
 *             elif token_type == 1:  # TokenType.VAR
*/
      goto __pyx_L6;
    }

    /* "django_templates_cythonized/base.py":673
 *             if token_type == 0:  # TokenType.TEXT
 *                 self.extend_nodelist(nodelist, TextNode(token.contents), token)
 *             elif token_type == 1:  # TokenType.VAR             # <<<<<<<<<<<<<<
 *                 if not token.contents:
 *                     raise self.error(token, "Empty variable tag on line %d" % token.lineno)
*/
    __pyx_t_1 = (__Pyx_PyLong_BoolEqObjC(__pyx_v_token_type, __pyx_mstate_global->__pyx_int_1, 1, 0)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 673, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":674
 *                 self.extend_nodelist(nodelist, TextNode(token.contents), token)
 *             elif token_type == 1:  # TokenType.VAR
 *                 if not token.contents:             # <<<<<<<<<<<<<<
 *                     raise self.error(token, "Empty variable tag on line %d" % token.lineno)
 *                 try:
*/
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_contents); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 674, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 674, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_8 = (!__pyx_t_1);
      if (unlikely(__pyx_t_8)) {

        /* "django_templates_cythonized/base.py":675
 *             elif token_type == 1:  # TokenType.VAR
 *                 if not token.contents:
 *                     raise self.error(token, "Empty variable tag on line %d" % token.lineno)             # <<<<<<<<<<<<<<
 *                 try:
 *                     filter_expression = self.compile_filter(token.contents)
*/
        __pyx_t_5 = __pyx_v_self;
        __Pyx_INCREF(__pyx_t_5);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_lineno); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 675, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_7 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Empty_variable_tag_on_line_d, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 675, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_4 = 0;
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_v_token, __pyx_t_7};
          __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_error, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 675, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_Raise(__pyx_t_3, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __PYX_ERR(0, 675, __pyx_L1_error)

        /* "django_templates_cythonized/base.py":674
 *                 self.extend_nodelist(nodelist, TextNode(token.contents), token)
 *             elif token_type == 1:  # TokenType.VAR
 *                 if not token.contents:             # <<<<<<<<<<<<<<
 *                     raise self.error(token, "Empty variable tag on line %d" % token.lineno)
 *                 try:
*/
      }

      /* "django_templates_cythonized/base.py":676
 *                 if not token.contents:
 *                     raise self.error(token, "Empty variable tag on line %d" % token.lineno)
 *                 try:             # <<<<<<<<<<<<<<
 *                     filter_expression = self.compile_filter(token.contents)
 *                 except TemplateSyntaxError as e:
*/
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_11);
        /*try:*/ {

          /* "django_templates_cythonized/base.py":677
 *                     raise self.error(token, "Empty variable tag on line %d" % token.lineno)
 *                 try:
 *                     filter_expression = self.compile_filter(token.contents)             # <<<<<<<<<<<<<<
 *                 except TemplateSyntaxError as e:
 *                     raise self.error(token, e)
*/
          __pyx_t_7 = __pyx_v_self;
          __Pyx_INCREF(__pyx_t_7);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_contents); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 677, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
            __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_compile_filter, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 677, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_3);
          }
          __Pyx_XDECREF_SET(__pyx_v_filter_expression, __pyx_t_3);
          __pyx_t_3 = 0;

          /* "django_templates_cythonized/base.py":676
 *                 if not token.contents:
 *                     raise self.error(token, "Empty variable tag on line %d" % token.lineno)
 *                 try:             # <<<<<<<<<<<<<<
 *                     filter_expression = self.compile_filter(token.contents)
 *                 except TemplateSyntaxError as e:
*/
        }
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        goto __pyx_L15_try_end;
        __pyx_L8_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "django_templates_cythonized/base.py":678
 *                 try:
 *                     filter_expression = self.compile_filter(token.contents)
 *                 except TemplateSyntaxError as e:             # <<<<<<<<<<<<<<
 *                     raise self.error(token, e)
 *                 var_node = VariableNode(filter_expression)
*/
        __Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_5, &__pyx_t_7);
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 678, __pyx_L10_except_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_12 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_2);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_ErrRestore(__pyx_t_3, __pyx_t_5, __pyx_t_7);
        __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_7 = 0;
        if (__pyx_t_12) {
          __Pyx_AddTraceback("django_templates_cythonized.base.Parser.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_5, &__pyx_t_3) < 0) __PYX_ERR(0, 678, __pyx_L10_except_error)
          __Pyx_XGOTREF(__pyx_t_7);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_5);
          __pyx_v_e = __pyx_t_5;
          /*try:*/ {

            /* "django_templates_cythonized/base.py":679
 *                     filter_expression = self.compile_filter(token.contents)
 *                 except TemplateSyntaxError as e:
 *                     raise self.error(token, e)             # <<<<<<<<<<<<<<
 *                 var_node = VariableNode(filter_expression)
 *                 self.extend_nodelist(nodelist, var_node, token)
*/
            __pyx_t_6 = __pyx_v_self;
            __Pyx_INCREF(__pyx_t_6);
            __pyx_t_4 = 0;
            {
              PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_token, __pyx_v_e};
              __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_error, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 679, __pyx_L21_error)
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_Raise(__pyx_t_2, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __PYX_ERR(0, 679, __pyx_L21_error)
          }

          /* "django_templates_cythonized/base.py":678
 *                 try:
 *                     filter_expression = self.compile_filter(token.contents)
 *                 except TemplateSyntaxError as e:             # <<<<<<<<<<<<<<
 *                     raise self.error(token, e)
 *                 var_node = VariableNode(filter_expression)
*/
          /*finally:*/ {
            __pyx_L21_error:;
            /*exception exit:*/{
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
               __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
              if ( unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
              __Pyx_XGOTREF(__pyx_t_15);
              __Pyx_XGOTREF(__pyx_t_16);
              __Pyx_XGOTREF(__pyx_t_17);
              __Pyx_XGOTREF(__pyx_t_18);
              __Pyx_XGOTREF(__pyx_t_19);
              __Pyx_XGOTREF(__pyx_t_20);
              __pyx_t_12 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename;
              {
                __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
              }
              __Pyx_XGIVEREF(__pyx_t_18);
              __Pyx_XGIVEREF(__pyx_t_19);
              __Pyx_XGIVEREF(__pyx_t_20);
              __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
              __Pyx_XGIVEREF(__pyx_t_15);
              __Pyx_XGIVEREF(__pyx_t_16);
              __Pyx_XGIVEREF(__pyx_t_17);
              __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17);
              __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
              __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14;
              goto __pyx_L10_except_error;
            }
          }
        }
        goto __pyx_L10_except_error;

        /* "django_templates_cythonized/base.py":676
 *                 if not token.contents:
 *                     raise self.error(token, "Empty variable tag on line %d" % token.lineno)
 *                 try:             # <<<<<<<<<<<<<<
 *                     filter_expression = self.compile_filter(token.contents)
 *                 except TemplateSyntaxError as e:
*/
        __pyx_L10_except_error:;
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
        goto __pyx_L1_error;
        __pyx_L15_try_end:;
      }

      /* "django_templates_cythonized/base.py":680
 *                 except TemplateSyntaxError as e:
 *                     raise self.error(token, e)
 *                 var_node = VariableNode(filter_expression)             # <<<<<<<<<<<<<<
 *                 self.extend_nodelist(nodelist, var_node, token)
 *             elif token_type == 2:  # TokenType.BLOCK
*/
      __pyx_t_5 = NULL;
      __pyx_t_4 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_filter_expression};
        __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 680, __pyx_L1_error)
        __Pyx_GOTREF((PyObject *)__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_var_node, ((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":681
 *                     raise self.error(token, e)
 *                 var_node = VariableNode(filter_expression)
 *                 self.extend_nodelist(nodelist, var_node, token)             # <<<<<<<<<<<<<<
 *             elif token_type == 2:  # TokenType.BLOCK
 *                 _parts = token.contents.split()
*/
      __pyx_t_5 = __pyx_v_self;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_4 = 0;
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_5, ((PyObject *)__pyx_v_nodelist), ((PyObject *)__pyx_v_var_node), __pyx_v_token};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_extend_nodelist, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 681, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":673
 *             if token_type == 0:  # TokenType.TEXT
 *                 self.extend_nodelist(nodelist, TextNode(token.contents), token)
 *             elif token_type == 1:  # TokenType.VAR             # <<<<<<<<<<<<<<
 *                 if not token.contents:
 *                     raise self.error(token, "Empty variable tag on line %d" % token.lineno)
*/
      goto __pyx_L6;
    }

    /* "django_templates_cythonized/base.py":682
 *                 var_node = VariableNode(filter_expression)
 *                 self.extend_nodelist(nodelist, var_node, token)
 *             elif token_type == 2:  # TokenType.BLOCK             # <<<<<<<<<<<<<<
 *                 _parts = token.contents.split()
 *                 if not _parts:
*/
    __pyx_t_8 = (__Pyx_PyLong_BoolEqObjC(__pyx_v_token_type, __pyx_mstate_global->__pyx_int_2, 2, 0)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 682, __pyx_L1_error)
    if (__pyx_t_8) {

      /* "django_templates_cythonized/base.py":683
 *                 self.extend_nodelist(nodelist, var_node, token)
 *             elif token_type == 2:  # TokenType.BLOCK
 *                 _parts = token.contents.split()             # <<<<<<<<<<<<<<
 *                 if not _parts:
 *                     raise self.error(token, "Empty block tag on line %d" % token.lineno)
*/
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_contents); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 683, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __pyx_t_7;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_4 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_split, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 683, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v__parts, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":684
 *             elif token_type == 2:  # TokenType.BLOCK
 *                 _parts = token.contents.split()
 *                 if not _parts:             # <<<<<<<<<<<<<<
 *                     raise self.error(token, "Empty block tag on line %d" % token.lineno)
 *                 command = _parts[0]
*/
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v__parts); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 684, __pyx_L1_error)
      __pyx_t_1 = (!__pyx_t_8);
      if (unlikely(__pyx_t_1)) {

        /* "django_templates_cythonized/base.py":685
 *                 _parts = token.contents.split()
 *                 if not _parts:
 *                     raise self.error(token, "Empty block tag on line %d" % token.lineno)             # <<<<<<<<<<<<<<
 *                 command = _parts[0]
 *                 if command in parse_until:
*/
        __pyx_t_7 = __pyx_v_self;
        __Pyx_INCREF(__pyx_t_7);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_lineno); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 685, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Empty_block_tag_on_line_d, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 685, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_4 = 0;
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_v_token, __pyx_t_2};
          __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_error, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 685, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_Raise(__pyx_t_3, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __PYX_ERR(0, 685, __pyx_L1_error)

        /* "django_templates_cythonized/base.py":684
 *             elif token_type == 2:  # TokenType.BLOCK
 *                 _parts = token.contents.split()
 *                 if not _parts:             # <<<<<<<<<<<<<<
 *                     raise self.error(token, "Empty block tag on line %d" % token.lineno)
 *                 command = _parts[0]
*/
      }

      /* "django_templates_cythonized/base.py":686
 *                 if not _parts:
 *                     raise self.error(token, "Empty block tag on line %d" % token.lineno)
 *                 command = _parts[0]             # <<<<<<<<<<<<<<
 *                 if command in parse_until:
 *                     # A matching token has been reached. Return control to
*/
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v__parts, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 686, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_command, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":687
 *                     raise self.error(token, "Empty block tag on line %d" % token.lineno)
 *                 command = _parts[0]
 *                 if command in parse_until:             # <<<<<<<<<<<<<<
 *                     # A matching token has been reached. Return control to
 *                     # the caller. Put the token back on the token list so the
*/
      __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_command, __pyx_v_parse_until, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 687, __pyx_L1_error)
      if (__pyx_t_1) {

        /* "django_templates_cythonized/base.py":691
 *                     # the caller. Put the token back on the token list so the
 *                     # caller knows where it terminated.
 *                     self.prepend_token(token)             # <<<<<<<<<<<<<<
 *                     return nodelist
 *                 # Add the token to the command stack. This is used for error
*/
        __pyx_t_2 = __pyx_v_self;
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_4 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_token};
          __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_prepend_token, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 691, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "django_templates_cythonized/base.py":692
 *                     # caller knows where it terminated.
 *                     self.prepend_token(token)
 *                     return nodelist             # <<<<<<<<<<<<<<
 *                 # Add the token to the command stack. This is used for error
 *                 # messages if further parsing fails due to an unclosed block
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF((PyObject *)__pyx_v_nodelist);
        __pyx_r = ((PyObject *)__pyx_v_nodelist);
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":687
 *                     raise self.error(token, "Empty block tag on line %d" % token.lineno)
 *                 command = _parts[0]
 *                 if command in parse_until:             # <<<<<<<<<<<<<<
 *                     # A matching token has been reached. Return control to
 *                     # the caller. Put the token back on the token list so the
*/
      }

      /* "django_templates_cythonized/base.py":696
 *                 # messages if further parsing fails due to an unclosed block
 *                 # tag.
 *                 self.command_stack.append((command, token))             # <<<<<<<<<<<<<<
 *                 # Get the tag callback function from the ones registered with
 *                 # the parser.
*/
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_command_stack); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_command);
      __Pyx_GIVEREF(__pyx_v_command);
      if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_command) != (0)) __PYX_ERR(0, 696, __pyx_L1_error);
      __Pyx_INCREF(__pyx_v_token);
      __Pyx_GIVEREF(__pyx_v_token);
      if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_token) != (0)) __PYX_ERR(0, 696, __pyx_L1_error);
      __pyx_t_21 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_t_2); if (unlikely(__pyx_t_21 == ((int)-1))) __PYX_ERR(0, 696, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":699
 *                 # Get the tag callback function from the ones registered with
 *                 # the parser.
 *                 try:             # <<<<<<<<<<<<<<
 *                     compile_func = self.tags[command]
 *                 except KeyError:
*/
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "django_templates_cythonized/base.py":700
 *                 # the parser.
 *                 try:
 *                     compile_func = self.tags[command]             # <<<<<<<<<<<<<<
 *                 except KeyError:
 *                     self.invalid_block_tag(token, command, parse_until)
*/
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tags); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 700, __pyx_L29_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_command); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 700, __pyx_L29_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF_SET(__pyx_v_compile_func, __pyx_t_3);
          __pyx_t_3 = 0;

          /* "django_templates_cythonized/base.py":699
 *                 # Get the tag callback function from the ones registered with
 *                 # the parser.
 *                 try:             # <<<<<<<<<<<<<<
 *                     compile_func = self.tags[command]
 *                 except KeyError:
*/
        }
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L36_try_end;
        __pyx_L29_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "django_templates_cythonized/base.py":701
 *                 try:
 *                     compile_func = self.tags[command]
 *                 except KeyError:             # <<<<<<<<<<<<<<
 *                     self.invalid_block_tag(token, command, parse_until)
 *                 # Compile the callback into a node object and add it to
*/
        __pyx_t_13 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
        if (__pyx_t_13) {
          __Pyx_AddTraceback("django_templates_cythonized.base.Parser.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(0, 701, __pyx_L31_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_7);

          /* "django_templates_cythonized/base.py":702
 *                     compile_func = self.tags[command]
 *                 except KeyError:
 *                     self.invalid_block_tag(token, command, parse_until)             # <<<<<<<<<<<<<<
 *                 # Compile the callback into a node object and add it to
 *                 # the node list.
*/
          __pyx_t_6 = __pyx_v_self;
          __Pyx_INCREF(__pyx_t_6);
          __pyx_t_4 = 0;
          {
            PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_v_token, __pyx_v_command, __pyx_v_parse_until};
            __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_invalid_block_tag, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L31_except_error)
            __Pyx_GOTREF(__pyx_t_5);
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          goto __pyx_L30_exception_handled;
        }
        goto __pyx_L31_except_error;

        /* "django_templates_cythonized/base.py":699
 *                 # Get the tag callback function from the ones registered with
 *                 # the parser.
 *                 try:             # <<<<<<<<<<<<<<
 *                     compile_func = self.tags[command]
 *                 except KeyError:
*/
        __pyx_L31_except_error:;
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L30_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9);
        __pyx_L36_try_end:;
      }

      /* "django_templates_cythonized/base.py":705
 *                 # Compile the callback into a node object and add it to
 *                 # the node list.
 *                 try:             # <<<<<<<<<<<<<<
 *                     compiled_result = compile_func(self, token)
 *                 except Exception as e:
*/
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_11);
        /*try:*/ {

          /* "django_templates_cythonized/base.py":706
 *                 # the node list.
 *                 try:
 *                     compiled_result = compile_func(self, token)             # <<<<<<<<<<<<<<
 *                 except Exception as e:
 *                     raise self.error(token, e)
*/
          __pyx_t_2 = NULL;
          if (unlikely(!__pyx_v_compile_func)) { __Pyx_RaiseUnboundLocalError("compile_func"); __PYX_ERR(0, 706, __pyx_L39_error) }
          __Pyx_INCREF(__pyx_v_compile_func);
          __pyx_t_3 = __pyx_v_compile_func; 
          __pyx_t_4 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
            assert(__pyx_t_2);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
            __pyx_t_4 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_self, __pyx_v_token};
            __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 706, __pyx_L39_error)
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_compiled_result, __pyx_t_7);
          __pyx_t_7 = 0;

          /* "django_templates_cythonized/base.py":705
 *                 # Compile the callback into a node object and add it to
 *                 # the node list.
 *                 try:             # <<<<<<<<<<<<<<
 *                     compiled_result = compile_func(self, token)
 *                 except Exception as e:
*/
        }
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        goto __pyx_L46_try_end;
        __pyx_L39_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "django_templates_cythonized/base.py":707
 *                 try:
 *                     compiled_result = compile_func(self, token)
 *                 except Exception as e:             # <<<<<<<<<<<<<<
 *                     raise self.error(token, e)
 *                 self.extend_nodelist(nodelist, compiled_result, token)
*/
        __pyx_t_13 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
        if (__pyx_t_13) {
          __Pyx_AddTraceback("django_templates_cythonized.base.Parser.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(0, 707, __pyx_L41_except_error)
          __Pyx_XGOTREF(__pyx_t_7);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __pyx_v_e = __pyx_t_3;
          /*try:*/ {

            /* "django_templates_cythonized/base.py":708
 *                     compiled_result = compile_func(self, token)
 *                 except Exception as e:
 *                     raise self.error(token, e)             # <<<<<<<<<<<<<<
 *                 self.extend_nodelist(nodelist, compiled_result, token)
 *                 # Compile success. Remove the token from the command stack.
*/
            __pyx_t_6 = __pyx_v_self;
            __Pyx_INCREF(__pyx_t_6);
            __pyx_t_4 = 0;
            {
              PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_token, __pyx_v_e};
              __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_error, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L52_error)
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_Raise(__pyx_t_5, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __PYX_ERR(0, 708, __pyx_L52_error)
          }

          /* "django_templates_cythonized/base.py":707
 *                 try:
 *                     compiled_result = compile_func(self, token)
 *                 except Exception as e:             # <<<<<<<<<<<<<<
 *                     raise self.error(token, e)
 *                 self.extend_nodelist(nodelist, compiled_result, token)
*/
          /*finally:*/ {
            __pyx_L52_error:;
            /*exception exit:*/{
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0;
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
               __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15);
              if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18);
              __Pyx_XGOTREF(__pyx_t_20);
              __Pyx_XGOTREF(__pyx_t_19);
              __Pyx_XGOTREF(__pyx_t_18);
              __Pyx_XGOTREF(__pyx_t_17);
              __Pyx_XGOTREF(__pyx_t_16);
              __Pyx_XGOTREF(__pyx_t_15);
              __pyx_t_13 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_22 = __pyx_filename;
              {
                __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
              }
              __Pyx_XGIVEREF(__pyx_t_17);
              __Pyx_XGIVEREF(__pyx_t_16);
              __Pyx_XGIVEREF(__pyx_t_15);
              __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_16, __pyx_t_15);
              __Pyx_XGIVEREF(__pyx_t_20);
              __Pyx_XGIVEREF(__pyx_t_19);
              __Pyx_XGIVEREF(__pyx_t_18);
              __Pyx_ErrRestore(__pyx_t_20, __pyx_t_19, __pyx_t_18);
              __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0;
              __pyx_lineno = __pyx_t_13; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_22;
              goto __pyx_L41_except_error;
            }
          }
        }
        goto __pyx_L41_except_error;

        /* "django_templates_cythonized/base.py":705
 *                 # Compile the callback into a node object and add it to
 *                 # the node list.
 *                 try:             # <<<<<<<<<<<<<<
 *                     compiled_result = compile_func(self, token)
 *                 except Exception as e:
*/
        __pyx_L41_except_error:;
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
        goto __pyx_L1_error;
        __pyx_L46_try_end:;
      }

      /* "django_templates_cythonized/base.py":709
 *                 except Exception as e:
 *                     raise self.error(token, e)
 *                 self.extend_nodelist(nodelist, compiled_result, token)             # <<<<<<<<<<<<<<
 *                 # Compile success. Remove the token from the command stack.
 *                 self.command_stack.pop()
*/
      __pyx_t_3 = __pyx_v_self;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_4 = 0;
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_v_nodelist), __pyx_v_compiled_result, __pyx_v_token};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_extend_nodelist, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 709, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":711
 *                 self.extend_nodelist(nodelist, compiled_result, token)
 *                 # Compile success. Remove the token from the command stack.
 *                 self.command_stack.pop()             # <<<<<<<<<<<<<<
 *         if parse_until:
 *             self.unclosed_block_tag(parse_until)
*/
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_command_stack); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_Pop(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":682
 *                 var_node = VariableNode(filter_expression)
 *                 self.extend_nodelist(nodelist, var_node, token)
 *             elif token_type == 2:  # TokenType.BLOCK             # <<<<<<<<<<<<<<
 *                 _parts = token.contents.split()
 *                 if not _parts:
*/
    }
    __pyx_L6:;
  }

  /* "django_templates_cythonized/base.py":712
 *                 # Compile success. Remove the token from the command stack.
 *                 self.command_stack.pop()
 *         if parse_until:             # <<<<<<<<<<<<<<
 *             self.unclosed_block_tag(parse_until)
 *         return nodelist
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_parse_until); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 712, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":713
 *                 self.command_stack.pop()
 *         if parse_until:
 *             self.unclosed_block_tag(parse_until)             # <<<<<<<<<<<<<<
 *         return nodelist
 * 
*/
    __pyx_t_2 = __pyx_v_self;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_parse_until};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_unclosed_block_tag, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 713, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":712
 *                 # Compile success. Remove the token from the command stack.
 *                 self.command_stack.pop()
 *         if parse_until:             # <<<<<<<<<<<<<<
 *             self.unclosed_block_tag(parse_until)
 *         return nodelist
*/
  }

  /* "django_templates_cythonized/base.py":714
 *         if parse_until:
 *             self.unclosed_block_tag(parse_until)
 *         return nodelist             # <<<<<<<<<<<<<<
 * 
 *     def skip_past(self, endtag):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_nodelist);
  __pyx_r = ((PyObject *)__pyx_v_nodelist);
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":654
 *         return "<%s tokens=%r>" % (self.__class__.__qualname__, self.tokens)
 * 
 *     def parse(self, parse_until=None):             # <<<<<<<<<<<<<<
 *         """
 *         Iterate through the parser tokens and compiles each one into a node.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_nodelist);
  __Pyx_XDECREF(__pyx_v_token);
  __Pyx_XDECREF(__pyx_v_token_type);
  __Pyx_XDECREF(__pyx_v_filter_expression);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XDECREF((PyObject *)__pyx_v_var_node);
  __Pyx_XDECREF(__pyx_v__parts);
  __Pyx_XDECREF(__pyx_v_command);
  __Pyx_XDECREF(__pyx_v_compile_func);
  __Pyx_XDECREF(__pyx_v_compiled_result);
  __Pyx_XDECREF(__pyx_v_parse_until);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":716
 *         return nodelist
 * 
 *     def skip_past(self, endtag):             # <<<<<<<<<<<<<<
 *         while self.tokens:
 *             token = self.next_token()
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_7skip_past(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_7skip_past = {"skip_past", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_7skip_past, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_7skip_past(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_endtag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("skip_past (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_endtag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 716, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 716, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 716, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "skip_past", 0) < (0)) __PYX_ERR(0, 716, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("skip_past", 1, 2, 2, i); __PYX_ERR(0, 716, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 716, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 716, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_endtag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("skip_past", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 716, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.skip_past", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_6skip_past(__pyx_self, __pyx_v_self, __pyx_v_endtag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_6skip_past(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_endtag) {
  PyObject *__pyx_v_token = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("skip_past", 0);

  /* "django_templates_cythonized/base.py":717
 * 
 *     def skip_past(self, endtag):
 *         while self.tokens:             # <<<<<<<<<<<<<<
 *             token = self.next_token()
 *             if token.token_type == TokenType.BLOCK and token.contents == endtag:
*/
  while (1) {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tokens); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 717, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_2) break;

    /* "django_templates_cythonized/base.py":718
 *     def skip_past(self, endtag):
 *         while self.tokens:
 *             token = self.next_token()             # <<<<<<<<<<<<<<
 *             if token.token_type == TokenType.BLOCK and token.contents == endtag:
 *                 return
*/
    __pyx_t_3 = __pyx_v_self;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_next_token, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_token, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":719
 *         while self.tokens:
 *             token = self.next_token()
 *             if token.token_type == TokenType.BLOCK and token.contents == endtag:             # <<<<<<<<<<<<<<
 *                 return
 *         self.unclosed_block_tag([endtag])
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_token_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TokenType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BLOCK); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_6) {
    } else {
      __pyx_t_2 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_contents); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_v_endtag, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_2 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_2) {

      /* "django_templates_cythonized/base.py":720
 *             token = self.next_token()
 *             if token.token_type == TokenType.BLOCK and token.contents == endtag:
 *                 return             # <<<<<<<<<<<<<<
 *         self.unclosed_block_tag([endtag])
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":719
 *         while self.tokens:
 *             token = self.next_token()
 *             if token.token_type == TokenType.BLOCK and token.contents == endtag:             # <<<<<<<<<<<<<<
 *                 return
 *         self.unclosed_block_tag([endtag])
*/
    }
  }

  /* "django_templates_cythonized/base.py":721
 *             if token.token_type == TokenType.BLOCK and token.contents == endtag:
 *                 return
 *         self.unclosed_block_tag([endtag])             # <<<<<<<<<<<<<<
 * 
 *     def extend_nodelist(self, nodelist, node, token):
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_endtag);
  __Pyx_GIVEREF(__pyx_v_endtag);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_endtag) != (0)) __PYX_ERR(0, 721, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_unclosed_block_tag, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":716
 *         return nodelist
 * 
 *     def skip_past(self, endtag):             # <<<<<<<<<<<<<<
 *         while self.tokens:
 *             token = self.next_token()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.skip_past", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_token);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":723
 *         self.unclosed_block_tag([endtag])
 * 
 *     def extend_nodelist(self, nodelist, node, token):             # <<<<<<<<<<<<<<
 *         # Check that non-text nodes don't appear before an extends tag.
 *         if node.must_be_first and nodelist.contains_nontext:
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_9extend_nodelist(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_9extend_nodelist = {"extend_nodelist", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_9extend_nodelist, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_9extend_nodelist(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_nodelist = 0;
  PyObject *__pyx_v_node = 0;
  PyObject *__pyx_v_token = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("extend_nodelist (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_nodelist,&__pyx_mstate_global->__pyx_n_u_node,&__pyx_mstate_global->__pyx_n_u_token,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 723, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 723, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 723, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 723, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 723, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "extend_nodelist", 0) < (0)) __PYX_ERR(0, 723, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("extend_nodelist", 1, 4, 4, i); __PYX_ERR(0, 723, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 723, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 723, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 723, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 723, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_nodelist = values[1];
    __pyx_v_node = values[2];
    __pyx_v_token = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("extend_nodelist", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 723, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.extend_nodelist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_8extend_nodelist(__pyx_self, __pyx_v_self, __pyx_v_nodelist, __pyx_v_node, __pyx_v_token);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_8extend_nodelist(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_nodelist, PyObject *__pyx_v_node, PyObject *__pyx_v_token) {
  PyObject *__pyx_v_origin = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7[5];
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("extend_nodelist", 0);

  /* "django_templates_cythonized/base.py":725
 *     def extend_nodelist(self, nodelist, node, token):
 *         # Check that non-text nodes don't appear before an extends tag.
 *         if node.must_be_first and nodelist.contains_nontext:             # <<<<<<<<<<<<<<
 *             if self.origin.template_name:
 *                 origin = repr(self.origin.template_name)
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_mstate_global->__pyx_n_u_must_be_first); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 725, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_nodelist, __pyx_mstate_global->__pyx_n_u_contains_nontext); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 725, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":726
 *         # Check that non-text nodes don't appear before an extends tag.
 *         if node.must_be_first and nodelist.contains_nontext:
 *             if self.origin.template_name:             # <<<<<<<<<<<<<<
 *                 origin = repr(self.origin.template_name)
 *             else:
*/
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_origin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_template_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 726, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":727
 *         if node.must_be_first and nodelist.contains_nontext:
 *             if self.origin.template_name:
 *                 origin = repr(self.origin.template_name)             # <<<<<<<<<<<<<<
 *             else:
 *                 origin = "the template"
*/
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_origin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 727, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_template_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 727, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Repr(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 727, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_v_origin = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":726
 *         # Check that non-text nodes don't appear before an extends tag.
 *         if node.must_be_first and nodelist.contains_nontext:
 *             if self.origin.template_name:             # <<<<<<<<<<<<<<
 *                 origin = repr(self.origin.template_name)
 *             else:
*/
      goto __pyx_L6;
    }

    /* "django_templates_cythonized/base.py":729
 *                 origin = repr(self.origin.template_name)
 *             else:
 *                 origin = "the template"             # <<<<<<<<<<<<<<
 *             raise self.error(
 *                 token,
*/
    /*else*/ {
      __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_the_template);
      __pyx_v_origin = __pyx_mstate_global->__pyx_kp_u_the_template;
    }
    __pyx_L6:;

    /* "django_templates_cythonized/base.py":730
 *             else:
 *                 origin = "the template"
 *             raise self.error(             # <<<<<<<<<<<<<<
 *                 token,
 *                 "{%% %s %%} must be the first tag in %s." % (token.contents, origin),
*/
    __pyx_t_2 = __pyx_v_self;
    __Pyx_INCREF(__pyx_t_2);

    /* "django_templates_cythonized/base.py":732
 *             raise self.error(
 *                 token,
 *                 "{%% %s %%} must be the first tag in %s." % (token.contents, origin),             # <<<<<<<<<<<<<<
 *             )
 *         if not isinstance(node, TextNode):
*/
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_contents); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_5), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_origin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u__14;
    __pyx_t_7[1] = __pyx_t_6;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u_must_be_the_first_tag_in;
    __pyx_t_7[3] = __pyx_t_5;
    __pyx_t_7[4] = __pyx_mstate_global->__pyx_kp_u__3;
    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 5, 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 29 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
    if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_9 = 0;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_token, __pyx_t_8};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_error, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 730, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 730, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":725
 *     def extend_nodelist(self, nodelist, node, token):
 *         # Check that non-text nodes don't appear before an extends tag.
 *         if node.must_be_first and nodelist.contains_nontext:             # <<<<<<<<<<<<<<
 *             if self.origin.template_name:
 *                 origin = repr(self.origin.template_name)
*/
  }

  /* "django_templates_cythonized/base.py":734
 *                 "{%% %s %%} must be the first tag in %s." % (token.contents, origin),
 *             )
 *         if not isinstance(node, TextNode):             # <<<<<<<<<<<<<<
 *             nodelist.contains_nontext = True
 *         # Set origin and token here since we can't modify the node __init__()
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_node, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode); 
  __pyx_t_3 = (!__pyx_t_1);
  if (__pyx_t_3) {

    /* "django_templates_cythonized/base.py":735
 *             )
 *         if not isinstance(node, TextNode):
 *             nodelist.contains_nontext = True             # <<<<<<<<<<<<<<
 *         # Set origin and token here since we can't modify the node __init__()
 *         # method.
*/
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_nodelist, __pyx_mstate_global->__pyx_n_u_contains_nontext, Py_True) < (0)) __PYX_ERR(0, 735, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":734
 *                 "{%% %s %%} must be the first tag in %s." % (token.contents, origin),
 *             )
 *         if not isinstance(node, TextNode):             # <<<<<<<<<<<<<<
 *             nodelist.contains_nontext = True
 *         # Set origin and token here since we can't modify the node __init__()
*/
  }

  /* "django_templates_cythonized/base.py":738
 *         # Set origin and token here since we can't modify the node __init__()
 *         # method.
 *         node.token = token             # <<<<<<<<<<<<<<
 *         node.origin = self.origin
 *         nodelist.append(node)
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_mstate_global->__pyx_n_u_token, __pyx_v_token) < (0)) __PYX_ERR(0, 738, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":739
 *         # method.
 *         node.token = token
 *         node.origin = self.origin             # <<<<<<<<<<<<<<
 *         nodelist.append(node)
 * 
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_origin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_mstate_global->__pyx_n_u_origin, __pyx_t_4) < (0)) __PYX_ERR(0, 739, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "django_templates_cythonized/base.py":740
 *         node.token = token
 *         node.origin = self.origin
 *         nodelist.append(node)             # <<<<<<<<<<<<<<
 * 
 *     def error(self, token, e):
*/
  __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_nodelist, __pyx_v_node); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 740, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":723
 *         self.unclosed_block_tag([endtag])
 * 
 *     def extend_nodelist(self, nodelist, node, token):             # <<<<<<<<<<<<<<
 *         # Check that non-text nodes don't appear before an extends tag.
 *         if node.must_be_first and nodelist.contains_nontext:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.extend_nodelist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_origin);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":742
 *         nodelist.append(node)
 * 
 *     def error(self, token, e):             # <<<<<<<<<<<<<<
 *         """
 *         Return an exception annotated with the originating token. Since the
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_11error(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_6Parser_10error, "\n        Return an exception annotated with the originating token. Since the\n        parser can be called recursively, check if a token is already set. This\n        ensures the innermost token is highlighted if an exception occurs,\n        e.g. a compile error within the body of an if statement.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_11error = {"error", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_11error, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_6Parser_10error};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_11error(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_token = 0;
  PyObject *__pyx_v_e = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("error (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_token,&__pyx_mstate_global->__pyx_n_u_e,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 742, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 742, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 742, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 742, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "error", 0) < (0)) __PYX_ERR(0, 742, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("error", 1, 3, 3, i); __PYX_ERR(0, 742, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 742, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 742, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 742, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_token = values[1];
    __pyx_v_e = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("error", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 742, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_10error(__pyx_self, __pyx_v_self, __pyx_v_token, __pyx_v_e);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_10error(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_token, PyObject *__pyx_v_e) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("error", 0);
  __Pyx_INCREF(__pyx_v_e);

  /* "django_templates_cythonized/base.py":749
 *         e.g. a compile error within the body of an if statement.
 *         """
 *         if not isinstance(e, Exception):             # <<<<<<<<<<<<<<
 *             e = TemplateSyntaxError(e)
 *         if not hasattr(e, "token"):
*/
  __pyx_t_1 = __Pyx_PyException_Check(__pyx_v_e); 
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "django_templates_cythonized/base.py":750
 *         """
 *         if not isinstance(e, Exception):
 *             e = TemplateSyntaxError(e)             # <<<<<<<<<<<<<<
 *         if not hasattr(e, "token"):
 *             e.token = token
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_e};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 750, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF_SET(__pyx_v_e, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":749
 *         e.g. a compile error within the body of an if statement.
 *         """
 *         if not isinstance(e, Exception):             # <<<<<<<<<<<<<<
 *             e = TemplateSyntaxError(e)
 *         if not hasattr(e, "token"):
*/
  }

  /* "django_templates_cythonized/base.py":751
 *         if not isinstance(e, Exception):
 *             e = TemplateSyntaxError(e)
 *         if not hasattr(e, "token"):             # <<<<<<<<<<<<<<
 *             e.token = token
 *         return e
*/
  __pyx_t_2 = __Pyx_HasAttr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_token); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 751, __pyx_L1_error)
  __pyx_t_1 = (!__pyx_t_2);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":752
 *             e = TemplateSyntaxError(e)
 *         if not hasattr(e, "token"):
 *             e.token = token             # <<<<<<<<<<<<<<
 *         return e
 * 
*/
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_token, __pyx_v_token) < (0)) __PYX_ERR(0, 752, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":751
 *         if not isinstance(e, Exception):
 *             e = TemplateSyntaxError(e)
 *         if not hasattr(e, "token"):             # <<<<<<<<<<<<<<
 *             e.token = token
 *         return e
*/
  }

  /* "django_templates_cythonized/base.py":753
 *         if not hasattr(e, "token"):
 *             e.token = token
 *         return e             # <<<<<<<<<<<<<<
 * 
 *     def invalid_block_tag(self, token, command, parse_until=None):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_e);
  __pyx_r = __pyx_v_e;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":742
 *         nodelist.append(node)
 * 
 *     def error(self, token, e):             # <<<<<<<<<<<<<<
 *         """
 *         Return an exception annotated with the originating token. Since the
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":755
 *         return e
 * 
 *     def invalid_block_tag(self, token, command, parse_until=None):             # <<<<<<<<<<<<<<
 *         if parse_until:
 *             raise self.error(
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_13invalid_block_tag(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_13invalid_block_tag = {"invalid_block_tag", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_13invalid_block_tag, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_13invalid_block_tag(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_token = 0;
  PyObject *__pyx_v_command = 0;
  PyObject *__pyx_v_parse_until = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invalid_block_tag (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_token,&__pyx_mstate_global->__pyx_n_u_command,&__pyx_mstate_global->__pyx_n_u_parse_until,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 755, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 755, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 755, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 755, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 755, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "invalid_block_tag", 0) < (0)) __PYX_ERR(0, 755, __pyx_L3_error)
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("invalid_block_tag", 0, 3, 4, i); __PYX_ERR(0, 755, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 755, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 755, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 755, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 755, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_token = values[1];
    __pyx_v_command = values[2];
    __pyx_v_parse_until = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("invalid_block_tag", 0, 3, 4, __pyx_nargs); __PYX_ERR(0, 755, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.invalid_block_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_12invalid_block_tag(__pyx_self, __pyx_v_self, __pyx_v_token, __pyx_v_command, __pyx_v_parse_until);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_12invalid_block_tag(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token, PyObject *__pyx_v_command, PyObject *__pyx_v_parse_until) {
  PyObject *__pyx_8genexpr1__pyx_v_p = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12[7];
  size_t __pyx_t_13;
  PyObject *__pyx_t_14[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("invalid_block_tag", 0);

  /* "django_templates_cythonized/base.py":756
 * 
 *     def invalid_block_tag(self, token, command, parse_until=None):
 *         if parse_until:             # <<<<<<<<<<<<<<
 *             raise self.error(
 *                 token,
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_parse_until); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 756, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "django_templates_cythonized/base.py":757
 *     def invalid_block_tag(self, token, command, parse_until=None):
 *         if parse_until:
 *             raise self.error(             # <<<<<<<<<<<<<<
 *                 token,
 *                 "Invalid block tag on line %d: '%s', expected %s. Did you "
*/
    __pyx_t_3 = __pyx_v_self;
    __Pyx_INCREF(__pyx_t_3);

    /* "django_templates_cythonized/base.py":762
 *                 "forget to register or load this tag?"
 *                 % (
 *                     token.lineno,             # <<<<<<<<<<<<<<
 *                     command,
 *                     get_text_list(["'%s'" % p for p in parse_until], "or"),
*/
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_lineno); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 762, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_Long(__pyx_t_4), __pyx_mstate_global->__pyx_n_u_d); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 762, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "django_templates_cythonized/base.py":763
 *                 % (
 *                     token.lineno,
 *                     command,             # <<<<<<<<<<<<<<
 *                     get_text_list(["'%s'" % p for p in parse_until], "or"),
 *                 ),
*/
    __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_command), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 763, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "django_templates_cythonized/base.py":764
 *                     token.lineno,
 *                     command,
 *                     get_text_list(["'%s'" % p for p in parse_until], "or"),             # <<<<<<<<<<<<<<
 *                 ),
 *             )
*/
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_text_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    { /* enter inner scope */
      __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 764, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (likely(PyList_CheckExact(__pyx_v_parse_until)) || PyTuple_CheckExact(__pyx_v_parse_until)) {
        __pyx_t_8 = __pyx_v_parse_until; __Pyx_INCREF(__pyx_t_8);
        __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_parse_until); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 764, __pyx_L6_error)
      }
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 764, __pyx_L6_error)
              #endif
              if (__pyx_t_9 >= __pyx_temp) break;
            }
            __pyx_t_11 = __Pyx_PyList_GetItemRefFast(__pyx_t_8, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference);
            ++__pyx_t_9;
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_8);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 764, __pyx_L6_error)
              #endif
              if (__pyx_t_9 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_11 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9));
            #else
            __pyx_t_11 = __Pyx_PySequence_ITEM(__pyx_t_8, __pyx_t_9);
            #endif
            ++__pyx_t_9;
          }
          if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 764, __pyx_L6_error)
        } else {
          __pyx_t_11 = __pyx_t_10(__pyx_t_8);
          if (unlikely(!__pyx_t_11)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 764, __pyx_L6_error)
              PyErr_Clear();
            }
            break;
          }
        }
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_p, __pyx_t_11);
        __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s, __pyx_8genexpr1__pyx_v_p); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 764, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_11);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_11))) __PYX_ERR(0, 764, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_p); __pyx_8genexpr1__pyx_v_p = 0;
      goto __pyx_L10_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_p); __pyx_8genexpr1__pyx_v_p = 0;
      goto __pyx_L1_error;
      __pyx_L10_exit_scope:;
    } /* exit inner scope */
    __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 764, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_or);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_or);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_n_u_or) != (0)) __PYX_ERR(0, 764, __pyx_L1_error);
    __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_7), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_block_tag_on_line;
    __pyx_t_12[1] = __pyx_t_5;
    __pyx_t_12[2] = __pyx_mstate_global->__pyx_kp_u__15;
    __pyx_t_12[3] = __pyx_t_4;
    __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_expected;
    __pyx_t_12[5] = __pyx_t_8;
    __pyx_t_12[6] = __pyx_mstate_global->__pyx_kp_u_Did_you_forget_to_register_or_l;

    /* "django_templates_cythonized/base.py":759
 *             raise self.error(
 *                 token,
 *                 "Invalid block tag on line %d: '%s', expected %s. Did you "             # <<<<<<<<<<<<<<
 *                 "forget to register or load this tag?"
 *                 % (
*/
    __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_12, 7, 26 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 46, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8));
    if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 759, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_13 = 0;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_token, __pyx_t_7};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_error, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 757, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 757, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":756
 * 
 *     def invalid_block_tag(self, token, command, parse_until=None):
 *         if parse_until:             # <<<<<<<<<<<<<<
 *             raise self.error(
 *                 token,
*/
  }

  /* "django_templates_cythonized/base.py":767
 *                 ),
 *             )
 *         raise self.error(             # <<<<<<<<<<<<<<
 *             token,
 *             "Invalid block tag on line %d: '%s'. Did you forget to register "
*/
  __pyx_t_7 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_7);

  /* "django_templates_cythonized/base.py":770
 *             token,
 *             "Invalid block tag on line %d: '%s'. Did you forget to register "
 *             "or load this tag?" % (token.lineno, command),             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_lineno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_Long(__pyx_t_3), __pyx_mstate_global->__pyx_n_u_d); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_command), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_block_tag_on_line;
  __pyx_t_14[1] = __pyx_t_8;
  __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u__15;
  __pyx_t_14[3] = __pyx_t_3;
  __pyx_t_14[4] = __pyx_mstate_global->__pyx_kp_u_Did_you_forget_to_register_or_l_2;

  /* "django_templates_cythonized/base.py":769
 *         raise self.error(
 *             token,
 *             "Invalid block tag on line %d: '%s'. Did you forget to register "             # <<<<<<<<<<<<<<
 *             "or load this tag?" % (token.lineno, command),
 *         )
*/
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_14, 5, 26 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 47, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_13 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_v_token, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_error, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(0, 767, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":755
 *         return e
 * 
 *     def invalid_block_tag(self, token, command, parse_until=None):             # <<<<<<<<<<<<<<
 *         if parse_until:
 *             raise self.error(
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.invalid_block_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_p);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":773
 *         )
 * 
 *     def unclosed_block_tag(self, parse_until):             # <<<<<<<<<<<<<<
 *         command, token = self.command_stack.pop()
 *         msg = "Unclosed tag on line %d: '%s'. Looking for one of: %s." % (
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_15unclosed_block_tag(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_15unclosed_block_tag = {"unclosed_block_tag", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_15unclosed_block_tag, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_15unclosed_block_tag(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_parse_until = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("unclosed_block_tag (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_parse_until,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 773, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 773, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 773, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "unclosed_block_tag", 0) < (0)) __PYX_ERR(0, 773, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("unclosed_block_tag", 1, 2, 2, i); __PYX_ERR(0, 773, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 773, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 773, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_parse_until = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("unclosed_block_tag", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 773, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.unclosed_block_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_14unclosed_block_tag(__pyx_self, __pyx_v_self, __pyx_v_parse_until);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_14unclosed_block_tag(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parse_until) {
  PyObject *__pyx_v_command = NULL;
  PyObject *__pyx_v_token = NULL;
  PyObject *__pyx_v_msg = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6[7];
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unclosed_block_tag", 0);

  /* "django_templates_cythonized/base.py":774
 * 
 *     def unclosed_block_tag(self, parse_until):
 *         command, token = self.command_stack.pop()             # <<<<<<<<<<<<<<
 *         msg = "Unclosed tag on line %d: '%s'. Looking for one of: %s." % (
 *             token.lineno,
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_command_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Pop(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
    PyObject* sequence = __pyx_t_2;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 774, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
      __Pyx_INCREF(__pyx_t_3);
    } else {
      __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 774, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_3);
    }
    #else
    __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4);
    index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < (0)) __PYX_ERR(0, 774, __pyx_L1_error)
    __pyx_t_5 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 774, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_command = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_v_token = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "django_templates_cythonized/base.py":776
 *         command, token = self.command_stack.pop()
 *         msg = "Unclosed tag on line %d: '%s'. Looking for one of: %s." % (
 *             token.lineno,             # <<<<<<<<<<<<<<
 *             command,
 *             ", ".join(parse_until),
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_token, __pyx_mstate_global->__pyx_n_u_lineno); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_Long(__pyx_t_2), __pyx_mstate_global->__pyx_n_u_d); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":777
 *         msg = "Unclosed tag on line %d: '%s'. Looking for one of: %s." % (
 *             token.lineno,
 *             command,             # <<<<<<<<<<<<<<
 *             ", ".join(parse_until),
 *         )
*/
  __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_command), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "django_templates_cythonized/base.py":778
 *             token.lineno,
 *             command,
 *             ", ".join(parse_until),             # <<<<<<<<<<<<<<
 *         )
 *         raise self.error(token, msg)
*/
  __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__9, __pyx_v_parse_until); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6[0] = __pyx_mstate_global->__pyx_kp_u_Unclosed_tag_on_line;
  __pyx_t_6[1] = __pyx_t_3;
  __pyx_t_6[2] = __pyx_mstate_global->__pyx_kp_u__15;
  __pyx_t_6[3] = __pyx_t_2;
  __pyx_t_6[4] = __pyx_mstate_global->__pyx_kp_u_Looking_for_one_of;
  __pyx_t_6[5] = __pyx_t_1;
  __pyx_t_6[6] = __pyx_mstate_global->__pyx_kp_u__3;

  /* "django_templates_cythonized/base.py":775
 *     def unclosed_block_tag(self, parse_until):
 *         command, token = self.command_stack.pop()
 *         msg = "Unclosed tag on line %d: '%s'. Looking for one of: %s." % (             # <<<<<<<<<<<<<<
 *             token.lineno,
 *             command,
*/
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_6, 7, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_msg = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "django_templates_cythonized/base.py":780
 *             ", ".join(parse_until),
 *         )
 *         raise self.error(token, msg)             # <<<<<<<<<<<<<<
 * 
 *     def next_token(self):
*/
  __pyx_t_1 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_7 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_token, __pyx_v_msg};
    __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_error, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  __Pyx_Raise(__pyx_t_4, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __PYX_ERR(0, 780, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":773
 *         )
 * 
 *     def unclosed_block_tag(self, parse_until):             # <<<<<<<<<<<<<<
 *         command, token = self.command_stack.pop()
 *         msg = "Unclosed tag on line %d: '%s'. Looking for one of: %s." % (
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.unclosed_block_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XDECREF(__pyx_v_command);
  __Pyx_XDECREF(__pyx_v_token);
  __Pyx_XDECREF(__pyx_v_msg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":782
 *         raise self.error(token, msg)
 * 
 *     def next_token(self):             # <<<<<<<<<<<<<<
 *         return self.tokens.pop()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_17next_token(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_17next_token = {"next_token", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_17next_token, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_17next_token(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next_token (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 782, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 782, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "next_token", 0) < (0)) __PYX_ERR(0, 782, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("next_token", 1, 1, 1, i); __PYX_ERR(0, 782, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 782, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next_token", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 782, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.next_token", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_16next_token(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_16next_token(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next_token", 0);

  /* "django_templates_cythonized/base.py":783
 * 
 *     def next_token(self):
 *         return self.tokens.pop()             # <<<<<<<<<<<<<<
 * 
 *     def prepend_token(self, token):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tokens); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Pop(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":782
 *         raise self.error(token, msg)
 * 
 *     def next_token(self):             # <<<<<<<<<<<<<<
 *         return self.tokens.pop()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.next_token", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":785
 *         return self.tokens.pop()
 * 
 *     def prepend_token(self, token):             # <<<<<<<<<<<<<<
 *         self.tokens.append(token)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_19prepend_token(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_19prepend_token = {"prepend_token", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_19prepend_token, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_19prepend_token(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_token = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("prepend_token (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_token,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 785, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 785, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 785, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "prepend_token", 0) < (0)) __PYX_ERR(0, 785, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("prepend_token", 1, 2, 2, i); __PYX_ERR(0, 785, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 785, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 785, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_token = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("prepend_token", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 785, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.prepend_token", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_18prepend_token(__pyx_self, __pyx_v_self, __pyx_v_token);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_18prepend_token(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("prepend_token", 0);

  /* "django_templates_cythonized/base.py":786
 * 
 *     def prepend_token(self, token):
 *         self.tokens.append(token)             # <<<<<<<<<<<<<<
 * 
 *     def delete_first_token(self):
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tokens); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_token); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 786, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":785
 *         return self.tokens.pop()
 * 
 *     def prepend_token(self, token):             # <<<<<<<<<<<<<<
 *         self.tokens.append(token)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.prepend_token", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":788
 *         self.tokens.append(token)
 * 
 *     def delete_first_token(self):             # <<<<<<<<<<<<<<
 *         del self.tokens[-1]
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_21delete_first_token(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_21delete_first_token = {"delete_first_token", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_21delete_first_token, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_21delete_first_token(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("delete_first_token (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 788, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 788, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "delete_first_token", 0) < (0)) __PYX_ERR(0, 788, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("delete_first_token", 1, 1, 1, i); __PYX_ERR(0, 788, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 788, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("delete_first_token", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 788, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.delete_first_token", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_20delete_first_token(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_20delete_first_token(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("delete_first_token", 0);

  /* "django_templates_cythonized/base.py":789
 * 
 *     def delete_first_token(self):
 *         del self.tokens[-1]             # <<<<<<<<<<<<<<
 * 
 *     def add_library(self, lib):
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tokens); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely((__Pyx_DelItemInt(__pyx_t_1, -1L, long, 1, __Pyx_PyLong_From_long, 0, 1, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":788
 *         self.tokens.append(token)
 * 
 *     def delete_first_token(self):             # <<<<<<<<<<<<<<
 *         del self.tokens[-1]
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.delete_first_token", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":791
 *         del self.tokens[-1]
 * 
 *     def add_library(self, lib):             # <<<<<<<<<<<<<<
 *         self.tags.update(lib.tags)
 *         self.filters.update(lib.filters)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_23add_library(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_23add_library = {"add_library", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_23add_library, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_23add_library(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_lib = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_library (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_lib,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 791, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 791, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 791, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "add_library", 0) < (0)) __PYX_ERR(0, 791, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("add_library", 1, 2, 2, i); __PYX_ERR(0, 791, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 791, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 791, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_lib = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_library", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 791, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.add_library", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_22add_library(__pyx_self, __pyx_v_self, __pyx_v_lib);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_22add_library(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_lib) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_library", 0);

  /* "django_templates_cythonized/base.py":792
 * 
 *     def add_library(self, lib):
 *         self.tags.update(lib.tags)             # <<<<<<<<<<<<<<
 *         self.filters.update(lib.filters)
 * 
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_tags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_lib, __pyx_mstate_global->__pyx_n_u_tags); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 792, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":793
 *     def add_library(self, lib):
 *         self.tags.update(lib.tags)
 *         self.filters.update(lib.filters)             # <<<<<<<<<<<<<<
 * 
 *     def compile_filter(self, token):
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_filters); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __pyx_t_4;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_lib, __pyx_mstate_global->__pyx_n_u_filters); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":791
 *         del self.tokens[-1]
 * 
 *     def add_library(self, lib):             # <<<<<<<<<<<<<<
 *         self.tags.update(lib.tags)
 *         self.filters.update(lib.filters)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.add_library", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":795
 *         self.filters.update(lib.filters)
 * 
 *     def compile_filter(self, token):             # <<<<<<<<<<<<<<
 *         """
 *         Convenient wrapper for FilterExpression
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_25compile_filter(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_6Parser_24compile_filter, "\n        Convenient wrapper for FilterExpression\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_25compile_filter = {"compile_filter", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_25compile_filter, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_6Parser_24compile_filter};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_25compile_filter(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_token = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("compile_filter (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_token,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 795, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 795, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 795, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "compile_filter", 0) < (0)) __PYX_ERR(0, 795, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("compile_filter", 1, 2, 2, i); __PYX_ERR(0, 795, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 795, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 795, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_token = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("compile_filter", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 795, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.compile_filter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_24compile_filter(__pyx_self, __pyx_v_self, __pyx_v_token);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_24compile_filter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_token) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("compile_filter", 0);

  /* "django_templates_cythonized/base.py":799
 *         Convenient wrapper for FilterExpression
 *         """
 *         return FilterExpression(token, self)             # <<<<<<<<<<<<<<
 * 
 *     def find_filter(self, filter_name):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_token, __pyx_v_self};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_r = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":795
 *         self.filters.update(lib.filters)
 * 
 *     def compile_filter(self, token):             # <<<<<<<<<<<<<<
 *         """
 *         Convenient wrapper for FilterExpression
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.compile_filter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":801
 *         return FilterExpression(token, self)
 * 
 *     def find_filter(self, filter_name):             # <<<<<<<<<<<<<<
 *         if filter_name in self.filters:
 *             return self.filters[filter_name]
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_27find_filter(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6Parser_27find_filter = {"find_filter", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6Parser_27find_filter, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6Parser_27find_filter(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_filter_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_filter (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_filter_name,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 801, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 801, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 801, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "find_filter", 0) < (0)) __PYX_ERR(0, 801, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("find_filter", 1, 2, 2, i); __PYX_ERR(0, 801, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 801, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 801, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_filter_name = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_filter", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.find_filter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_6Parser_26find_filter(__pyx_self, __pyx_v_self, __pyx_v_filter_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_6Parser_26find_filter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_filter_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("find_filter", 0);

  /* "django_templates_cythonized/base.py":802
 * 
 *     def find_filter(self, filter_name):
 *         if filter_name in self.filters:             # <<<<<<<<<<<<<<
 *             return self.filters[filter_name]
 *         else:
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_filters); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_filter_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 802, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_2)) {

    /* "django_templates_cythonized/base.py":803
 *     def find_filter(self, filter_name):
 *         if filter_name in self.filters:
 *             return self.filters[filter_name]             # <<<<<<<<<<<<<<
 *         else:
 *             raise TemplateSyntaxError("Invalid filter: '%s'" % filter_name)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_filters); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_filter_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 803, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":802
 * 
 *     def find_filter(self, filter_name):
 *         if filter_name in self.filters:             # <<<<<<<<<<<<<<
 *             return self.filters[filter_name]
 *         else:
*/
  }

  /* "django_templates_cythonized/base.py":805
 *             return self.filters[filter_name]
 *         else:
 *             raise TemplateSyntaxError("Invalid filter: '%s'" % filter_name)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __pyx_t_1 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Invalid_filter_s, __pyx_v_filter_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_1);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_5};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 805, __pyx_L1_error)
  }

  /* "django_templates_cythonized/base.py":801
 *         return FilterExpression(token, self)
 * 
 *     def find_filter(self, filter_name):             # <<<<<<<<<<<<<<
 *         if filter_name in self.filters:
 *             return self.filters[filter_name]
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.Parser.find_filter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":849
 *     """C struct wrapper for filter metadata  replaces 5-tuple for C struct access."""
 * 
 *     def __init__(self, func, args, expects_localtime, needs_autoescape, is_safe):             # <<<<<<<<<<<<<<
 *         self.func = func
 *         self.args = args
*/

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_func = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_expects_localtime = 0;
  PyObject *__pyx_v_needs_autoescape = 0;
  PyObject *__pyx_v_is_safe = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func,&__pyx_mstate_global->__pyx_n_u_args,&__pyx_mstate_global->__pyx_n_u_expects_localtime,&__pyx_mstate_global->__pyx_n_u_needs_autoescape,&__pyx_mstate_global->__pyx_n_u_is_safe,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 849, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 849, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 849, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 849, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 849, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 849, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 849, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, i); __PYX_ERR(0, 849, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 849, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 849, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 849, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 849, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 849, __pyx_L3_error)
    }
    __pyx_v_func = values[0];
    __pyx_v_args = values[1];
    __pyx_v_expects_localtime = values[2];
    __pyx_v_needs_autoescape = values[3];
    __pyx_v_is_safe = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 849, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo___init__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self), __pyx_v_func, __pyx_v_args, __pyx_v_expects_localtime, __pyx_v_needs_autoescape, __pyx_v_is_safe);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo___init__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_func, PyObject *__pyx_v_args, PyObject *__pyx_v_expects_localtime, PyObject *__pyx_v_needs_autoescape, PyObject *__pyx_v_is_safe) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":850
 * 
 *     def __init__(self, func, args, expects_localtime, needs_autoescape, is_safe):
 *         self.func = func             # <<<<<<<<<<<<<<
 *         self.args = args
 *         self.expects_localtime = expects_localtime
*/
  __Pyx_INCREF(__pyx_v_func);
  __Pyx_GIVEREF(__pyx_v_func);
  __Pyx_GOTREF(__pyx_v_self->func);
  __Pyx_DECREF(__pyx_v_self->func);
  __pyx_v_self->func = __pyx_v_func;

  /* "django_templates_cythonized/base.py":851
 *     def __init__(self, func, args, expects_localtime, needs_autoescape, is_safe):
 *         self.func = func
 *         self.args = args             # <<<<<<<<<<<<<<
 *         self.expects_localtime = expects_localtime
 *         self.needs_autoescape = needs_autoescape
*/
  __pyx_t_1 = __pyx_v_args;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->args);
  __Pyx_DECREF(__pyx_v_self->args);
  __pyx_v_self->args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":852
 *         self.func = func
 *         self.args = args
 *         self.expects_localtime = expects_localtime             # <<<<<<<<<<<<<<
 *         self.needs_autoescape = needs_autoescape
 *         self.is_safe = is_safe
*/
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_expects_localtime); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 852, __pyx_L1_error)
  __pyx_v_self->expects_localtime = __pyx_t_2;

  /* "django_templates_cythonized/base.py":853
 *         self.args = args
 *         self.expects_localtime = expects_localtime
 *         self.needs_autoescape = needs_autoescape             # <<<<<<<<<<<<<<
 *         self.is_safe = is_safe
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_needs_autoescape); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 853, __pyx_L1_error)
  __pyx_v_self->needs_autoescape = __pyx_t_2;

  /* "django_templates_cythonized/base.py":854
 *         self.expects_localtime = expects_localtime
 *         self.needs_autoescape = needs_autoescape
 *         self.is_safe = is_safe             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_is_safe); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
  __pyx_v_self->is_safe = __pyx_t_2;

  /* "django_templates_cythonized/base.py":849
 *     """C struct wrapper for filter metadata  replaces 5-tuple for C struct access."""
 * 
 *     def __init__(self, func, args, expects_localtime, needs_autoescape, is_safe):             # <<<<<<<<<<<<<<
 *         self.func = func
 *         self.args = args
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":9
 * 
 * cdef class CFilterInfo:
 *     cdef public object func             # <<<<<<<<<<<<<<
 *     cdef public list args
 *     cdef public bint expects_localtime
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4func_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4func_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4func___get__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4func___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->func);
  __pyx_r = __pyx_v_self->func;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4func_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4func_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4func_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4func_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->func);
  __Pyx_DECREF(__pyx_v_self->func);
  __pyx_v_self->func = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4func_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4func_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4func_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4func_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->func);
  __Pyx_DECREF(__pyx_v_self->func);
  __pyx_v_self->func = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":10
 * cdef class CFilterInfo:
 *     cdef public object func
 *     cdef public list args             # <<<<<<<<<<<<<<
 *     cdef public bint expects_localtime
 *     cdef public bint needs_autoescape
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4args_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4args_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4args___get__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4args___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->args);
  __pyx_r = __pyx_v_self->args;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4args_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4args_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4args_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4args_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(1, 10, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->args);
  __Pyx_DECREF(__pyx_v_self->args);
  __pyx_v_self->args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.args.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4args_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4args_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4args_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4args_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->args);
  __Pyx_DECREF(__pyx_v_self->args);
  __pyx_v_self->args = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":11
 *     cdef public object func
 *     cdef public list args
 *     cdef public bint expects_localtime             # <<<<<<<<<<<<<<
 *     cdef public bint needs_autoescape
 *     cdef public bint is_safe
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime___get__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->expects_localtime); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.expects_localtime.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 11, __pyx_L1_error)
  __pyx_v_self->expects_localtime = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.expects_localtime.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":12
 *     cdef public list args
 *     cdef public bint expects_localtime
 *     cdef public bint needs_autoescape             # <<<<<<<<<<<<<<
 *     cdef public bint is_safe
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape___get__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->needs_autoescape); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.needs_autoescape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __pyx_v_self->needs_autoescape = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.needs_autoescape.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":13
 *     cdef public bint expects_localtime
 *     cdef public bint needs_autoescape
 *     cdef public bint is_safe             # <<<<<<<<<<<<<<
 * 
 * cdef class Node:
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_7is_safe_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_7is_safe_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_7is_safe___get__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_7is_safe___get__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->is_safe); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.is_safe.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_7is_safe_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_7is_safe_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_7is_safe_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_7is_safe_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_v_self->is_safe = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.is_safe.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_11CFilterInfo_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_2__reduce_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_2__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.args, self.expects_localtime, self.func, self.is_safe, self.needs_autoescape)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->expects_localtime); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->is_safe); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_self->needs_autoescape); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_self->args);
  __Pyx_GIVEREF(__pyx_v_self->args);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->args) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->func);
  __Pyx_GIVEREF(__pyx_v_self->func);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self->func) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_2) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_3) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.args, self.expects_localtime, self.func, self.is_safe, self.needs_autoescape)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.args, self.expects_localtime, self.func, self.is_safe, self.needs_autoescape)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.args is not None or self.func is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.args, self.expects_localtime, self.func, self.is_safe, self.needs_autoescape)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.args is not None or self.func is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, None), state
*/
  /*else*/ {
    __pyx_t_6 = (__pyx_v_self->args != ((PyObject*)Py_None));
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->func != Py_None);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.args is not None or self.func is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.args is not None or self.func is not None
 *     if use_setstate:
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_CFilterInfo); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_28149491);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_28149491);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_28149491) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.args is not None or self.func is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, None), state
 *     else:
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_CFilterInfo__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_CFilterInfo); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_28149491);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_28149491);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_28149491) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CFilterInfo__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_11CFilterInfo_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4__setstate_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_11CFilterInfo_4__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_CFilterInfo__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_CFilterInfo__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CFilterInfo__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.CFilterInfo.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":880
 *         _fast_filter = 0
 * 
 *     def __init__(self, token, parser):             # <<<<<<<<<<<<<<
 *         self.token = token
 *         matches = filter_re.finditer(token)
*/

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_token = 0;
  PyObject *__pyx_v_parser = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_token,&__pyx_mstate_global->__pyx_n_u_parser,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 880, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 880, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 880, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 880, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 880, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 880, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 880, __pyx_L3_error)
    }
    __pyx_v_token = values[0];
    __pyx_v_parser = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 880, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression___init__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self), __pyx_v_token, __pyx_v_parser);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression___init__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_token, PyObject *__pyx_v_parser) {
  PyObject *__pyx_v_matches = NULL;
  PyObject *__pyx_v_var_obj = NULL;
  PyObject *__pyx_v_filters = NULL;
  PyObject *__pyx_v_upto = NULL;
  PyObject *__pyx_v_match = NULL;
  PyObject *__pyx_v_start = NULL;
  PyObject *__pyx_v_filter_name = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_filter_func = NULL;
  struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_fi = 0;
  PyObject *__pyx_v_f_args = NULL;
  PyObject *__pyx_v_constant = NULL;
  PyObject *__pyx_v_var = NULL;
  PyObject *__pyx_v_constant_arg = NULL;
  PyObject *__pyx_v_var_arg = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13[6];
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_t_18;
  PyObject *__pyx_t_19[5];
  int __pyx_t_20;
  int __pyx_t_21;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":881
 * 
 *     def __init__(self, token, parser):
 *         self.token = token             # <<<<<<<<<<<<<<
 *         matches = filter_re.finditer(token)
 *         var_obj = None
*/
  __Pyx_INCREF(__pyx_v_token);
  __Pyx_GIVEREF(__pyx_v_token);
  __Pyx_GOTREF(__pyx_v_self->token);
  __Pyx_DECREF(__pyx_v_self->token);
  __pyx_v_self->token = __pyx_v_token;

  /* "django_templates_cythonized/base.py":882
 *     def __init__(self, token, parser):
 *         self.token = token
 *         matches = filter_re.finditer(token)             # <<<<<<<<<<<<<<
 *         var_obj = None
 *         filters = []
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_filter_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_finditer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_token};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_matches = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":883
 *         self.token = token
 *         matches = filter_re.finditer(token)
 *         var_obj = None             # <<<<<<<<<<<<<<
 *         filters = []
 *         upto = 0
*/
  __Pyx_INCREF(Py_None);
  __pyx_v_var_obj = Py_None;

  /* "django_templates_cythonized/base.py":884
 *         matches = filter_re.finditer(token)
 *         var_obj = None
 *         filters = []             # <<<<<<<<<<<<<<
 *         upto = 0
 *         for match in matches:
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_filters = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":885
 *         var_obj = None
 *         filters = []
 *         upto = 0             # <<<<<<<<<<<<<<
 *         for match in matches:
 *             start = match.start()
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
  __pyx_v_upto = __pyx_mstate_global->__pyx_int_0;

  /* "django_templates_cythonized/base.py":886
 *         filters = []
 *         upto = 0
 *         for match in matches:             # <<<<<<<<<<<<<<
 *             start = match.start()
 *             if upto != start:
*/
  if (likely(PyList_CheckExact(__pyx_v_matches)) || PyTuple_CheckExact(__pyx_v_matches)) {
    __pyx_t_1 = __pyx_v_matches; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 886, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 886, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 886, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_6;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 886, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6);
        #endif
        ++__pyx_t_6;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 886, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_7(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 886, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_match, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "django_templates_cythonized/base.py":887
 *         upto = 0
 *         for match in matches:
 *             start = match.start()             # <<<<<<<<<<<<<<
 *             if upto != start:
 *                 raise TemplateSyntaxError(
*/
    __pyx_t_2 = __pyx_v_match;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_start, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 887, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_start, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "django_templates_cythonized/base.py":888
 *         for match in matches:
 *             start = match.start()
 *             if upto != start:             # <<<<<<<<<<<<<<
 *                 raise TemplateSyntaxError(
 *                     "Could not parse some characters: %s|%s|%s" % (token[:upto], token[upto:start], token[start:])
*/
    __pyx_t_4 = PyObject_RichCompare(__pyx_v_upto, __pyx_v_start, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 888, __pyx_L1_error)
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 888, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(__pyx_t_8)) {

      /* "django_templates_cythonized/base.py":889
 *             start = match.start()
 *             if upto != start:
 *                 raise TemplateSyntaxError(             # <<<<<<<<<<<<<<
 *                     "Could not parse some characters: %s|%s|%s" % (token[:upto], token[upto:start], token[start:])
 *                 )
*/
      __pyx_t_2 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 889, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);

      /* "django_templates_cythonized/base.py":890
 *             if upto != start:
 *                 raise TemplateSyntaxError(
 *                     "Could not parse some characters: %s|%s|%s" % (token[:upto], token[upto:start], token[start:])             # <<<<<<<<<<<<<<
 *                 )
 *             if var_obj is None:
*/
      __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_v_token, 0, 0, NULL, &__pyx_v_upto, NULL, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 890, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_9), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 890, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_v_token, 0, 0, &__pyx_v_upto, &__pyx_v_start, NULL, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 890, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_11 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_9), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 890, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_v_token, 0, 0, &__pyx_v_start, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 890, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_9), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 890, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Could_not_parse_some_characters;
      __pyx_t_13[1] = __pyx_t_10;
      __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__16;
      __pyx_t_13[3] = __pyx_t_11;
      __pyx_t_13[4] = __pyx_mstate_global->__pyx_kp_u__16;
      __pyx_t_13[5] = __pyx_t_12;
      __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_13, 6, 33 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12));
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 890, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9};
        __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 889, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(0, 889, __pyx_L1_error)

      /* "django_templates_cythonized/base.py":888
 *         for match in matches:
 *             start = match.start()
 *             if upto != start:             # <<<<<<<<<<<<<<
 *                 raise TemplateSyntaxError(
 *                     "Could not parse some characters: %s|%s|%s" % (token[:upto], token[upto:start], token[start:])
*/
    }

    /* "django_templates_cythonized/base.py":892
 *                     "Could not parse some characters: %s|%s|%s" % (token[:upto], token[upto:start], token[start:])
 *                 )
 *             if var_obj is None:             # <<<<<<<<<<<<<<
 *                 if constant := match["constant"]:
 *                     try:
*/
    __pyx_t_8 = (__pyx_v_var_obj == Py_None);
    if (__pyx_t_8) {

      /* "django_templates_cythonized/base.py":893
 *                 )
 *             if var_obj is None:
 *                 if constant := match["constant"]:             # <<<<<<<<<<<<<<
 *                     try:
 *                         var_obj = Variable(constant).resolve({})
*/
      __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_match, __pyx_mstate_global->__pyx_n_u_constant); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 893, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_constant, __pyx_t_4);
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 893, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_8) {

        /* "django_templates_cythonized/base.py":894
 *             if var_obj is None:
 *                 if constant := match["constant"]:
 *                     try:             # <<<<<<<<<<<<<<
 *                         var_obj = Variable(constant).resolve({})
 *                     except VariableDoesNotExist:
*/
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          /*try:*/ {

            /* "django_templates_cythonized/base.py":895
 *                 if constant := match["constant"]:
 *                     try:
 *                         var_obj = Variable(constant).resolve({})             # <<<<<<<<<<<<<<
 *                     except VariableDoesNotExist:
 *                         var_obj = None
*/
            __pyx_t_3 = NULL;
            __pyx_t_5 = 1;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_constant};
              __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 895, __pyx_L8_error)
              __Pyx_GOTREF((PyObject *)__pyx_t_4);
            }
            __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 895, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_9 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_Variable *)((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_t_4)->__pyx_vtab)->resolve(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_t_4), __pyx_t_3, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 895, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF((PyObject *)__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF_SET(__pyx_v_var_obj, __pyx_t_9);
            __pyx_t_9 = 0;

            /* "django_templates_cythonized/base.py":894
 *             if var_obj is None:
 *                 if constant := match["constant"]:
 *                     try:             # <<<<<<<<<<<<<<
 *                         var_obj = Variable(constant).resolve({})
 *                     except VariableDoesNotExist:
*/
          }
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          goto __pyx_L15_try_end;
          __pyx_L8_error:;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

          /* "django_templates_cythonized/base.py":896
 *                     try:
 *                         var_obj = Variable(constant).resolve({})
 *                     except VariableDoesNotExist:             # <<<<<<<<<<<<<<
 *                         var_obj = None
 *                 elif (var := match["var"]) is None:
*/
          __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_3, &__pyx_t_4);
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 896, __pyx_L10_except_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_17 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_9, __pyx_t_2);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_ErrRestore(__pyx_t_9, __pyx_t_3, __pyx_t_4);
          __pyx_t_9 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0;
          if (__pyx_t_17) {
            __Pyx_ErrRestore(0,0,0);

            /* "django_templates_cythonized/base.py":897
 *                         var_obj = Variable(constant).resolve({})
 *                     except VariableDoesNotExist:
 *                         var_obj = None             # <<<<<<<<<<<<<<
 *                 elif (var := match["var"]) is None:
 *                     raise TemplateSyntaxError("Could not find variable at start of %s." % token)
*/
            __Pyx_INCREF(Py_None);
            __Pyx_DECREF_SET(__pyx_v_var_obj, Py_None);
            goto __pyx_L9_exception_handled;
          }
          goto __pyx_L10_except_error;

          /* "django_templates_cythonized/base.py":894
 *             if var_obj is None:
 *                 if constant := match["constant"]:
 *                     try:             # <<<<<<<<<<<<<<
 *                         var_obj = Variable(constant).resolve({})
 *                     except VariableDoesNotExist:
*/
          __pyx_L10_except_error:;
          __Pyx_XGIVEREF(__pyx_t_14);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          goto __pyx_L1_error;
          __pyx_L9_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_14);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          __pyx_L15_try_end:;
        }

        /* "django_templates_cythonized/base.py":893
 *                 )
 *             if var_obj is None:
 *                 if constant := match["constant"]:             # <<<<<<<<<<<<<<
 *                     try:
 *                         var_obj = Variable(constant).resolve({})
*/
        goto __pyx_L7;
      }

      /* "django_templates_cythonized/base.py":898
 *                     except VariableDoesNotExist:
 *                         var_obj = None
 *                 elif (var := match["var"]) is None:             # <<<<<<<<<<<<<<
 *                     raise TemplateSyntaxError("Could not find variable at start of %s." % token)
 *                 else:
*/
      __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_match, __pyx_mstate_global->__pyx_n_u_var); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 898, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_4);
      __pyx_t_8 = (__pyx_t_4 == Py_None);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(__pyx_t_8)) {

        /* "django_templates_cythonized/base.py":899
 *                         var_obj = None
 *                 elif (var := match["var"]) is None:
 *                     raise TemplateSyntaxError("Could not find variable at start of %s." % token)             # <<<<<<<<<<<<<<
 *                 else:
 *                     var_obj = Variable(var)
*/
        __pyx_t_3 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 899, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Could_not_find_variable_at_start, __pyx_v_token); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 899, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2};
          __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 899, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_Raise(__pyx_t_4, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __PYX_ERR(0, 899, __pyx_L1_error)

        /* "django_templates_cythonized/base.py":898
 *                     except VariableDoesNotExist:
 *                         var_obj = None
 *                 elif (var := match["var"]) is None:             # <<<<<<<<<<<<<<
 *                     raise TemplateSyntaxError("Could not find variable at start of %s." % token)
 *                 else:
*/
      }

      /* "django_templates_cythonized/base.py":901
 *                     raise TemplateSyntaxError("Could not find variable at start of %s." % token)
 *                 else:
 *                     var_obj = Variable(var)             # <<<<<<<<<<<<<<
 *             else:
 *                 filter_name = match["filter_name"]
*/
      /*else*/ {
        __pyx_t_9 = NULL;
        __pyx_t_5 = 1;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_var};
          __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 901, __pyx_L1_error)
          __Pyx_GOTREF((PyObject *)__pyx_t_4);
        }
        __Pyx_DECREF_SET(__pyx_v_var_obj, ((PyObject *)__pyx_t_4));
        __pyx_t_4 = 0;
      }
      __pyx_L7:;

      /* "django_templates_cythonized/base.py":892
 *                     "Could not parse some characters: %s|%s|%s" % (token[:upto], token[upto:start], token[start:])
 *                 )
 *             if var_obj is None:             # <<<<<<<<<<<<<<
 *                 if constant := match["constant"]:
 *                     try:
*/
      goto __pyx_L6;
    }

    /* "django_templates_cythonized/base.py":903
 *                     var_obj = Variable(var)
 *             else:
 *                 filter_name = match["filter_name"]             # <<<<<<<<<<<<<<
 *                 args = []
 *                 if constant_arg := match["constant_arg"]:
*/
    /*else*/ {
      __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_match, __pyx_mstate_global->__pyx_n_u_filter_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 903, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_filter_name, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":904
 *             else:
 *                 filter_name = match["filter_name"]
 *                 args = []             # <<<<<<<<<<<<<<
 *                 if constant_arg := match["constant_arg"]:
 *                     args.append((False, Variable(constant_arg).resolve({})))
*/
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 904, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_args, ((PyObject*)__pyx_t_4));
      __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":905
 *                 filter_name = match["filter_name"]
 *                 args = []
 *                 if constant_arg := match["constant_arg"]:             # <<<<<<<<<<<<<<
 *                     args.append((False, Variable(constant_arg).resolve({})))
 *                 elif var_arg := match["var_arg"]:
*/
      __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_match, __pyx_mstate_global->__pyx_n_u_constant_arg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 905, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_constant_arg, __pyx_t_4);
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 905, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_8) {

        /* "django_templates_cythonized/base.py":906
 *                 args = []
 *                 if constant_arg := match["constant_arg"]:
 *                     args.append((False, Variable(constant_arg).resolve({})))             # <<<<<<<<<<<<<<
 *                 elif var_arg := match["var_arg"]:
 *                     args.append((True, Variable(var_arg)))
*/
        __pyx_t_9 = NULL;
        __pyx_t_5 = 1;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_constant_arg};
          __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 906, __pyx_L1_error)
          __Pyx_GOTREF((PyObject *)__pyx_t_4);
        }
        __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 906, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_2 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_Variable *)((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_t_4)->__pyx_vtab)->resolve(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_t_4), __pyx_t_9, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 906, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF((PyObject *)__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 906, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_INCREF(Py_False);
        __Pyx_GIVEREF(Py_False);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, Py_False) != (0)) __PYX_ERR(0, 906, __pyx_L1_error);
        __Pyx_GIVEREF(__pyx_t_2);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_2) != (0)) __PYX_ERR(0, 906, __pyx_L1_error);
        __pyx_t_2 = 0;
        __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_9); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 906, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

        /* "django_templates_cythonized/base.py":905
 *                 filter_name = match["filter_name"]
 *                 args = []
 *                 if constant_arg := match["constant_arg"]:             # <<<<<<<<<<<<<<
 *                     args.append((False, Variable(constant_arg).resolve({})))
 *                 elif var_arg := match["var_arg"]:
*/
        goto __pyx_L18;
      }

      /* "django_templates_cythonized/base.py":907
 *                 if constant_arg := match["constant_arg"]:
 *                     args.append((False, Variable(constant_arg).resolve({})))
 *                 elif var_arg := match["var_arg"]:             # <<<<<<<<<<<<<<
 *                     args.append((True, Variable(var_arg)))
 *                 filter_func = parser.find_filter(filter_name)
*/
      __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_v_match, __pyx_mstate_global->__pyx_n_u_var_arg); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_XDECREF_SET(__pyx_v_var_arg, __pyx_t_9);
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (__pyx_t_8) {

        /* "django_templates_cythonized/base.py":908
 *                     args.append((False, Variable(constant_arg).resolve({})))
 *                 elif var_arg := match["var_arg"]:
 *                     args.append((True, Variable(var_arg)))             # <<<<<<<<<<<<<<
 *                 filter_func = parser.find_filter(filter_name)
 *                 self.args_check(filter_name, filter_func, args)
*/
        __pyx_t_2 = NULL;
        __pyx_t_5 = 1;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_var_arg};
          __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 908, __pyx_L1_error)
          __Pyx_GOTREF((PyObject *)__pyx_t_9);
        }
        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 908, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(Py_True);
        __Pyx_GIVEREF(Py_True);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, Py_True) != (0)) __PYX_ERR(0, 908, __pyx_L1_error);
        __Pyx_GIVEREF((PyObject *)__pyx_t_9);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_9)) != (0)) __PYX_ERR(0, 908, __pyx_L1_error);
        __pyx_t_9 = 0;
        __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_args, __pyx_t_2); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 908, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":907
 *                 if constant_arg := match["constant_arg"]:
 *                     args.append((False, Variable(constant_arg).resolve({})))
 *                 elif var_arg := match["var_arg"]:             # <<<<<<<<<<<<<<
 *                     args.append((True, Variable(var_arg)))
 *                 filter_func = parser.find_filter(filter_name)
*/
      }
      __pyx_L18:;

      /* "django_templates_cythonized/base.py":909
 *                 elif var_arg := match["var_arg"]:
 *                     args.append((True, Variable(var_arg)))
 *                 filter_func = parser.find_filter(filter_name)             # <<<<<<<<<<<<<<
 *                 self.args_check(filter_name, filter_func, args)
 *                 filters.append(
*/
      __pyx_t_9 = __pyx_v_parser;
      __Pyx_INCREF(__pyx_t_9);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_filter_name};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_find_filter, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 909, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_filter_func, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":910
 *                     args.append((True, Variable(var_arg)))
 *                 filter_func = parser.find_filter(filter_name)
 *                 self.args_check(filter_name, filter_func, args)             # <<<<<<<<<<<<<<
 *                 filters.append(
 *                     CFilterInfo(
*/
      __pyx_t_9 = ((PyObject *)__pyx_v_self);
      __Pyx_INCREF(__pyx_t_9);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_9, __pyx_v_filter_name, __pyx_v_filter_func, __pyx_v_args};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_args_check, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 910, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":912
 *                 self.args_check(filter_name, filter_func, args)
 *                 filters.append(
 *                     CFilterInfo(             # <<<<<<<<<<<<<<
 *                         filter_func,
 *                         args,
*/
      __pyx_t_9 = NULL;

      /* "django_templates_cythonized/base.py":915
 *                         filter_func,
 *                         args,
 *                         getattr(filter_func, "expects_localtime", False),             # <<<<<<<<<<<<<<
 *                         getattr(filter_func, "needs_autoescape", False),
 *                         getattr(filter_func, "is_safe", False),
*/
      __pyx_t_4 = __Pyx_GetAttr3(__pyx_v_filter_func, __pyx_mstate_global->__pyx_n_u_expects_localtime, Py_False); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 915, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);

      /* "django_templates_cythonized/base.py":916
 *                         args,
 *                         getattr(filter_func, "expects_localtime", False),
 *                         getattr(filter_func, "needs_autoescape", False),             # <<<<<<<<<<<<<<
 *                         getattr(filter_func, "is_safe", False),
 *                     )
*/
      __pyx_t_3 = __Pyx_GetAttr3(__pyx_v_filter_func, __pyx_mstate_global->__pyx_n_u_needs_autoescape, Py_False); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 916, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);

      /* "django_templates_cythonized/base.py":917
 *                         getattr(filter_func, "expects_localtime", False),
 *                         getattr(filter_func, "needs_autoescape", False),
 *                         getattr(filter_func, "is_safe", False),             # <<<<<<<<<<<<<<
 *                     )
 *                 )
*/
      __pyx_t_12 = __Pyx_GetAttr3(__pyx_v_filter_func, __pyx_mstate_global->__pyx_n_u_is_safe, Py_False); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 917, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_5 = 1;
      {
        PyObject *__pyx_callargs[6] = {__pyx_t_9, __pyx_v_filter_func, __pyx_v_args, __pyx_t_4, __pyx_t_3, __pyx_t_12};
        __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo, __pyx_callargs+__pyx_t_5, (6-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 912, __pyx_L1_error)
        __Pyx_GOTREF((PyObject *)__pyx_t_2);
      }

      /* "django_templates_cythonized/base.py":911
 *                 filter_func = parser.find_filter(filter_name)
 *                 self.args_check(filter_name, filter_func, args)
 *                 filters.append(             # <<<<<<<<<<<<<<
 *                     CFilterInfo(
 *                         filter_func,
*/
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_filters, ((PyObject *)__pyx_t_2)); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 911, __pyx_L1_error)
      __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_L6:;

    /* "django_templates_cythonized/base.py":920
 *                     )
 *                 )
 *             upto = match.end()             # <<<<<<<<<<<<<<
 *         if upto != len(token):
 *             raise TemplateSyntaxError("Could not parse the remainder: '%s' from '%s'" % (token[upto:], token))
*/
    __pyx_t_12 = __pyx_v_match;
    __Pyx_INCREF(__pyx_t_12);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_end, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 920, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF_SET(__pyx_v_upto, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":886
 *         filters = []
 *         upto = 0
 *         for match in matches:             # <<<<<<<<<<<<<<
 *             start = match.start()
 *             if upto != start:
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":921
 *                 )
 *             upto = match.end()
 *         if upto != len(token):             # <<<<<<<<<<<<<<
 *             raise TemplateSyntaxError("Could not parse the remainder: '%s' from '%s'" % (token[upto:], token))
 * 
*/
  __pyx_t_6 = PyObject_Length(__pyx_v_token); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 921, __pyx_L1_error)
  __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_upto, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(__pyx_t_8)) {

    /* "django_templates_cythonized/base.py":922
 *             upto = match.end()
 *         if upto != len(token):
 *             raise TemplateSyntaxError("Could not parse the remainder: '%s' from '%s'" % (token[upto:], token))             # <<<<<<<<<<<<<<
 * 
 *         self.filters = filters
*/
    __pyx_t_1 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_token, 0, 0, &__pyx_v_upto, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_3), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_token), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Could_not_parse_the_remainder;
    __pyx_t_19[1] = __pyx_t_4;
    __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u_from;
    __pyx_t_19[3] = __pyx_t_3;
    __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__17;
    __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, 32 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_12))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_12);
      assert(__pyx_t_1);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_9};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 922, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 922, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":921
 *                 )
 *             upto = match.end()
 *         if upto != len(token):             # <<<<<<<<<<<<<<
 *             raise TemplateSyntaxError("Could not parse the remainder: '%s' from '%s'" % (token[upto:], token))
 * 
*/
  }

  /* "django_templates_cythonized/base.py":924
 *             raise TemplateSyntaxError("Could not parse the remainder: '%s' from '%s'" % (token[upto:], token))
 * 
 *         self.filters = filters             # <<<<<<<<<<<<<<
 *         self.var = var_obj
 *         self.is_var = isinstance(var_obj, Variable)
*/
  __Pyx_INCREF(__pyx_v_filters);
  __Pyx_GIVEREF(__pyx_v_filters);
  __Pyx_GOTREF(__pyx_v_self->filters);
  __Pyx_DECREF(__pyx_v_self->filters);
  __pyx_v_self->filters = __pyx_v_filters;

  /* "django_templates_cythonized/base.py":925
 * 
 *         self.filters = filters
 *         self.var = var_obj             # <<<<<<<<<<<<<<
 *         self.is_var = isinstance(var_obj, Variable)
 *         self._fast_filter = 0
*/
  __Pyx_INCREF(__pyx_v_var_obj);
  __Pyx_GIVEREF(__pyx_v_var_obj);
  __Pyx_GOTREF(__pyx_v_self->var);
  __Pyx_DECREF(__pyx_v_self->var);
  __pyx_v_self->var = __pyx_v_var_obj;

  /* "django_templates_cythonized/base.py":926
 *         self.filters = filters
 *         self.var = var_obj
 *         self.is_var = isinstance(var_obj, Variable)             # <<<<<<<<<<<<<<
 *         self._fast_filter = 0
 *         if len(filters) == 1:
*/
  __pyx_t_8 = __Pyx_TypeCheck(__pyx_v_var_obj, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable); 
  __pyx_v_self->is_var = __pyx_t_8;

  /* "django_templates_cythonized/base.py":927
 *         self.var = var_obj
 *         self.is_var = isinstance(var_obj, Variable)
 *         self._fast_filter = 0             # <<<<<<<<<<<<<<
 *         if len(filters) == 1:
 *             fi: CFilterInfo = filters[0]
*/
  __pyx_v_self->_fast_filter = 0;

  /* "django_templates_cythonized/base.py":928
 *         self.is_var = isinstance(var_obj, Variable)
 *         self._fast_filter = 0
 *         if len(filters) == 1:             # <<<<<<<<<<<<<<
 *             fi: CFilterInfo = filters[0]
 *             if not fi.expects_localtime and not fi.needs_autoescape:
*/
  __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_filters); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_8 = (__pyx_t_6 == 1);
  if (__pyx_t_8) {

    /* "django_templates_cythonized/base.py":929
 *         self._fast_filter = 0
 *         if len(filters) == 1:
 *             fi: CFilterInfo = filters[0]             # <<<<<<<<<<<<<<
 *             if not fi.expects_localtime and not fi.needs_autoescape:
 *                 f_args = fi.args
*/
    __pyx_t_2 = __Pyx_PyList_GET_ITEM(__pyx_v_filters, 0);
    __Pyx_INCREF(__pyx_t_2);
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo))))) __PYX_ERR(0, 929, __pyx_L1_error)
    __pyx_v_fi = ((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":930
 *         if len(filters) == 1:
 *             fi: CFilterInfo = filters[0]
 *             if not fi.expects_localtime and not fi.needs_autoescape:             # <<<<<<<<<<<<<<
 *                 f_args = fi.args
 *                 if len(f_args) == 0:
*/
    __pyx_t_20 = (!__pyx_v_fi->expects_localtime);
    if (__pyx_t_20) {
    } else {
      __pyx_t_8 = __pyx_t_20;
      goto __pyx_L23_bool_binop_done;
    }
    __pyx_t_20 = (!__pyx_v_fi->needs_autoescape);
    __pyx_t_8 = __pyx_t_20;
    __pyx_L23_bool_binop_done:;
    if (__pyx_t_8) {

      /* "django_templates_cythonized/base.py":931
 *             fi: CFilterInfo = filters[0]
 *             if not fi.expects_localtime and not fi.needs_autoescape:
 *                 f_args = fi.args             # <<<<<<<<<<<<<<
 *                 if len(f_args) == 0:
 *                     self._fast_filter = getattr(fi.func, "_cython_fast_code", 0)
*/
      __pyx_t_2 = __pyx_v_fi->args;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_f_args = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":932
 *             if not fi.expects_localtime and not fi.needs_autoescape:
 *                 f_args = fi.args
 *                 if len(f_args) == 0:             # <<<<<<<<<<<<<<
 *                     self._fast_filter = getattr(fi.func, "_cython_fast_code", 0)
 *                 elif (
*/
      if (unlikely(__pyx_v_f_args == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
        __PYX_ERR(0, 932, __pyx_L1_error)
      }
      __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_f_args); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 932, __pyx_L1_error)
      __pyx_t_8 = (__pyx_t_6 == 0);
      if (__pyx_t_8) {

        /* "django_templates_cythonized/base.py":933
 *                 f_args = fi.args
 *                 if len(f_args) == 0:
 *                     self._fast_filter = getattr(fi.func, "_cython_fast_code", 0)             # <<<<<<<<<<<<<<
 *                 elif (
 *                     len(f_args) == 1
*/
        __pyx_t_2 = __pyx_v_fi->func;
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_12 = __Pyx_GetAttr3(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_cython_fast_code, __pyx_mstate_global->__pyx_int_0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 933, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_17 = __Pyx_PyLong_As_int(__pyx_t_12); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 933, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_v_self->_fast_filter = __pyx_t_17;

        /* "django_templates_cythonized/base.py":932
 *             if not fi.expects_localtime and not fi.needs_autoescape:
 *                 f_args = fi.args
 *                 if len(f_args) == 0:             # <<<<<<<<<<<<<<
 *                     self._fast_filter = getattr(fi.func, "_cython_fast_code", 0)
 *                 elif (
*/
        goto __pyx_L25;
      }

      /* "django_templates_cythonized/base.py":935
 *                     self._fast_filter = getattr(fi.func, "_cython_fast_code", 0)
 *                 elif (
 *                     len(f_args) == 1             # <<<<<<<<<<<<<<
 *                     and not f_args[0][0]
 *                     and f_args[0][1] == "s"
*/
      if (unlikely(__pyx_v_f_args == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
        __PYX_ERR(0, 935, __pyx_L1_error)
      }
      __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_f_args); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 935, __pyx_L1_error)
      __pyx_t_20 = (__pyx_t_6 == 1);
      if (__pyx_t_20) {
      } else {
        __pyx_t_8 = __pyx_t_20;
        goto __pyx_L26_bool_binop_done;
      }

      /* "django_templates_cythonized/base.py":936
 *                 elif (
 *                     len(f_args) == 1
 *                     and not f_args[0][0]             # <<<<<<<<<<<<<<
 *                     and f_args[0][1] == "s"
 *                     and getattr(fi.func, "_cython_fast_code", 0) == FFILTER_STRINGFORMAT_S
*/
      if (unlikely(__pyx_v_f_args == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 936, __pyx_L1_error)
      }
      __pyx_t_12 = __Pyx_GetItemInt(__Pyx_PyList_GET_ITEM(__pyx_v_f_args, 0), 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 936, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 936, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_21 = (!__pyx_t_20);
      if (__pyx_t_21) {
      } else {
        __pyx_t_8 = __pyx_t_21;
        goto __pyx_L26_bool_binop_done;
      }

      /* "django_templates_cythonized/base.py":937
 *                     len(f_args) == 1
 *                     and not f_args[0][0]
 *                     and f_args[0][1] == "s"             # <<<<<<<<<<<<<<
 *                     and getattr(fi.func, "_cython_fast_code", 0) == FFILTER_STRINGFORMAT_S
 *                 ):
*/
      if (unlikely(__pyx_v_f_args == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 937, __pyx_L1_error)
      }
      __pyx_t_12 = __Pyx_GetItemInt(__Pyx_PyList_GET_ITEM(__pyx_v_f_args, 0), 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 937, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_21 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_s_2, Py_EQ)); if (unlikely((__pyx_t_21 < 0))) __PYX_ERR(0, 937, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (__pyx_t_21) {
      } else {
        __pyx_t_8 = __pyx_t_21;
        goto __pyx_L26_bool_binop_done;
      }

      /* "django_templates_cythonized/base.py":938
 *                     and not f_args[0][0]
 *                     and f_args[0][1] == "s"
 *                     and getattr(fi.func, "_cython_fast_code", 0) == FFILTER_STRINGFORMAT_S             # <<<<<<<<<<<<<<
 *                 ):
 *                     # stringformat:'s'  str(value)
*/
      __pyx_t_12 = __pyx_v_fi->func;
      __Pyx_INCREF(__pyx_t_12);
      __pyx_t_2 = __Pyx_GetAttr3(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_cython_fast_code, __pyx_mstate_global->__pyx_int_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 938, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_FFILTER_STRINGFORMAT_S); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 938, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_9 = PyObject_RichCompare(__pyx_t_2, __pyx_t_12, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 938, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_21 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_21 < 0))) __PYX_ERR(0, 938, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_8 = __pyx_t_21;
      __pyx_L26_bool_binop_done:;

      /* "django_templates_cythonized/base.py":934
 *                 if len(f_args) == 0:
 *                     self._fast_filter = getattr(fi.func, "_cython_fast_code", 0)
 *                 elif (             # <<<<<<<<<<<<<<
 *                     len(f_args) == 1
 *                     and not f_args[0][0]
*/
      if (__pyx_t_8) {

        /* "django_templates_cythonized/base.py":941
 *                 ):
 *                     # stringformat:'s'  str(value)
 *                     self._fast_filter = FFILTER_STRINGFORMAT_S             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_FFILTER_STRINGFORMAT_S); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_17 = __Pyx_PyLong_As_int(__pyx_t_9); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 941, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_v_self->_fast_filter = __pyx_t_17;

        /* "django_templates_cythonized/base.py":934
 *                 if len(f_args) == 0:
 *                     self._fast_filter = getattr(fi.func, "_cython_fast_code", 0)
 *                 elif (             # <<<<<<<<<<<<<<
 *                     len(f_args) == 1
 *                     and not f_args[0][0]
*/
      }
      __pyx_L25:;

      /* "django_templates_cythonized/base.py":930
 *         if len(filters) == 1:
 *             fi: CFilterInfo = filters[0]
 *             if not fi.expects_localtime and not fi.needs_autoescape:             # <<<<<<<<<<<<<<
 *                 f_args = fi.args
 *                 if len(f_args) == 0:
*/
    }

    /* "django_templates_cythonized/base.py":928
 *         self.is_var = isinstance(var_obj, Variable)
 *         self._fast_filter = 0
 *         if len(filters) == 1:             # <<<<<<<<<<<<<<
 *             fi: CFilterInfo = filters[0]
 *             if not fi.expects_localtime and not fi.needs_autoescape:
*/
  }

  /* "django_templates_cythonized/base.py":880
 *         _fast_filter = 0
 * 
 *     def __init__(self, token, parser):             # <<<<<<<<<<<<<<
 *         self.token = token
 *         matches = filter_re.finditer(token)
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_matches);
  __Pyx_XDECREF(__pyx_v_var_obj);
  __Pyx_XDECREF(__pyx_v_filters);
  __Pyx_XDECREF(__pyx_v_upto);
  __Pyx_XDECREF(__pyx_v_match);
  __Pyx_XDECREF(__pyx_v_start);
  __Pyx_XDECREF(__pyx_v_filter_name);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_filter_func);
  __Pyx_XDECREF((PyObject *)__pyx_v_fi);
  __Pyx_XDECREF(__pyx_v_f_args);
  __Pyx_XDECREF(__pyx_v_constant);
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_constant_arg);
  __Pyx_XDECREF(__pyx_v_var_arg);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":943
 *                     self._fast_filter = FFILTER_STRINGFORMAT_S
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3resolve(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_16FilterExpression_resolve(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch, struct __pyx_opt_args_27django_templates_cythonized_4base_16FilterExpression_resolve *__pyx_optional_args) {

  /* "django_templates_cythonized/base.py":944
 * 
 *     @cython.ccall
 *     def resolve(self, context: Context, ignore_failures=False):             # <<<<<<<<<<<<<<
 *         if self.is_var:
 *             try:
*/
  PyObject *__pyx_v_ignore_failures = ((PyObject *)Py_False);
  PyObject *__pyx_v_obj = NULL;
  PyObject *__pyx_v_string_if_invalid = NULL;
  struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_fi = 0;
  PyObject *__pyx_v_arg_vals = NULL;
  PyObject *__pyx_v_lookup = NULL;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_new_obj = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  Py_ssize_t __pyx_t_12;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *(*__pyx_t_15)(PyObject *);
  int __pyx_t_16;
  int __pyx_t_17;
  struct __pyx_opt_args_27django_templates_cythonized_8timezone_template_localtime __pyx_t_18;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("resolve", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_ignore_failures = __pyx_optional_args->ignore_failures;
    }
  }

  /* "django_templates_cythonized/base.py":943
 *                     self._fast_filter = FFILTER_STRINGFORMAT_S
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:
*/
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_resolve); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3resolve)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_v_context), __pyx_v_ignore_failures};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 943, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":945
 *     @cython.ccall
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:             # <<<<<<<<<<<<<<
 *             try:
 *                 obj = self.var.resolve(context)
*/
  if (__pyx_v_self->is_var) {

    /* "django_templates_cythonized/base.py":946
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:
 *             try:             # <<<<<<<<<<<<<<
 *                 obj = self.var.resolve(context)
 *             except VariableDoesNotExist:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      /*try:*/ {

        /* "django_templates_cythonized/base.py":947
 *         if self.is_var:
 *             try:
 *                 obj = self.var.resolve(context)             # <<<<<<<<<<<<<<
 *             except VariableDoesNotExist:
 *                 if ignore_failures:
*/
        __pyx_t_2 = __pyx_v_self->var;
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_5 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_context)};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_resolve, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 947, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __pyx_v_obj = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":946
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:
 *             try:             # <<<<<<<<<<<<<<
 *                 obj = self.var.resolve(context)
 *             except VariableDoesNotExist:
*/
      }
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":948
 *             try:
 *                 obj = self.var.resolve(context)
 *             except VariableDoesNotExist:             # <<<<<<<<<<<<<<
 *                 if ignore_failures:
 *                     obj = None
*/
      __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_2, &__pyx_t_4);
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 948, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_4);
      __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0;
      if (__pyx_t_9) {
        __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.resolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(0, 948, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_4);
        __Pyx_XGOTREF(__pyx_t_2);
        __Pyx_XGOTREF(__pyx_t_1);

        /* "django_templates_cythonized/base.py":949
 *                 obj = self.var.resolve(context)
 *             except VariableDoesNotExist:
 *                 if ignore_failures:             # <<<<<<<<<<<<<<
 *                     obj = None
 *                 else:
*/
        __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_failures); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 949, __pyx_L6_except_error)
        if (__pyx_t_10) {

          /* "django_templates_cythonized/base.py":950
 *             except VariableDoesNotExist:
 *                 if ignore_failures:
 *                     obj = None             # <<<<<<<<<<<<<<
 *                 else:
 *                     string_if_invalid = context.template.engine.string_if_invalid
*/
          __Pyx_INCREF(Py_None);
          __Pyx_XDECREF_SET(__pyx_v_obj, Py_None);

          /* "django_templates_cythonized/base.py":949
 *                 obj = self.var.resolve(context)
 *             except VariableDoesNotExist:
 *                 if ignore_failures:             # <<<<<<<<<<<<<<
 *                     obj = None
 *                 else:
*/
          goto __pyx_L12;
        }

        /* "django_templates_cythonized/base.py":952
 *                     obj = None
 *                 else:
 *                     string_if_invalid = context.template.engine.string_if_invalid             # <<<<<<<<<<<<<<
 *                     if string_if_invalid:
 *                         if "%s" in string_if_invalid:
*/
        /*else*/ {
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_context->__pyx_template, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 952, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_string_if_invalid); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 952, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_v_string_if_invalid = __pyx_t_11;
          __pyx_t_11 = 0;

          /* "django_templates_cythonized/base.py":953
 *                 else:
 *                     string_if_invalid = context.template.engine.string_if_invalid
 *                     if string_if_invalid:             # <<<<<<<<<<<<<<
 *                         if "%s" in string_if_invalid:
 *                             return string_if_invalid % self.var
*/
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_string_if_invalid); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 953, __pyx_L6_except_error)
          if (__pyx_t_10) {

            /* "django_templates_cythonized/base.py":954
 *                     string_if_invalid = context.template.engine.string_if_invalid
 *                     if string_if_invalid:
 *                         if "%s" in string_if_invalid:             # <<<<<<<<<<<<<<
 *                             return string_if_invalid % self.var
 *                         else:
*/
            __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u_s_3, __pyx_v_string_if_invalid, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 954, __pyx_L6_except_error)
            if (__pyx_t_10) {

              /* "django_templates_cythonized/base.py":955
 *                     if string_if_invalid:
 *                         if "%s" in string_if_invalid:
 *                             return string_if_invalid % self.var             # <<<<<<<<<<<<<<
 *                         else:
 *                             return string_if_invalid
*/
              __Pyx_XDECREF(__pyx_r);
              __pyx_t_11 = PyNumber_Remainder(__pyx_v_string_if_invalid, __pyx_v_self->var); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 955, __pyx_L6_except_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_r = __pyx_t_11;
              __pyx_t_11 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              goto __pyx_L7_except_return;

              /* "django_templates_cythonized/base.py":954
 *                     string_if_invalid = context.template.engine.string_if_invalid
 *                     if string_if_invalid:
 *                         if "%s" in string_if_invalid:             # <<<<<<<<<<<<<<
 *                             return string_if_invalid % self.var
 *                         else:
*/
            }

            /* "django_templates_cythonized/base.py":957
 *                             return string_if_invalid % self.var
 *                         else:
 *                             return string_if_invalid             # <<<<<<<<<<<<<<
 *                     else:
 *                         obj = string_if_invalid
*/
            /*else*/ {
              __Pyx_XDECREF(__pyx_r);
              __Pyx_INCREF(__pyx_v_string_if_invalid);
              __pyx_r = __pyx_v_string_if_invalid;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              goto __pyx_L7_except_return;
            }

            /* "django_templates_cythonized/base.py":953
 *                 else:
 *                     string_if_invalid = context.template.engine.string_if_invalid
 *                     if string_if_invalid:             # <<<<<<<<<<<<<<
 *                         if "%s" in string_if_invalid:
 *                             return string_if_invalid % self.var
*/
          }

          /* "django_templates_cythonized/base.py":959
 *                             return string_if_invalid
 *                     else:
 *                         obj = string_if_invalid             # <<<<<<<<<<<<<<
 *         else:
 *             obj = self.var
*/
          /*else*/ {
            __Pyx_INCREF(__pyx_v_string_if_invalid);
            __Pyx_XDECREF_SET(__pyx_v_obj, __pyx_v_string_if_invalid);
          }
        }
        __pyx_L12:;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;

      /* "django_templates_cythonized/base.py":946
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:
 *             try:             # <<<<<<<<<<<<<<
 *                 obj = self.var.resolve(context)
 *             except VariableDoesNotExist:
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L1_error;
      __pyx_L7_except_return:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L0;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      __pyx_L9_try_end:;
    }

    /* "django_templates_cythonized/base.py":945
 *     @cython.ccall
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:             # <<<<<<<<<<<<<<
 *             try:
 *                 obj = self.var.resolve(context)
*/
    goto __pyx_L3;
  }

  /* "django_templates_cythonized/base.py":961
 *                         obj = string_if_invalid
 *         else:
 *             obj = self.var             # <<<<<<<<<<<<<<
 *         fi: CFilterInfo
 *         for fi in self.filters:
*/
  /*else*/ {
    __pyx_t_1 = __pyx_v_self->var;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_obj = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "django_templates_cythonized/base.py":963
 *             obj = self.var
 *         fi: CFilterInfo
 *         for fi in self.filters:             # <<<<<<<<<<<<<<
 *             arg_vals = []
 *             for lookup, arg in fi.args:
*/
  if (unlikely(__pyx_v_self->filters == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 963, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_v_self->filters; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_12 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 963, __pyx_L1_error)
      #endif
      if (__pyx_t_12 >= __pyx_temp) break;
    }
    __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_12, __Pyx_ReferenceSharing_OwnStrongReference);
    ++__pyx_t_12;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo))))) __PYX_ERR(0, 963, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_fi, ((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":964
 *         fi: CFilterInfo
 *         for fi in self.filters:
 *             arg_vals = []             # <<<<<<<<<<<<<<
 *             for lookup, arg in fi.args:
 *                 if not lookup:
*/
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_arg_vals, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":965
 *         for fi in self.filters:
 *             arg_vals = []
 *             for lookup, arg in fi.args:             # <<<<<<<<<<<<<<
 *                 if not lookup:
 *                     arg_vals.append(mark_safe(arg))
*/
    if (unlikely(__pyx_v_fi->args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 965, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_v_fi->args; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_13 = 0;
    for (;;) {
      {
        Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 965, __pyx_L1_error)
        #endif
        if (__pyx_t_13 >= __pyx_temp) break;
      }
      __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_13, __Pyx_ReferenceSharing_OwnStrongReference);
      ++__pyx_t_13;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 965, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 965, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_11);
          __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_3);
        } else {
          __pyx_t_11 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 965, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_11);
          __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 965, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_3);
        }
        #else
        __pyx_t_11 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 965, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 965, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_14 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 965, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_14);
        index = 0; __pyx_t_11 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_11)) goto __pyx_L19_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_11);
        index = 1; __pyx_t_3 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_3)) goto __pyx_L19_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_3);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_14), 2) < (0)) __PYX_ERR(0, 965, __pyx_L1_error)
        __pyx_t_15 = NULL;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        goto __pyx_L20_unpacking_done;
        __pyx_L19_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_15 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 965, __pyx_L1_error)
        __pyx_L20_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_lookup, __pyx_t_11);
      __pyx_t_11 = 0;
      __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":966
 *             arg_vals = []
 *             for lookup, arg in fi.args:
 *                 if not lookup:             # <<<<<<<<<<<<<<
 *                     arg_vals.append(mark_safe(arg))
 *                 else:
*/
      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_lookup); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 966, __pyx_L1_error)
      __pyx_t_16 = (!__pyx_t_10);
      if (__pyx_t_16) {

        /* "django_templates_cythonized/base.py":967
 *             for lookup, arg in fi.args:
 *                 if not lookup:
 *                     arg_vals.append(mark_safe(arg))             # <<<<<<<<<<<<<<
 *                 else:
 *                     arg_vals.append(arg.resolve(context))
*/
        __pyx_t_3 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_mark_safe); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 967, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_arg};
          __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 967, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_arg_vals, __pyx_t_4); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 967, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "django_templates_cythonized/base.py":966
 *             arg_vals = []
 *             for lookup, arg in fi.args:
 *                 if not lookup:             # <<<<<<<<<<<<<<
 *                     arg_vals.append(mark_safe(arg))
 *                 else:
*/
        goto __pyx_L21;
      }

      /* "django_templates_cythonized/base.py":969
 *                     arg_vals.append(mark_safe(arg))
 *                 else:
 *                     arg_vals.append(arg.resolve(context))             # <<<<<<<<<<<<<<
 *             if fi.expects_localtime:
 *                 obj = template_localtime(obj, context.use_tz)
*/
      /*else*/ {
        __pyx_t_11 = __pyx_v_arg;
        __Pyx_INCREF(__pyx_t_11);
        __pyx_t_5 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_11, ((PyObject *)__pyx_v_context)};
          __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_resolve, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 969, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_arg_vals, __pyx_t_4); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 969, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __pyx_L21:;

      /* "django_templates_cythonized/base.py":965
 *         for fi in self.filters:
 *             arg_vals = []
 *             for lookup, arg in fi.args:             # <<<<<<<<<<<<<<
 *                 if not lookup:
 *                     arg_vals.append(mark_safe(arg))
*/
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":970
 *                 else:
 *                     arg_vals.append(arg.resolve(context))
 *             if fi.expects_localtime:             # <<<<<<<<<<<<<<
 *                 obj = template_localtime(obj, context.use_tz)
 *             if fi.needs_autoescape:
*/
    if (__pyx_v_fi->expects_localtime) {

      /* "django_templates_cythonized/base.py":971
 *                     arg_vals.append(arg.resolve(context))
 *             if fi.expects_localtime:
 *                 obj = template_localtime(obj, context.use_tz)             # <<<<<<<<<<<<<<
 *             if fi.needs_autoescape:
 *                 new_obj = fi.func(obj, autoescape=context.autoescape, *arg_vals)
*/
      __pyx_t_2 = __pyx_v_context->use_tz;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_18.__pyx_n = 1;
      __pyx_t_18.use_tz = __pyx_t_2;
      __pyx_t_4 = __pyx_f_27django_templates_cythonized_8timezone_template_localtime(__pyx_v_obj, 0, &__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":970
 *                 else:
 *                     arg_vals.append(arg.resolve(context))
 *             if fi.expects_localtime:             # <<<<<<<<<<<<<<
 *                 obj = template_localtime(obj, context.use_tz)
 *             if fi.needs_autoescape:
*/
    }

    /* "django_templates_cythonized/base.py":972
 *             if fi.expects_localtime:
 *                 obj = template_localtime(obj, context.use_tz)
 *             if fi.needs_autoescape:             # <<<<<<<<<<<<<<
 *                 new_obj = fi.func(obj, autoescape=context.autoescape, *arg_vals)
 *             else:
*/
    if (__pyx_v_fi->needs_autoescape) {

      /* "django_templates_cythonized/base.py":973
 *                 obj = template_localtime(obj, context.use_tz)
 *             if fi.needs_autoescape:
 *                 new_obj = fi.func(obj, autoescape=context.autoescape, *arg_vals)             # <<<<<<<<<<<<<<
 *             else:
 *                 new_obj = fi.func(obj, *arg_vals)
*/
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_obj);
      __Pyx_GIVEREF(__pyx_v_obj);
      if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_obj) != (0)) __PYX_ERR(0, 973, __pyx_L1_error);
      __pyx_t_2 = PySequence_Tuple(__pyx_v_arg_vals); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_11 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_context->autoescape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_autoescape, __pyx_t_4) < (0)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_fi->func, __pyx_t_11, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 973, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF_SET(__pyx_v_new_obj, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "django_templates_cythonized/base.py":972
 *             if fi.expects_localtime:
 *                 obj = template_localtime(obj, context.use_tz)
 *             if fi.needs_autoescape:             # <<<<<<<<<<<<<<
 *                 new_obj = fi.func(obj, autoescape=context.autoescape, *arg_vals)
 *             else:
*/
      goto __pyx_L24;
    }

    /* "django_templates_cythonized/base.py":975
 *                 new_obj = fi.func(obj, autoescape=context.autoescape, *arg_vals)
 *             else:
 *                 new_obj = fi.func(obj, *arg_vals)             # <<<<<<<<<<<<<<
 *             if fi.is_safe and isinstance(obj, SafeData):
 *                 obj = mark_safe(new_obj)
*/
    /*else*/ {
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_obj);
      __Pyx_GIVEREF(__pyx_v_obj);
      if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_obj) != (0)) __PYX_ERR(0, 975, __pyx_L1_error);
      __pyx_t_2 = PySequence_Tuple(__pyx_v_arg_vals); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_11 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 975, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_fi->func, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF_SET(__pyx_v_new_obj, __pyx_t_2);
      __pyx_t_2 = 0;
    }
    __pyx_L24:;

    /* "django_templates_cythonized/base.py":976
 *             else:
 *                 new_obj = fi.func(obj, *arg_vals)
 *             if fi.is_safe and isinstance(obj, SafeData):             # <<<<<<<<<<<<<<
 *                 obj = mark_safe(new_obj)
 *             else:
*/
    if (__pyx_v_fi->is_safe) {
    } else {
      __pyx_t_16 = __pyx_v_fi->is_safe;
      goto __pyx_L26_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 976, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_2); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 976, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = __pyx_t_10;
    __pyx_L26_bool_binop_done:;
    if (__pyx_t_16) {

      /* "django_templates_cythonized/base.py":977
 *                 new_obj = fi.func(obj, *arg_vals)
 *             if fi.is_safe and isinstance(obj, SafeData):
 *                 obj = mark_safe(new_obj)             # <<<<<<<<<<<<<<
 *             else:
 *                 obj = new_obj
*/
      __pyx_t_11 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_mark_safe); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 977, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_4);
        assert(__pyx_t_11);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_v_new_obj};
        __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 977, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":976
 *             else:
 *                 new_obj = fi.func(obj, *arg_vals)
 *             if fi.is_safe and isinstance(obj, SafeData):             # <<<<<<<<<<<<<<
 *                 obj = mark_safe(new_obj)
 *             else:
*/
      goto __pyx_L25;
    }

    /* "django_templates_cythonized/base.py":979
 *                 obj = mark_safe(new_obj)
 *             else:
 *                 obj = new_obj             # <<<<<<<<<<<<<<
 *         return obj
 * 
*/
    /*else*/ {
      __Pyx_INCREF(__pyx_v_new_obj);
      __Pyx_DECREF_SET(__pyx_v_obj, __pyx_v_new_obj);
    }
    __pyx_L25:;

    /* "django_templates_cythonized/base.py":963
 *             obj = self.var
 *         fi: CFilterInfo
 *         for fi in self.filters:             # <<<<<<<<<<<<<<
 *             arg_vals = []
 *             for lookup, arg in fi.args:
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":980
 *             else:
 *                 obj = new_obj
 *         return obj             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_obj);
  __pyx_r = __pyx_v_obj;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":943
 *                     self._fast_filter = FFILTER_STRINGFORMAT_S
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.resolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_obj);
  __Pyx_XDECREF(__pyx_v_string_if_invalid);
  __Pyx_XDECREF((PyObject *)__pyx_v_fi);
  __Pyx_XDECREF(__pyx_v_arg_vals);
  __Pyx_XDECREF(__pyx_v_lookup);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_new_obj);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3resolve(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_16FilterExpression_3resolve = {"resolve", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3resolve, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3resolve(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  PyObject *__pyx_v_ignore_failures = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("resolve (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,&__pyx_mstate_global->__pyx_n_u_ignore_failures,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 943, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 943, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 943, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "resolve", 0) < (0)) __PYX_ERR(0, 943, __pyx_L3_error)

      /* "django_templates_cythonized/base.py":944
 * 
 *     @cython.ccall
 *     def resolve(self, context: Context, ignore_failures=False):             # <<<<<<<<<<<<<<
 *         if self.is_var:
 *             try:
*/
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_False));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("resolve", 0, 1, 2, i); __PYX_ERR(0, 943, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 943, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 943, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_False));
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
    __pyx_v_ignore_failures = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("resolve", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 943, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.resolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 944, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_2resolve(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self), __pyx_v_context, __pyx_v_ignore_failures);

  /* "django_templates_cythonized/base.py":943
 *                     self._fast_filter = FFILTER_STRINGFORMAT_S
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_2resolve(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, PyObject *__pyx_v_ignore_failures) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_27django_templates_cythonized_4base_16FilterExpression_resolve __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("resolve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.ignore_failures = __pyx_v_ignore_failures;
  __pyx_t_1 = __pyx_vtabptr_27django_templates_cythonized_4base_FilterExpression->resolve(__pyx_v_self, __pyx_v_context, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.resolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":982
 *         return obj
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def args_check(name, func, provided):
 *         provided = list(provided)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5args_check(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_16FilterExpression_5args_check = {"args_check", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5args_check, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5args_check(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_func = 0;
  PyObject *__pyx_v_provided = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("args_check (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_func,&__pyx_mstate_global->__pyx_n_u_provided,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 982, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 982, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 982, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 982, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "args_check", 0) < (0)) __PYX_ERR(0, 982, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("args_check", 1, 3, 3, i); __PYX_ERR(0, 982, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 982, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 982, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 982, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
    __pyx_v_func = values[1];
    __pyx_v_provided = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("args_check", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 982, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.args_check", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_4args_check(__pyx_v_name, __pyx_v_func, __pyx_v_provided);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_4args_check(PyObject *__pyx_v_name, PyObject *__pyx_v_func, PyObject *__pyx_v_provided) {
  Py_ssize_t __pyx_v_plen;
  PyObject *__pyx_v_args = NULL;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  PyObject *__pyx_v_defaults = NULL;
  Py_ssize_t __pyx_v_alen;
  Py_ssize_t __pyx_v_dlen;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *(*__pyx_t_16)(PyObject *);
  PyObject *__pyx_t_17 = NULL;
  int __pyx_t_18;
  int __pyx_t_19;
  PyObject *__pyx_t_20[6];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("args_check", 0);
  __Pyx_INCREF(__pyx_v_func);
  __Pyx_INCREF(__pyx_v_provided);

  /* "django_templates_cythonized/base.py":984
 *     @staticmethod
 *     def args_check(name, func, provided):
 *         provided = list(provided)             # <<<<<<<<<<<<<<
 *         # First argument, filter input, is implied.
 *         plen = len(provided) + 1
*/
  __pyx_t_1 = PySequence_List(__pyx_v_provided); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_provided, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":986
 *         provided = list(provided)
 *         # First argument, filter input, is implied.
 *         plen = len(provided) + 1             # <<<<<<<<<<<<<<
 *         # Check to see if a decorator is providing the real function.
 *         func = inspect.unwrap(func)
*/
  __pyx_t_2 = PyObject_Length(__pyx_v_provided); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 986, __pyx_L1_error)
  __pyx_v_plen = (__pyx_t_2 + 1);

  /* "django_templates_cythonized/base.py":988
 *         plen = len(provided) + 1
 *         # Check to see if a decorator is providing the real function.
 *         func = inspect.unwrap(func)             # <<<<<<<<<<<<<<
 * 
 *         with lazy_annotations():
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_unwrap); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_func};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 988, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF_SET(__pyx_v_func, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":990
 *         func = inspect.unwrap(func)
 * 
 *         with lazy_annotations():             # <<<<<<<<<<<<<<
 *             args, _, _, defaults, _, _, _ = inspect.getfullargspec(func)
 *         alen = len(args)
*/
  /*with:*/ {
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_lazy_annotations); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 990, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 990, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 990, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 990, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 990, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_10);
        /*try:*/ {

          /* "django_templates_cythonized/base.py":991
 * 
 *         with lazy_annotations():
 *             args, _, _, defaults, _, _, _ = inspect.getfullargspec(func)             # <<<<<<<<<<<<<<
 *         alen = len(args)
 *         dlen = len(defaults or [])
*/
          __pyx_t_3 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_getfullargspec); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_6 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
            assert(__pyx_t_3);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
            __pyx_t_6 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_func};
            __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 991, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
          }
          if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
            PyObject* sequence = __pyx_t_1;
            Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
            if (unlikely(size != 7)) {
              if (size > 7) __Pyx_RaiseTooManyValuesError(7);
              else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
              __PYX_ERR(0, 991, __pyx_L7_error)
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            if (likely(PyTuple_CheckExact(sequence))) {
              __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
              __Pyx_INCREF(__pyx_t_5);
              __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
              __Pyx_INCREF(__pyx_t_3);
              __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2);
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3);
              __Pyx_INCREF(__pyx_t_11);
              __pyx_t_12 = PyTuple_GET_ITEM(sequence, 4);
              __Pyx_INCREF(__pyx_t_12);
              __pyx_t_13 = PyTuple_GET_ITEM(sequence, 5);
              __Pyx_INCREF(__pyx_t_13);
              __pyx_t_14 = PyTuple_GET_ITEM(sequence, 6);
              __Pyx_INCREF(__pyx_t_14);
            } else {
              __pyx_t_5 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
              if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L7_error)
              __Pyx_XGOTREF(__pyx_t_5);
              __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
              if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L7_error)
              __Pyx_XGOTREF(__pyx_t_3);
              __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 2, __Pyx_ReferenceSharing_SharedReference);
              if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L7_error)
              __Pyx_XGOTREF(__pyx_t_4);
              __pyx_t_11 = __Pyx_PyList_GetItemRefFast(sequence, 3, __Pyx_ReferenceSharing_SharedReference);
              if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 991, __pyx_L7_error)
              __Pyx_XGOTREF(__pyx_t_11);
              __pyx_t_12 = __Pyx_PyList_GetItemRefFast(sequence, 4, __Pyx_ReferenceSharing_SharedReference);
              if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 991, __pyx_L7_error)
              __Pyx_XGOTREF(__pyx_t_12);
              __pyx_t_13 = __Pyx_PyList_GetItemRefFast(sequence, 5, __Pyx_ReferenceSharing_SharedReference);
              if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L7_error)
              __Pyx_XGOTREF(__pyx_t_13);
              __pyx_t_14 = __Pyx_PyList_GetItemRefFast(sequence, 6, __Pyx_ReferenceSharing_SharedReference);
              if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 991, __pyx_L7_error)
              __Pyx_XGOTREF(__pyx_t_14);
            }
            #else
            {
              Py_ssize_t i;
              PyObject** temps[7] = {&__pyx_t_5,&__pyx_t_3,&__pyx_t_4,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14};
              for (i=0; i < 7; i++) {
                PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 991, __pyx_L7_error)
                __Pyx_GOTREF(item);
                *(temps[i]) = item;
              }
            }
            #endif
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          } else {
            Py_ssize_t index = -1;
            PyObject** temps[7] = {&__pyx_t_5,&__pyx_t_3,&__pyx_t_4,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14};
            __pyx_t_15 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 991, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_16 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_15);
            for (index=0; index < 7; index++) {
              PyObject* item = __pyx_t_16(__pyx_t_15); if (unlikely(!item)) goto __pyx_L13_unpacking_failed;
              __Pyx_GOTREF(item);
              *(temps[index]) = item;
            }
            if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 7) < (0)) __PYX_ERR(0, 991, __pyx_L7_error)
            __pyx_t_16 = NULL;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            goto __pyx_L14_unpacking_done;
            __pyx_L13_unpacking_failed:;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_16 = NULL;
            if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
            __PYX_ERR(0, 991, __pyx_L7_error)
            __pyx_L14_unpacking_done:;
          }
          __pyx_v_args = __pyx_t_5;
          __pyx_t_5 = 0;
          __pyx_v__ = __pyx_t_3;
          __pyx_t_3 = 0;
          __Pyx_DECREF_SET(__pyx_v__, __pyx_t_4);
          __pyx_t_4 = 0;
          __pyx_v_defaults = __pyx_t_11;
          __pyx_t_11 = 0;
          __Pyx_DECREF_SET(__pyx_v__, __pyx_t_12);
          __pyx_t_12 = 0;
          __Pyx_DECREF_SET(__pyx_v__, __pyx_t_13);
          __pyx_t_13 = 0;
          __Pyx_DECREF_SET(__pyx_v__, __pyx_t_14);
          __pyx_t_14 = 0;

          /* "django_templates_cythonized/base.py":990
 *         func = inspect.unwrap(func)
 * 
 *         with lazy_annotations():             # <<<<<<<<<<<<<<
 *             args, _, _, defaults, _, _, _ = inspect.getfullargspec(func)
 *         alen = len(args)
*/
        }
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.args_check", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_14, &__pyx_t_13) < 0) __PYX_ERR(0, 990, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_13);
          __pyx_t_12 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 990, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 990, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (__pyx_t_18 < (0)) __PYX_ERR(0, 990, __pyx_L9_except_error)
          __pyx_t_19 = (!__pyx_t_18);
          if (unlikely(__pyx_t_19)) {
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_14, __pyx_t_13);
            __pyx_t_1 = 0;  __pyx_t_14 = 0;  __pyx_t_13 = 0; 
            __PYX_ERR(0, 990, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_7) {
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[1], NULL);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 990, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L18;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L1_error;
    __pyx_L18:;
  }

  /* "django_templates_cythonized/base.py":992
 *         with lazy_annotations():
 *             args, _, _, defaults, _, _, _ = inspect.getfullargspec(func)
 *         alen = len(args)             # <<<<<<<<<<<<<<
 *         dlen = len(defaults or [])
 *         # Not enough OR Too many
*/
  if (unlikely(!__pyx_v_args)) { __Pyx_RaiseUnboundLocalError("args"); __PYX_ERR(0, 992, __pyx_L1_error) }
  __pyx_t_2 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 992, __pyx_L1_error)
  __pyx_v_alen = __pyx_t_2;

  /* "django_templates_cythonized/base.py":993
 *             args, _, _, defaults, _, _, _ = inspect.getfullargspec(func)
 *         alen = len(args)
 *         dlen = len(defaults or [])             # <<<<<<<<<<<<<<
 *         # Not enough OR Too many
 *         if plen < (alen - dlen) or plen > alen:
*/
  if (unlikely(!__pyx_v_defaults)) { __Pyx_RaiseUnboundLocalError("defaults"); __PYX_ERR(0, 993, __pyx_L1_error) }
  __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_defaults); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!__pyx_t_19) {
  } else {
    __Pyx_INCREF(__pyx_v_defaults);
    __pyx_t_13 = __pyx_v_defaults;
    goto __pyx_L19_bool_binop_done;
  }
  __pyx_t_14 = PyList_New(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_INCREF(__pyx_t_14);
  __pyx_t_13 = __pyx_t_14;
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_L19_bool_binop_done:;
  __pyx_t_2 = PyObject_Length(__pyx_t_13); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_v_dlen = __pyx_t_2;

  /* "django_templates_cythonized/base.py":995
 *         dlen = len(defaults or [])
 *         # Not enough OR Too many
 *         if plen < (alen - dlen) or plen > alen:             # <<<<<<<<<<<<<<
 *             raise TemplateSyntaxError("%s requires %d arguments, %d provided" % (name, alen - dlen, plen))
 * 
*/
  __pyx_t_18 = (__pyx_v_plen < (__pyx_v_alen - __pyx_v_dlen));
  if (!__pyx_t_18) {
  } else {
    __pyx_t_19 = __pyx_t_18;
    goto __pyx_L22_bool_binop_done;
  }
  __pyx_t_18 = (__pyx_v_plen > __pyx_v_alen);
  __pyx_t_19 = __pyx_t_18;
  __pyx_L22_bool_binop_done:;
  if (unlikely(__pyx_t_19)) {

    /* "django_templates_cythonized/base.py":996
 *         # Not enough OR Too many
 *         if plen < (alen - dlen) or plen > alen:
 *             raise TemplateSyntaxError("%s requires %d arguments, %d provided" % (name, alen - dlen, plen))             # <<<<<<<<<<<<<<
 * 
 *         return True
*/
    __pyx_t_14 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_11 = __Pyx_PyUnicode_From_Py_ssize_t((__pyx_v_alen - __pyx_v_dlen), 0, ' ', 'd'); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_4 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_plen, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_20[0] = __pyx_t_12;
    __pyx_t_20[1] = __pyx_mstate_global->__pyx_kp_u_requires;
    __pyx_t_20[2] = __pyx_t_11;
    __pyx_t_20[3] = __pyx_mstate_global->__pyx_kp_u_arguments;
    __pyx_t_20[4] = __pyx_t_4;
    __pyx_t_20[5] = __pyx_mstate_global->__pyx_kp_u_provided_2;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_20, 6, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12) + 10 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 9, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12));
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_1);
      assert(__pyx_t_14);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_t_3};
      __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 996, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
    }
    __Pyx_Raise(__pyx_t_13, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __PYX_ERR(0, 996, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":995
 *         dlen = len(defaults or [])
 *         # Not enough OR Too many
 *         if plen < (alen - dlen) or plen > alen:             # <<<<<<<<<<<<<<
 *             raise TemplateSyntaxError("%s requires %d arguments, %d provided" % (name, alen - dlen, plen))
 * 
*/
  }

  /* "django_templates_cythonized/base.py":998
 *             raise TemplateSyntaxError("%s requires %d arguments, %d provided" % (name, alen - dlen, plen))
 * 
 *         return True             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_True);
  __pyx_r = Py_True;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":982
 *         return obj
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def args_check(name, func, provided):
 *         provided = list(provided)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.args_check", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v__);
  __Pyx_XDECREF(__pyx_v_defaults);
  __Pyx_XDECREF(__pyx_v_func);
  __Pyx_XDECREF(__pyx_v_provided);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1000
 *         return True
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.token
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_6__str__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_6__str__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "django_templates_cythonized/base.py":1001
 * 
 *     def __str__(self):
 *         return self.token             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->token);
  __pyx_r = __pyx_v_self->token;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1000
 *         return True
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.token
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1003
 *         return self.token
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s %r>" % (self.__class__.__qualname__, self.token)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_9__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_8__repr__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_8__repr__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[5];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":1004
 * 
 *     def __repr__(self):
 *         return "<%s %r>" % (self.__class__.__qualname__, self.token)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_qualname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_self->token), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u__13;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_3[4] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 5, 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1003
 *         return self.token
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s %r>" % (self.__class__.__qualname__, self.token)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":45
 * 
 * cdef class FilterExpression:
 *     cdef public object token             # <<<<<<<<<<<<<<
 *     cdef public list filters
 *     cdef public object var
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5token_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5token_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_5token___get__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_5token___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->token);
  __pyx_r = __pyx_v_self->token;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5token_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5token_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_5token_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_5token_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->token);
  __Pyx_DECREF(__pyx_v_self->token);
  __pyx_v_self->token = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5token_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5token_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_5token_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_5token_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->token);
  __Pyx_DECREF(__pyx_v_self->token);
  __pyx_v_self->token = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":46
 * cdef class FilterExpression:
 *     cdef public object token
 *     cdef public list filters             # <<<<<<<<<<<<<<
 *     cdef public object var
 *     cdef public bint is_var
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7filters_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7filters_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_7filters___get__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_7filters___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->filters);
  __pyx_r = __pyx_v_self->filters;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7filters_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7filters_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_7filters_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_7filters_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->filters);
  __Pyx_DECREF(__pyx_v_self->filters);
  __pyx_v_self->filters = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.filters.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7filters_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7filters_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_7filters_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_7filters_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->filters);
  __Pyx_DECREF(__pyx_v_self->filters);
  __pyx_v_self->filters = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":47
 *     cdef public object token
 *     cdef public list filters
 *     cdef public object var             # <<<<<<<<<<<<<<
 *     cdef public bint is_var
 *     cdef public int _fast_filter
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3var_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3var_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_3var___get__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_3var___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->var);
  __pyx_r = __pyx_v_self->var;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3var_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3var_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_3var_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_3var_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->var);
  __Pyx_DECREF(__pyx_v_self->var);
  __pyx_v_self->var = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3var_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3var_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_3var_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_3var_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->var);
  __Pyx_DECREF(__pyx_v_self->var);
  __pyx_v_self->var = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":48
 *     cdef public list filters
 *     cdef public object var
 *     cdef public bint is_var             # <<<<<<<<<<<<<<
 *     cdef public int _fast_filter
 *     cpdef resolve(self, Context context, ignore_failures=*)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_6is_var_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_6is_var_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_6is_var___get__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_6is_var___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->is_var); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.is_var.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_6is_var_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_6is_var_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_6is_var_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_6is_var_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error)
  __pyx_v_self->is_var = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.is_var.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":49
 *     cdef public object var
 *     cdef public bint is_var
 *     cdef public int _fast_filter             # <<<<<<<<<<<<<<
 *     cpdef resolve(self, Context context, ignore_failures=*)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter___get__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter___get__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_fast_filter); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression._fast_filter.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 49, __pyx_L1_error)
  __pyx_v_self->_fast_filter = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression._fast_filter.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_16FilterExpression_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_10__reduce_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_10__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._fast_filter, self.filters, self.is_var, self.token, self.var)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_fast_filter); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->is_var); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->filters);
  __Pyx_GIVEREF(__pyx_v_self->filters);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->filters) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->token);
  __Pyx_GIVEREF(__pyx_v_self->token);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_self->token) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->var);
  __Pyx_GIVEREF(__pyx_v_self->var);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->var) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._fast_filter, self.filters, self.is_var, self.token, self.var)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._fast_filter, self.filters, self.is_var, self.token, self.var)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.filters is not None or self.token is not None or self.var is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._fast_filter, self.filters, self.is_var, self.token, self.var)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.filters is not None or self.token is not None or self.var is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, None), state
*/
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->filters != ((PyObject*)Py_None));
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->token != Py_None);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->var != Py_None);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.filters is not None or self.token is not None or self.var is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.filters is not None or self.token is not None or self.var is not None
 *     if use_setstate:
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FilterExpression); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_256349668);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_256349668);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_256349668) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.filters is not None or self.token is not None or self.var is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, None), state
 *     else:
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FilterExpression__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FilterExpression); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_256349668);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_256349668);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_mstate_global->__pyx_int_256349668) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FilterExpression__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_16FilterExpression_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_16FilterExpression_12__setstate_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_16FilterExpression_12__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FilterExpression__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_FilterExpression__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FilterExpression__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.FilterExpression.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1033
 *     message_context = cython.declare(object, visibility="public")
 * 
 *     def __init__(self, var):             # <<<<<<<<<<<<<<
 *         self.var = var
 *         self.literal = None
*/

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_var = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_var,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1033, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1033, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1033, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 1033, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1033, __pyx_L3_error)
    }
    __pyx_v_var = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1033, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable___init__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self), __pyx_v_var);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable___init__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_var) {
  Py_UCS4 __pyx_v_c;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  Py_UCS4 *__pyx_t_21;
  Py_UCS4 __pyx_t_22[2];
  Py_UCS4 *__pyx_t_23;
  Py_UCS4 *__pyx_t_24;
  PyObject *__pyx_t_25 = NULL;
  PyObject *__pyx_t_26[5];
  PyObject *__pyx_t_27 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_var);

  /* "django_templates_cythonized/base.py":1034
 * 
 *     def __init__(self, var):
 *         self.var = var             # <<<<<<<<<<<<<<
 *         self.literal = None
 *         self.lookups = None
*/
  __Pyx_INCREF(__pyx_v_var);
  __Pyx_GIVEREF(__pyx_v_var);
  __Pyx_GOTREF(__pyx_v_self->var);
  __Pyx_DECREF(__pyx_v_self->var);
  __pyx_v_self->var = __pyx_v_var;

  /* "django_templates_cythonized/base.py":1035
 *     def __init__(self, var):
 *         self.var = var
 *         self.literal = None             # <<<<<<<<<<<<<<
 *         self.lookups = None
 *         self.translate = False
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->literal);
  __Pyx_DECREF(__pyx_v_self->literal);
  __pyx_v_self->literal = Py_None;

  /* "django_templates_cythonized/base.py":1036
 *         self.var = var
 *         self.literal = None
 *         self.lookups = None             # <<<<<<<<<<<<<<
 *         self.translate = False
 *         self.message_context = None
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->lookups);
  __Pyx_DECREF(__pyx_v_self->lookups);
  __pyx_v_self->lookups = Py_None;

  /* "django_templates_cythonized/base.py":1037
 *         self.literal = None
 *         self.lookups = None
 *         self.translate = False             # <<<<<<<<<<<<<<
 *         self.message_context = None
 * 
*/
  __pyx_v_self->translate = 0;

  /* "django_templates_cythonized/base.py":1038
 *         self.lookups = None
 *         self.translate = False
 *         self.message_context = None             # <<<<<<<<<<<<<<
 * 
 *         if not isinstance(var, str):
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->message_context);
  __Pyx_DECREF(__pyx_v_self->message_context);
  __pyx_v_self->message_context = Py_None;

  /* "django_templates_cythonized/base.py":1040
 *         self.message_context = None
 * 
 *         if not isinstance(var, str):             # <<<<<<<<<<<<<<
 *             raise TypeError("Variable must be a string or number, got %s" % type(var))
 *         try:
*/
  __pyx_t_1 = PyUnicode_Check(__pyx_v_var); 
  __pyx_t_2 = (!__pyx_t_1);
  if (unlikely(__pyx_t_2)) {

    /* "django_templates_cythonized/base.py":1041
 * 
 *         if not isinstance(var, str):
 *             raise TypeError("Variable must be a string or number, got %s" % type(var))             # <<<<<<<<<<<<<<
 *         try:
 *             # First try to treat this variable as a number.
*/
    __pyx_t_4 = NULL;
    __pyx_t_5 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Variable_must_be_a_string_or_num, ((PyObject *)Py_TYPE(__pyx_v_var))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1041, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 1041, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":1040
 *         self.message_context = None
 * 
 *         if not isinstance(var, str):             # <<<<<<<<<<<<<<
 *             raise TypeError("Variable must be a string or number, got %s" % type(var))
 *         try:
*/
  }

  /* "django_templates_cythonized/base.py":1042
 *         if not isinstance(var, str):
 *             raise TypeError("Variable must be a string or number, got %s" % type(var))
 *         try:             # <<<<<<<<<<<<<<
 *             # First try to treat this variable as a number.
 *             #
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    /*try:*/ {

      /* "django_templates_cythonized/base.py":1051
 *             # Try to interpret values containing a period or an 'e'/'E'
 *             # (possibly scientific notation) as a float;  otherwise, try int.
 *             if "." in var or "e" in var.lower():             # <<<<<<<<<<<<<<
 *                 self.literal = float(var)
 *                 # "2." is invalid
*/
      __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_var, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1051, __pyx_L4_error)
      if (!__pyx_t_1) {
      } else {
        __pyx_t_2 = __pyx_t_1;
        goto __pyx_L11_bool_binop_done;
      }
      __pyx_t_5 = __pyx_v_var;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1051, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_e, __pyx_t_3, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1051, __pyx_L4_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_2 = __pyx_t_1;
      __pyx_L11_bool_binop_done:;
      if (__pyx_t_2) {

        /* "django_templates_cythonized/base.py":1052
 *             # (possibly scientific notation) as a float;  otherwise, try int.
 *             if "." in var or "e" in var.lower():
 *                 self.literal = float(var)             # <<<<<<<<<<<<<<
 *                 # "2." is invalid
 *                 if var[-1] == ".":
*/
        __pyx_t_3 = __Pyx_PyNumber_Float(__pyx_v_var); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1052, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __Pyx_GOTREF(__pyx_v_self->literal);
        __Pyx_DECREF(__pyx_v_self->literal);
        __pyx_v_self->literal = __pyx_t_3;
        __pyx_t_3 = 0;

        /* "django_templates_cythonized/base.py":1054
 *                 self.literal = float(var)
 *                 # "2." is invalid
 *                 if var[-1] == ".":             # <<<<<<<<<<<<<<
 *                     raise ValueError
 *             else:
*/
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_var, -1L, long, 1, __Pyx_PyLong_From_long, 0, 1, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1054, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_kp_u__3, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1054, __pyx_L4_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(__pyx_t_2)) {

          /* "django_templates_cythonized/base.py":1055
 *                 # "2." is invalid
 *                 if var[-1] == ".":
 *                     raise ValueError             # <<<<<<<<<<<<<<
 *             else:
 *                 self.literal = int(var)
*/
          __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_ValueError))), 0, 0, 0);
          __PYX_ERR(0, 1055, __pyx_L4_error)

          /* "django_templates_cythonized/base.py":1054
 *                 self.literal = float(var)
 *                 # "2." is invalid
 *                 if var[-1] == ".":             # <<<<<<<<<<<<<<
 *                     raise ValueError
 *             else:
*/
        }

        /* "django_templates_cythonized/base.py":1051
 *             # Try to interpret values containing a period or an 'e'/'E'
 *             # (possibly scientific notation) as a float;  otherwise, try int.
 *             if "." in var or "e" in var.lower():             # <<<<<<<<<<<<<<
 *                 self.literal = float(var)
 *                 # "2." is invalid
*/
        goto __pyx_L10;
      }

      /* "django_templates_cythonized/base.py":1057
 *                     raise ValueError
 *             else:
 *                 self.literal = int(var)             # <<<<<<<<<<<<<<
 *         except ValueError:
 *             # A ValueError means that the variable isn't a number.
*/
      /*else*/ {
        __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_var); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1057, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __Pyx_GOTREF(__pyx_v_self->literal);
        __Pyx_DECREF(__pyx_v_self->literal);
        __pyx_v_self->literal = __pyx_t_3;
        __pyx_t_3 = 0;
      }
      __pyx_L10:;

      /* "django_templates_cythonized/base.py":1042
 *         if not isinstance(var, str):
 *             raise TypeError("Variable must be a string or number, got %s" % type(var))
 *         try:             # <<<<<<<<<<<<<<
 *             # First try to treat this variable as a number.
 *             #
*/
    }
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "django_templates_cythonized/base.py":1058
 *             else:
 *                 self.literal = int(var)
 *         except ValueError:             # <<<<<<<<<<<<<<
 *             # A ValueError means that the variable isn't a number.
 *             if var[0:2] == "_(" and var[-1] == ")":
*/
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
    if (__pyx_t_10) {
      __Pyx_AddTraceback("django_templates_cythonized.base.Variable.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(0, 1058, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);

      /* "django_templates_cythonized/base.py":1060
 *         except ValueError:
 *             # A ValueError means that the variable isn't a number.
 *             if var[0:2] == "_(" and var[-1] == ")":             # <<<<<<<<<<<<<<
 *                 # The result of the lookup should be translated at rendering
 *                 # time.
*/
      __pyx_t_11 = __Pyx_PyObject_GetSlice(__pyx_v_var, 0, 2, NULL, NULL, &__pyx_mstate_global->__pyx_slice[2], 1, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1060, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_mstate_global->__pyx_kp_u__18, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1060, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (__pyx_t_1) {
      } else {
        __pyx_t_2 = __pyx_t_1;
        goto __pyx_L17_bool_binop_done;
      }
      __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_var, -1L, long, 1, __Pyx_PyLong_From_long, 0, 1, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1060, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_mstate_global->__pyx_kp_u__12, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1060, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_2 = __pyx_t_1;
      __pyx_L17_bool_binop_done:;
      if (__pyx_t_2) {

        /* "django_templates_cythonized/base.py":1063
 *                 # The result of the lookup should be translated at rendering
 *                 # time.
 *                 self.translate = True             # <<<<<<<<<<<<<<
 *                 var = var[2:-1]
 *             # If it's wrapped with quotes (single or double), then
*/
        __pyx_v_self->translate = 1;

        /* "django_templates_cythonized/base.py":1064
 *                 # time.
 *                 self.translate = True
 *                 var = var[2:-1]             # <<<<<<<<<<<<<<
 *             # If it's wrapped with quotes (single or double), then
 *             # we're also dealing with a literal.
*/
        __pyx_t_11 = __Pyx_PyObject_GetSlice(__pyx_v_var, 2, -1L, NULL, NULL, &__pyx_mstate_global->__pyx_slice[5], 1, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1064, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF_SET(__pyx_v_var, __pyx_t_11);
        __pyx_t_11 = 0;

        /* "django_templates_cythonized/base.py":1060
 *         except ValueError:
 *             # A ValueError means that the variable isn't a number.
 *             if var[0:2] == "_(" and var[-1] == ")":             # <<<<<<<<<<<<<<
 *                 # The result of the lookup should be translated at rendering
 *                 # time.
*/
      }

      /* "django_templates_cythonized/base.py":1067
 *             # If it's wrapped with quotes (single or double), then
 *             # we're also dealing with a literal.
 *             try:             # <<<<<<<<<<<<<<
 *                 self.literal = mark_safe(unescape_string_literal(var))
 *             except ValueError:
*/
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
        __Pyx_XGOTREF(__pyx_t_12);
        __Pyx_XGOTREF(__pyx_t_13);
        __Pyx_XGOTREF(__pyx_t_14);
        /*try:*/ {

          /* "django_templates_cythonized/base.py":1068
 *             # we're also dealing with a literal.
 *             try:
 *                 self.literal = mark_safe(unescape_string_literal(var))             # <<<<<<<<<<<<<<
 *             except ValueError:
 *                 # Otherwise we'll set self.lookups so that resolve() knows
*/
          __pyx_t_15 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_mark_safe); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1068, __pyx_L19_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_18 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_unescape_string_literal); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1068, __pyx_L19_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_6 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_19))) {
            __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_19);
            assert(__pyx_t_18);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_19);
            __Pyx_INCREF(__pyx_t_18);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_19, __pyx__function);
            __pyx_t_6 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_v_var};
            __pyx_t_17 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_19, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1068, __pyx_L19_error)
            __Pyx_GOTREF(__pyx_t_17);
          }
          __pyx_t_6 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_16))) {
            __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_16);
            assert(__pyx_t_15);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_16);
            __Pyx_INCREF(__pyx_t_15);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_16, __pyx__function);
            __pyx_t_6 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_t_17};
            __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_16, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1068, __pyx_L19_error)
            __Pyx_GOTREF(__pyx_t_11);
          }
          __Pyx_GIVEREF(__pyx_t_11);
          __Pyx_GOTREF(__pyx_v_self->literal);
          __Pyx_DECREF(__pyx_v_self->literal);
          __pyx_v_self->literal = __pyx_t_11;
          __pyx_t_11 = 0;

          /* "django_templates_cythonized/base.py":1067
 *             # If it's wrapped with quotes (single or double), then
 *             # we're also dealing with a literal.
 *             try:             # <<<<<<<<<<<<<<
 *                 self.literal = mark_safe(unescape_string_literal(var))
 *             except ValueError:
*/
        }
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        goto __pyx_L26_try_end;
        __pyx_L19_error:;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;

        /* "django_templates_cythonized/base.py":1069
 *             try:
 *                 self.literal = mark_safe(unescape_string_literal(var))
 *             except ValueError:             # <<<<<<<<<<<<<<
 *                 # Otherwise we'll set self.lookups so that resolve() knows
 *                 # we're dealing with a bonafide variable
*/
        __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
        if (__pyx_t_10) {
          __Pyx_AddTraceback("django_templates_cythonized.base.Variable.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_16, &__pyx_t_17) < 0) __PYX_ERR(0, 1069, __pyx_L21_except_error)
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);

          /* "django_templates_cythonized/base.py":1072
 *                 # Otherwise we'll set self.lookups so that resolve() knows
 *                 # we're dealing with a bonafide variable
 *                 if VARIABLE_ATTRIBUTE_SEPARATOR + "_" in var or var[0] == "_":             # <<<<<<<<<<<<<<
 *                     raise TemplateSyntaxError("Variables and attributes may not begin with underscores: '%s'" % var)
 *                 # Disallow characters that are allowed in numbers but not in a
*/
          __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_VARIABLE_ATTRIBUTE_SEPARATOR); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1072, __pyx_L21_except_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_19 = PyNumber_Add(__pyx_t_15, __pyx_mstate_global->__pyx_n_u__19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1072, __pyx_L21_except_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_19, __pyx_v_var, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1072, __pyx_L21_except_error)
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          if (!__pyx_t_1) {
          } else {
            __pyx_t_2 = __pyx_t_1;
            goto __pyx_L30_bool_binop_done;
          }
          __pyx_t_19 = __Pyx_GetItemInt(__pyx_v_var, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1072, __pyx_L21_except_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_19, __pyx_mstate_global->__pyx_n_u__19, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1072, __pyx_L21_except_error)
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_2 = __pyx_t_1;
          __pyx_L30_bool_binop_done:;
          if (unlikely(__pyx_t_2)) {

            /* "django_templates_cythonized/base.py":1073
 *                 # we're dealing with a bonafide variable
 *                 if VARIABLE_ATTRIBUTE_SEPARATOR + "_" in var or var[0] == "_":
 *                     raise TemplateSyntaxError("Variables and attributes may not begin with underscores: '%s'" % var)             # <<<<<<<<<<<<<<
 *                 # Disallow characters that are allowed in numbers but not in a
 *                 # variable name.
*/
            __pyx_t_15 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1073, __pyx_L21_except_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_20 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Variables_and_attributes_may_not, __pyx_v_var); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1073, __pyx_L21_except_error)
            __Pyx_GOTREF(__pyx_t_20);
            __pyx_t_6 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_18))) {
              __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_18);
              assert(__pyx_t_15);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_18);
              __Pyx_INCREF(__pyx_t_15);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_18, __pyx__function);
              __pyx_t_6 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_t_20};
              __pyx_t_19 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_18, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1073, __pyx_L21_except_error)
              __Pyx_GOTREF(__pyx_t_19);
            }
            __Pyx_Raise(__pyx_t_19, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __PYX_ERR(0, 1073, __pyx_L21_except_error)

            /* "django_templates_cythonized/base.py":1072
 *                 # Otherwise we'll set self.lookups so that resolve() knows
 *                 # we're dealing with a bonafide variable
 *                 if VARIABLE_ATTRIBUTE_SEPARATOR + "_" in var or var[0] == "_":             # <<<<<<<<<<<<<<
 *                     raise TemplateSyntaxError("Variables and attributes may not begin with underscores: '%s'" % var)
 *                 # Disallow characters that are allowed in numbers but not in a
*/
          }

          /* "django_templates_cythonized/base.py":1076
 *                 # Disallow characters that are allowed in numbers but not in a
 *                 # variable name.
 *                 for c in ["+", "-"]:             # <<<<<<<<<<<<<<
 *                     if c in var:
 *                         raise TemplateSyntaxError("Invalid character ('%s') in variable name: '%s'" % (c, var))
*/
          __pyx_t_22[0] = 43;
          __pyx_t_22[1] = 45;
          __pyx_t_23 = (__pyx_t_22 + 2);
          for (__pyx_t_24 = __pyx_t_22; __pyx_t_24 < __pyx_t_23; __pyx_t_24++) {
            __pyx_t_21 = __pyx_t_24;
            __pyx_v_c = (__pyx_t_21[0]);

            /* "django_templates_cythonized/base.py":1077
 *                 # variable name.
 *                 for c in ["+", "-"]:
 *                     if c in var:             # <<<<<<<<<<<<<<
 *                         raise TemplateSyntaxError("Invalid character ('%s') in variable name: '%s'" % (c, var))
 *                 self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
*/
            __pyx_t_19 = __Pyx_PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1077, __pyx_L21_except_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_19, __pyx_v_var, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1077, __pyx_L21_except_error)
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            if (unlikely(__pyx_t_2)) {

              /* "django_templates_cythonized/base.py":1078
 *                 for c in ["+", "-"]:
 *                     if c in var:
 *                         raise TemplateSyntaxError("Invalid character ('%s') in variable name: '%s'" % (c, var))             # <<<<<<<<<<<<<<
 *                 self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
 * 
*/
              __pyx_t_18 = NULL;
              __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_TemplateSyntaxError); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1078, __pyx_L21_except_error)
              __Pyx_GOTREF(__pyx_t_20);
              __pyx_t_15 = __Pyx_PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1078, __pyx_L21_except_error)
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_25 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_var), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1078, __pyx_L21_except_error)
              __Pyx_GOTREF(__pyx_t_25);
              __pyx_t_26[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_character;
              __pyx_t_26[1] = __pyx_t_15;
              __pyx_t_26[2] = __pyx_mstate_global->__pyx_kp_u_in_variable_name;
              __pyx_t_26[3] = __pyx_t_25;
              __pyx_t_26[4] = __pyx_mstate_global->__pyx_kp_u__17;
              __pyx_t_27 = __Pyx_PyUnicode_Join(__pyx_t_26, 5, 20 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 22 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_25) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_15) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_25));
              if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1078, __pyx_L21_except_error)
              __Pyx_GOTREF(__pyx_t_27);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
              __pyx_t_6 = 1;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_20))) {
                __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_20);
                assert(__pyx_t_18);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_20);
                __Pyx_INCREF(__pyx_t_18);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_20, __pyx__function);
                __pyx_t_6 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_t_27};
                __pyx_t_19 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_20, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
                __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
                __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
                if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1078, __pyx_L21_except_error)
                __Pyx_GOTREF(__pyx_t_19);
              }
              __Pyx_Raise(__pyx_t_19, 0, 0, 0);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __PYX_ERR(0, 1078, __pyx_L21_except_error)

              /* "django_templates_cythonized/base.py":1077
 *                 # variable name.
 *                 for c in ["+", "-"]:
 *                     if c in var:             # <<<<<<<<<<<<<<
 *                         raise TemplateSyntaxError("Invalid character ('%s') in variable name: '%s'" % (c, var))
 *                 self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
*/
            }
          }

          /* "django_templates_cythonized/base.py":1079
 *                     if c in var:
 *                         raise TemplateSyntaxError("Invalid character ('%s') in variable name: '%s'" % (c, var))
 *                 self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
          __pyx_t_20 = __pyx_v_var;
          __Pyx_INCREF(__pyx_t_20);
          __Pyx_GetModuleGlobalName(__pyx_t_27, __pyx_mstate_global->__pyx_n_u_VARIABLE_ATTRIBUTE_SEPARATOR); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1079, __pyx_L21_except_error)
          __Pyx_GOTREF(__pyx_t_27);
          __pyx_t_6 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_20, __pyx_t_27};
            __pyx_t_19 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_split, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
            __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
            if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1079, __pyx_L21_except_error)
            __Pyx_GOTREF(__pyx_t_19);
          }
          __pyx_t_27 = __Pyx_PySequence_Tuple(__pyx_t_19); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1079, __pyx_L21_except_error)
          __Pyx_GOTREF(__pyx_t_27);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_GIVEREF(__pyx_t_27);
          __Pyx_GOTREF(__pyx_v_self->lookups);
          __Pyx_DECREF(__pyx_v_self->lookups);
          __pyx_v_self->lookups = __pyx_t_27;
          __pyx_t_27 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          goto __pyx_L20_exception_handled;
        }
        goto __pyx_L21_except_error;

        /* "django_templates_cythonized/base.py":1067
 *             # If it's wrapped with quotes (single or double), then
 *             # we're also dealing with a literal.
 *             try:             # <<<<<<<<<<<<<<
 *                 self.literal = mark_safe(unescape_string_literal(var))
 *             except ValueError:
*/
        __pyx_L21_except_error:;
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_XGIVEREF(__pyx_t_13);
        __Pyx_XGIVEREF(__pyx_t_14);
        __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
        goto __pyx_L6_except_error;
        __pyx_L20_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_XGIVEREF(__pyx_t_13);
        __Pyx_XGIVEREF(__pyx_t_14);
        __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
        __pyx_L26_try_end:;
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L5_exception_handled;
    }
    goto __pyx_L6_except_error;

    /* "django_templates_cythonized/base.py":1042
 *         if not isinstance(var, str):
 *             raise TypeError("Variable must be a string or number, got %s" % type(var))
 *         try:             # <<<<<<<<<<<<<<
 *             # First try to treat this variable as a number.
 *             #
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L1_error;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    __pyx_L9_try_end:;
  }

  /* "django_templates_cythonized/base.py":1033
 *     message_context = cython.declare(object, visibility="public")
 * 
 *     def __init__(self, var):             # <<<<<<<<<<<<<<
 *         self.var = var
 *         self.literal = None
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_25);
  __Pyx_XDECREF(__pyx_t_27);
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_var);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1081
 *                 self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def resolve(self, context):
 *         """Resolve this variable against a given context."""
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_3resolve(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8Variable_resolve(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_value = NULL;
  int __pyx_v_is_safe;
  PyObject *__pyx_v_msgid = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("resolve", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_resolve); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1081, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_8Variable_3resolve)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_context};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1081, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":1084
 *     def resolve(self, context):
 *         """Resolve this variable against a given context."""
 *         if self.lookups is not None:             # <<<<<<<<<<<<<<
 *             # We're dealing with a variable that needs to be resolved
 *             value = self._resolve_lookup(context)
*/
  __pyx_t_6 = (__pyx_v_self->lookups != Py_None);
  if (__pyx_t_6) {

    /* "django_templates_cythonized/base.py":1086
 *         if self.lookups is not None:
 *             # We're dealing with a variable that needs to be resolved
 *             value = self._resolve_lookup(context)             # <<<<<<<<<<<<<<
 *         else:
 *             # We're dealing with a literal, so it's already been "resolved"
*/
    __pyx_t_1 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_Variable *)__pyx_v_self->__pyx_vtab)->_resolve_lookup(__pyx_v_self, __pyx_v_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1086, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":1084
 *     def resolve(self, context):
 *         """Resolve this variable against a given context."""
 *         if self.lookups is not None:             # <<<<<<<<<<<<<<
 *             # We're dealing with a variable that needs to be resolved
 *             value = self._resolve_lookup(context)
*/
    goto __pyx_L3;
  }

  /* "django_templates_cythonized/base.py":1089
 *         else:
 *             # We're dealing with a literal, so it's already been "resolved"
 *             value = self.literal             # <<<<<<<<<<<<<<
 *         if self.translate:
 *             is_safe = isinstance(value, SafeData)
*/
  /*else*/ {
    __pyx_t_1 = __pyx_v_self->literal;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_value = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "django_templates_cythonized/base.py":1090
 *             # We're dealing with a literal, so it's already been "resolved"
 *             value = self.literal
 *         if self.translate:             # <<<<<<<<<<<<<<
 *             is_safe = isinstance(value, SafeData)
 *             msgid = value.replace("%", "%%")
*/
  if (__pyx_v_self->translate) {

    /* "django_templates_cythonized/base.py":1091
 *             value = self.literal
 *         if self.translate:
 *             is_safe = isinstance(value, SafeData)             # <<<<<<<<<<<<<<
 *             msgid = value.replace("%", "%%")
 *             msgid = mark_safe(msgid) if is_safe else msgid
*/
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1091, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_is_safe = __pyx_t_6;

    /* "django_templates_cythonized/base.py":1092
 *         if self.translate:
 *             is_safe = isinstance(value, SafeData)
 *             msgid = value.replace("%", "%%")             # <<<<<<<<<<<<<<
 *             msgid = mark_safe(msgid) if is_safe else msgid
 *             if self.message_context:
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1092, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[4], NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1092, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_msgid = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1093
 *             is_safe = isinstance(value, SafeData)
 *             msgid = value.replace("%", "%%")
 *             msgid = mark_safe(msgid) if is_safe else msgid             # <<<<<<<<<<<<<<
 *             if self.message_context:
 *                 return pgettext_lazy(self.message_context, msgid)
*/
    if (__pyx_v_is_safe) {
      __pyx_t_4 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_mark_safe); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1093, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
        assert(__pyx_t_4);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_msgid};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1093, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_2 = __pyx_t_1;
      __pyx_t_1 = 0;
    } else {
      __Pyx_INCREF(__pyx_v_msgid);
      __pyx_t_2 = __pyx_v_msgid;
    }
    __Pyx_DECREF_SET(__pyx_v_msgid, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1094
 *             msgid = value.replace("%", "%%")
 *             msgid = mark_safe(msgid) if is_safe else msgid
 *             if self.message_context:             # <<<<<<<<<<<<<<
 *                 return pgettext_lazy(self.message_context, msgid)
 *             else:
*/
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_self->message_context); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 1094, __pyx_L1_error)
    if (__pyx_t_6) {

      /* "django_templates_cythonized/base.py":1095
 *             msgid = mark_safe(msgid) if is_safe else msgid
 *             if self.message_context:
 *                 return pgettext_lazy(self.message_context, msgid)             # <<<<<<<<<<<<<<
 *             else:
 *                 return gettext_lazy(msgid)
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pgettext_lazy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1095, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
        assert(__pyx_t_1);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_self->message_context, __pyx_v_msgid};
        __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1095, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1094
 *             msgid = value.replace("%", "%%")
 *             msgid = mark_safe(msgid) if is_safe else msgid
 *             if self.message_context:             # <<<<<<<<<<<<<<
 *                 return pgettext_lazy(self.message_context, msgid)
 *             else:
*/
    }

    /* "django_templates_cythonized/base.py":1097
 *                 return pgettext_lazy(self.message_context, msgid)
 *             else:
 *                 return gettext_lazy(msgid)             # <<<<<<<<<<<<<<
 *         return value
 * 
*/
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_gettext_lazy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
        assert(__pyx_t_3);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_msgid};
        __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1097, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;
    }

    /* "django_templates_cythonized/base.py":1090
 *             # We're dealing with a literal, so it's already been "resolved"
 *             value = self.literal
 *         if self.translate:             # <<<<<<<<<<<<<<
 *             is_safe = isinstance(value, SafeData)
 *             msgid = value.replace("%", "%%")
*/
  }

  /* "django_templates_cythonized/base.py":1098
 *             else:
 *                 return gettext_lazy(msgid)
 *         return value             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_value);
  __pyx_r = __pyx_v_value;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1081
 *                 self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def resolve(self, context):
 *         """Resolve this variable against a given context."""
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.resolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_msgid);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_3resolve(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_8Variable_2resolve, "Resolve this variable against a given context.");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8Variable_3resolve = {"resolve", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Variable_3resolve, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_8Variable_2resolve};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_3resolve(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("resolve (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1081, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1081, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "resolve", 0) < (0)) __PYX_ERR(0, 1081, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("resolve", 1, 1, 1, i); __PYX_ERR(0, 1081, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1081, __pyx_L3_error)
    }
    __pyx_v_context = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("resolve", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1081, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.resolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_2resolve(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_2resolve(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("resolve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_8Variable_resolve(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1081, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.resolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1100
 *         return value
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s: %r>" % (self.__class__.__name__, self.var)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_5__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_4__repr__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_4__repr__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[5];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":1101
 * 
 *     def __repr__(self):
 *         return "<%s: %r>" % (self.__class__.__name__, self.var)             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_self->var), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u__22;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_3[4] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 5, 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1100
 *         return value
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s: %r>" % (self.__class__.__name__, self.var)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1103
 *         return "<%s: %r>" % (self.__class__.__name__, self.var)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.var
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_7__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_7__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_6__str__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_6__str__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "django_templates_cythonized/base.py":1104
 * 
 *     def __str__(self):
 *         return self.var             # <<<<<<<<<<<<<<
 * 
 *     @cython.cfunc
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->var);
  __pyx_r = __pyx_v_self->var;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1103
 *         return "<%s: %r>" % (self.__class__.__name__, self.var)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.var
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1106
 *         return self.var
 * 
 *     @cython.cfunc             # <<<<<<<<<<<<<<
 *     def _resolve_lookup(self, context):
 *         """
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base_8Variable__resolve_lookup(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_context) {
  PyObject *__pyx_v_lookups = NULL;
  PyObject *__pyx_v_bit = NULL;
  PyObject *__pyx_v_current = NULL;
  PyObject *__pyx_v_signature = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_v_template_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  size_t __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *(*__pyx_t_22)(PyObject *);
  int __pyx_t_23;
  int __pyx_t_24;
  PyObject *__pyx_t_25 = NULL;
  PyObject *__pyx_t_26 = NULL;
  PyObject *__pyx_t_27 = NULL;
  PyObject *__pyx_t_28 = NULL;
  PyObject *__pyx_t_29 = NULL;
  PyObject *__pyx_t_30 = NULL;
  PyObject *__pyx_t_31 = NULL;
  PyObject *__pyx_t_32 = NULL;
  PyObject *__pyx_t_33 = NULL;
  int __pyx_t_34;
  char const *__pyx_t_35;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_resolve_lookup", 0);

  /* "django_templates_cythonized/base.py":1116
 *         instead.
 *         """
 *         lookups = self.lookups             # <<<<<<<<<<<<<<
 *         # Fast path: single-segment variable (e.g., {{ name }})  the common case.
 *         # Context always has __getitem__, no need for hasattr check or fallbacks.
*/
  __pyx_t_1 = __pyx_v_self->lookups;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_lookups = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1119
 *         # Fast path: single-segment variable (e.g., {{ name }})  the common case.
 *         # Context always has __getitem__, no need for hasattr check or fallbacks.
 *         if len(lookups) == 1:             # <<<<<<<<<<<<<<
 *             bit = lookups[0]
 *             try:
*/
  __pyx_t_2 = PyObject_Length(__pyx_v_lookups); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1119, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 == 1);
  if (__pyx_t_3) {

    /* "django_templates_cythonized/base.py":1120
 *         # Context always has __getitem__, no need for hasattr check or fallbacks.
 *         if len(lookups) == 1:
 *             bit = lookups[0]             # <<<<<<<<<<<<<<
 *             try:
 *                 current = context[bit]
*/
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_lookups, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_bit = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":1121
 *         if len(lookups) == 1:
 *             bit = lookups[0]
 *             try:             # <<<<<<<<<<<<<<
 *                 current = context[bit]
 *             except KeyError:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      /*try:*/ {

        /* "django_templates_cythonized/base.py":1122
 *             bit = lookups[0]
 *             try:
 *                 current = context[bit]             # <<<<<<<<<<<<<<
 *             except KeyError:
 *                 raise VariableDoesNotExist(
*/
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_context, __pyx_v_bit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1122, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_v_current = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1121
 *         if len(lookups) == 1:
 *             bit = lookups[0]
 *             try:             # <<<<<<<<<<<<<<
 *                 current = context[bit]
 *             except KeyError:
*/
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":1123
 *             try:
 *                 current = context[bit]
 *             except KeyError:             # <<<<<<<<<<<<<<
 *                 raise VariableDoesNotExist(
 *                     "Failed lookup for key [%s] in %r",
*/
      __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
      if (__pyx_t_7) {
        __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 1123, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_1);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);

        /* "django_templates_cythonized/base.py":1124
 *                 current = context[bit]
 *             except KeyError:
 *                 raise VariableDoesNotExist(             # <<<<<<<<<<<<<<
 *                     "Failed lookup for key [%s] in %r",
 *                     (bit, context),
*/
        __pyx_t_11 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1124, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_12);

        /* "django_templates_cythonized/base.py":1126
 *                 raise VariableDoesNotExist(
 *                     "Failed lookup for key [%s] in %r",
 *                     (bit, context),             # <<<<<<<<<<<<<<
 *                 )
 *             if callable(current):
*/
        __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1126, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_INCREF(__pyx_v_bit);
        __Pyx_GIVEREF(__pyx_v_bit);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_bit) != (0)) __PYX_ERR(0, 1126, __pyx_L6_except_error);
        __Pyx_INCREF(__pyx_v_context);
        __Pyx_GIVEREF(__pyx_v_context);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_context) != (0)) __PYX_ERR(0, 1126, __pyx_L6_except_error);
        __pyx_t_14 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
          assert(__pyx_t_11);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
          __pyx_t_14 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_mstate_global->__pyx_kp_u_Failed_lookup_for_key_s_in_r, __pyx_t_13};
          __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_14, (3-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1124, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_10);
        }
        __Pyx_Raise(__pyx_t_10, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __PYX_ERR(0, 1124, __pyx_L6_except_error)
      }
      goto __pyx_L6_except_error;

      /* "django_templates_cythonized/base.py":1121
 *         if len(lookups) == 1:
 *             bit = lookups[0]
 *             try:             # <<<<<<<<<<<<<<
 *                 current = context[bit]
 *             except KeyError:
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
      goto __pyx_L1_error;
      __pyx_L9_try_end:;
    }

    /* "django_templates_cythonized/base.py":1128
 *                     (bit, context),
 *                 )
 *             if callable(current):             # <<<<<<<<<<<<<<
 *                 if getattr(current, "do_not_call_in_templates", False):
 *                     pass
*/
    __pyx_t_3 = __Pyx_PyCallable_Check(__pyx_v_current); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1128, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "django_templates_cythonized/base.py":1129
 *                 )
 *             if callable(current):
 *                 if getattr(current, "do_not_call_in_templates", False):             # <<<<<<<<<<<<<<
 *                     pass
 *                 elif getattr(current, "alters_data", False):
*/
      __pyx_t_9 = __Pyx_GetAttr3(__pyx_v_current, __pyx_mstate_global->__pyx_n_u_do_not_call_in_templates, Py_False); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1129, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (__pyx_t_3) {
        goto __pyx_L13;
      }

      /* "django_templates_cythonized/base.py":1131
 *                 if getattr(current, "do_not_call_in_templates", False):
 *                     pass
 *                 elif getattr(current, "alters_data", False):             # <<<<<<<<<<<<<<
 *                     current = context.template.engine.string_if_invalid
 *                 else:
*/
      __pyx_t_9 = __Pyx_GetAttr3(__pyx_v_current, __pyx_mstate_global->__pyx_n_u_alters_data, Py_False); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1131, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1131, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (__pyx_t_3) {

        /* "django_templates_cythonized/base.py":1132
 *                     pass
 *                 elif getattr(current, "alters_data", False):
 *                     current = context.template.engine.string_if_invalid             # <<<<<<<<<<<<<<
 *                 else:
 *                     try:
*/
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_string_if_invalid); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_9);
        __pyx_t_9 = 0;

        /* "django_templates_cythonized/base.py":1131
 *                 if getattr(current, "do_not_call_in_templates", False):
 *                     pass
 *                 elif getattr(current, "alters_data", False):             # <<<<<<<<<<<<<<
 *                     current = context.template.engine.string_if_invalid
 *                 else:
*/
        goto __pyx_L13;
      }

      /* "django_templates_cythonized/base.py":1134
 *                     current = context.template.engine.string_if_invalid
 *                 else:
 *                     try:             # <<<<<<<<<<<<<<
 *                         current = current()
 *                     except TypeError:
*/
      /*else*/ {
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_6);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_4);
          /*try:*/ {

            /* "django_templates_cythonized/base.py":1135
 *                 else:
 *                     try:
 *                         current = current()             # <<<<<<<<<<<<<<
 *                     except TypeError:
 *                         try:
*/
            __pyx_t_8 = NULL;
            __Pyx_INCREF(__pyx_v_current);
            __pyx_t_1 = __pyx_v_current; 
            __pyx_t_14 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
              assert(__pyx_t_8);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_8);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
              __pyx_t_14 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
              __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1135, __pyx_L14_error)
              __Pyx_GOTREF(__pyx_t_9);
            }
            __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_9);
            __pyx_t_9 = 0;

            /* "django_templates_cythonized/base.py":1134
 *                     current = context.template.engine.string_if_invalid
 *                 else:
 *                     try:             # <<<<<<<<<<<<<<
 *                         current = current()
 *                     except TypeError:
*/
          }
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L19_try_end;
          __pyx_L14_error:;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

          /* "django_templates_cythonized/base.py":1136
 *                     try:
 *                         current = current()
 *                     except TypeError:             # <<<<<<<<<<<<<<
 *                         try:
 *                             signature = inspect.signature(current)
*/
          __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
          if (__pyx_t_7) {
            __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 1136, __pyx_L16_except_error)
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_1);
            __Pyx_XGOTREF(__pyx_t_8);

            /* "django_templates_cythonized/base.py":1137
 *                         current = current()
 *                     except TypeError:
 *                         try:             # <<<<<<<<<<<<<<
 *                             signature = inspect.signature(current)
 *                         except ValueError:
*/
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
              __Pyx_XGOTREF(__pyx_t_15);
              __Pyx_XGOTREF(__pyx_t_16);
              __Pyx_XGOTREF(__pyx_t_17);
              /*try:*/ {

                /* "django_templates_cythonized/base.py":1138
 *                     except TypeError:
 *                         try:
 *                             signature = inspect.signature(current)             # <<<<<<<<<<<<<<
 *                         except ValueError:
 *                             current = context.template.engine.string_if_invalid
*/
                __pyx_t_12 = NULL;
                __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1138, __pyx_L22_error)
                __Pyx_GOTREF(__pyx_t_13);
                __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_signature); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1138, __pyx_L22_error)
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __pyx_t_14 = 1;
                #if CYTHON_UNPACK_METHODS
                if (unlikely(PyMethod_Check(__pyx_t_11))) {
                  __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
                  assert(__pyx_t_12);
                  PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(__pyx__function);
                  __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
                  __pyx_t_14 = 0;
                }
                #endif
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_current};
                  __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                  if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1138, __pyx_L22_error)
                  __Pyx_GOTREF(__pyx_t_10);
                }
                __pyx_v_signature = __pyx_t_10;
                __pyx_t_10 = 0;

                /* "django_templates_cythonized/base.py":1137
 *                         current = current()
 *                     except TypeError:
 *                         try:             # <<<<<<<<<<<<<<
 *                             signature = inspect.signature(current)
 *                         except ValueError:
*/
              }

              /* "django_templates_cythonized/base.py":1142
 *                             current = context.template.engine.string_if_invalid
 *                         else:
 *                             try:             # <<<<<<<<<<<<<<
 *                                 signature.bind()
 *                             except TypeError:
*/
              /*else:*/ {
                {
                  __Pyx_PyThreadState_declare
                  __Pyx_PyThreadState_assign
                  __Pyx_ExceptionSave(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
                  __Pyx_XGOTREF(__pyx_t_18);
                  __Pyx_XGOTREF(__pyx_t_19);
                  __Pyx_XGOTREF(__pyx_t_20);
                  /*try:*/ {

                    /* "django_templates_cythonized/base.py":1143
 *                         else:
 *                             try:
 *                                 signature.bind()             # <<<<<<<<<<<<<<
 *                             except TypeError:
 *                                 current = context.template.engine.string_if_invalid
*/
                    __pyx_t_11 = __pyx_v_signature;
                    __Pyx_INCREF(__pyx_t_11);
                    __pyx_t_14 = 0;
                    {
                      PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
                      __pyx_t_10 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_bind, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                      if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1143, __pyx_L30_error)
                      __Pyx_GOTREF(__pyx_t_10);
                    }
                    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

                    /* "django_templates_cythonized/base.py":1142
 *                             current = context.template.engine.string_if_invalid
 *                         else:
 *                             try:             # <<<<<<<<<<<<<<
 *                                 signature.bind()
 *                             except TypeError:
*/
                  }

                  /* "django_templates_cythonized/base.py":1147
 *                                 current = context.template.engine.string_if_invalid
 *                             else:
 *                                 raise             # <<<<<<<<<<<<<<
 *             return current
 * 
*/
                  /*else:*/ {
                    __Pyx_GIVEREF(__pyx_t_9);
                    __Pyx_GIVEREF(__pyx_t_1);
                    __Pyx_XGIVEREF(__pyx_t_8);
                    __Pyx_ErrRestoreWithState(__pyx_t_9, __pyx_t_1, __pyx_t_8);
                    __pyx_t_9 = 0;  __pyx_t_1 = 0;  __pyx_t_8 = 0; 
                    __PYX_ERR(0, 1147, __pyx_L32_except_error)
                  }
                  __pyx_L30_error:;
                  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;

                  /* "django_templates_cythonized/base.py":1144
 *                             try:
 *                                 signature.bind()
 *                             except TypeError:             # <<<<<<<<<<<<<<
 *                                 current = context.template.engine.string_if_invalid
 *                             else:
*/
                  __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
                  if (__pyx_t_7) {
                    __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
                    if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0) __PYX_ERR(0, 1144, __pyx_L32_except_error)
                    __Pyx_XGOTREF(__pyx_t_10);
                    __Pyx_XGOTREF(__pyx_t_11);
                    __Pyx_XGOTREF(__pyx_t_12);

                    /* "django_templates_cythonized/base.py":1145
 *                                 signature.bind()
 *                             except TypeError:
 *                                 current = context.template.engine.string_if_invalid             # <<<<<<<<<<<<<<
 *                             else:
 *                                 raise
*/
                    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1145, __pyx_L32_except_error)
                    __Pyx_GOTREF(__pyx_t_13);
                    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1145, __pyx_L32_except_error)
                    __Pyx_GOTREF(__pyx_t_21);
                    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_string_if_invalid); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1145, __pyx_L32_except_error)
                    __Pyx_GOTREF(__pyx_t_13);
                    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                    __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_13);
                    __pyx_t_13 = 0;
                    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                    goto __pyx_L31_exception_handled;
                  }
                  goto __pyx_L32_except_error;

                  /* "django_templates_cythonized/base.py":1142
 *                             current = context.template.engine.string_if_invalid
 *                         else:
 *                             try:             # <<<<<<<<<<<<<<
 *                                 signature.bind()
 *                             except TypeError:
*/
                  __pyx_L32_except_error:;
                  __Pyx_XGIVEREF(__pyx_t_18);
                  __Pyx_XGIVEREF(__pyx_t_19);
                  __Pyx_XGIVEREF(__pyx_t_20);
                  __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
                  goto __pyx_L24_except_error;
                  __pyx_L31_exception_handled:;
                  __Pyx_XGIVEREF(__pyx_t_18);
                  __Pyx_XGIVEREF(__pyx_t_19);
                  __Pyx_XGIVEREF(__pyx_t_20);
                  __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
                }
              }
              __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
              __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
              goto __pyx_L29_try_end;
              __pyx_L22_error:;
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;

              /* "django_templates_cythonized/base.py":1139
 *                         try:
 *                             signature = inspect.signature(current)
 *                         except ValueError:             # <<<<<<<<<<<<<<
 *                             current = context.template.engine.string_if_invalid
 *                         else:
*/
              __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
              if (__pyx_t_7) {
                __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10) < 0) __PYX_ERR(0, 1139, __pyx_L24_except_error)
                __Pyx_XGOTREF(__pyx_t_12);
                __Pyx_XGOTREF(__pyx_t_11);
                __Pyx_XGOTREF(__pyx_t_10);

                /* "django_templates_cythonized/base.py":1140
 *                             signature = inspect.signature(current)
 *                         except ValueError:
 *                             current = context.template.engine.string_if_invalid             # <<<<<<<<<<<<<<
 *                         else:
 *                             try:
*/
                __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1140, __pyx_L24_except_error)
                __Pyx_GOTREF(__pyx_t_13);
                __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1140, __pyx_L24_except_error)
                __Pyx_GOTREF(__pyx_t_21);
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_string_if_invalid); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1140, __pyx_L24_except_error)
                __Pyx_GOTREF(__pyx_t_13);
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_13);
                __pyx_t_13 = 0;
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                goto __pyx_L23_exception_handled;
              }
              goto __pyx_L24_except_error;

              /* "django_templates_cythonized/base.py":1137
 *                         current = current()
 *                     except TypeError:
 *                         try:             # <<<<<<<<<<<<<<
 *                             signature = inspect.signature(current)
 *                         except ValueError:
*/
              __pyx_L24_except_error:;
              __Pyx_XGIVEREF(__pyx_t_15);
              __Pyx_XGIVEREF(__pyx_t_16);
              __Pyx_XGIVEREF(__pyx_t_17);
              __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
              goto __pyx_L16_except_error;
              __pyx_L23_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_15);
              __Pyx_XGIVEREF(__pyx_t_16);
              __Pyx_XGIVEREF(__pyx_t_17);
              __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
              __pyx_L29_try_end:;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            goto __pyx_L15_exception_handled;
          }
          goto __pyx_L16_except_error;

          /* "django_templates_cythonized/base.py":1134
 *                     current = context.template.engine.string_if_invalid
 *                 else:
 *                     try:             # <<<<<<<<<<<<<<
 *                         current = current()
 *                     except TypeError:
*/
          __pyx_L16_except_error:;
          __Pyx_XGIVEREF(__pyx_t_6);
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_4);
          __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
          goto __pyx_L1_error;
          __pyx_L15_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_6);
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_4);
          __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
          __pyx_L19_try_end:;
        }
      }
      __pyx_L13:;

      /* "django_templates_cythonized/base.py":1128
 *                     (bit, context),
 *                 )
 *             if callable(current):             # <<<<<<<<<<<<<<
 *                 if getattr(current, "do_not_call_in_templates", False):
 *                     pass
*/
    }

    /* "django_templates_cythonized/base.py":1148
 *                             else:
 *                                 raise
 *             return current             # <<<<<<<<<<<<<<
 * 
 *         current: object = context
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_current);
    __pyx_r = __pyx_v_current;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1119
 *         # Fast path: single-segment variable (e.g., {{ name }})  the common case.
 *         # Context always has __getitem__, no need for hasattr check or fallbacks.
 *         if len(lookups) == 1:             # <<<<<<<<<<<<<<
 *             bit = lookups[0]
 *             try:
*/
  }

  /* "django_templates_cythonized/base.py":1150
 *             return current
 * 
 *         current: object = context             # <<<<<<<<<<<<<<
 *         try:  # catch-all for silent variable failures
 *             for bit in lookups:
*/
  __Pyx_INCREF(__pyx_v_context);
  __pyx_v_current = __pyx_v_context;

  /* "django_templates_cythonized/base.py":1151
 * 
 *         current: object = context
 *         try:  # catch-all for silent variable failures             # <<<<<<<<<<<<<<
 *             for bit in lookups:
 *                 try:  # dictionary lookup
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    /*try:*/ {

      /* "django_templates_cythonized/base.py":1152
 *         current: object = context
 *         try:  # catch-all for silent variable failures
 *             for bit in lookups:             # <<<<<<<<<<<<<<
 *                 try:  # dictionary lookup
 *                     # Only allow if the metaclass implements __getitem__. See
*/
      if (likely(PyList_CheckExact(__pyx_v_lookups)) || PyTuple_CheckExact(__pyx_v_lookups)) {
        __pyx_t_8 = __pyx_v_lookups; __Pyx_INCREF(__pyx_t_8);
        __pyx_t_2 = 0;
        __pyx_t_22 = NULL;
      } else {
        __pyx_t_2 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_lookups); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1152, __pyx_L42_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1152, __pyx_L42_error)
      }
      for (;;) {
        if (likely(!__pyx_t_22)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1152, __pyx_L42_error)
              #endif
              if (__pyx_t_2 >= __pyx_temp) break;
            }
            __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_8, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
            ++__pyx_t_2;
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_8);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1152, __pyx_L42_error)
              #endif
              if (__pyx_t_2 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_2));
            #else
            __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_8, __pyx_t_2);
            #endif
            ++__pyx_t_2;
          }
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1152, __pyx_L42_error)
        } else {
          __pyx_t_1 = __pyx_t_22(__pyx_t_8);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1152, __pyx_L42_error)
              PyErr_Clear();
            }
            break;
          }
        }
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_bit, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1153
 *         try:  # catch-all for silent variable failures
 *             for bit in lookups:
 *                 try:  # dictionary lookup             # <<<<<<<<<<<<<<
 *                     # Only allow if the metaclass implements __getitem__. See
 *                     # https://docs.python.org/3/reference/datamodel.html#classgetitem-versus-getitem
*/
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_15);
          /*try:*/ {

            /* "django_templates_cythonized/base.py":1156
 *                     # Only allow if the metaclass implements __getitem__. See
 *                     # https://docs.python.org/3/reference/datamodel.html#classgetitem-versus-getitem
 *                     if not hasattr(type(current), "__getitem__"):             # <<<<<<<<<<<<<<
 *                         raise TypeError
 *                     current = current[bit]
*/
            __pyx_t_3 = __Pyx_HasAttr(((PyObject *)Py_TYPE(__pyx_v_current)), __pyx_mstate_global->__pyx_n_u_getitem); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1156, __pyx_L50_error)
            __pyx_t_23 = (!__pyx_t_3);
            if (unlikely(__pyx_t_23)) {

              /* "django_templates_cythonized/base.py":1157
 *                     # https://docs.python.org/3/reference/datamodel.html#classgetitem-versus-getitem
 *                     if not hasattr(type(current), "__getitem__"):
 *                         raise TypeError             # <<<<<<<<<<<<<<
 *                     current = current[bit]
 *                     # ValueError/IndexError are for numpy.array lookup on
*/
              __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), 0, 0, 0);
              __PYX_ERR(0, 1157, __pyx_L50_error)

              /* "django_templates_cythonized/base.py":1156
 *                     # Only allow if the metaclass implements __getitem__. See
 *                     # https://docs.python.org/3/reference/datamodel.html#classgetitem-versus-getitem
 *                     if not hasattr(type(current), "__getitem__"):             # <<<<<<<<<<<<<<
 *                         raise TypeError
 *                     current = current[bit]
*/
            }

            /* "django_templates_cythonized/base.py":1158
 *                     if not hasattr(type(current), "__getitem__"):
 *                         raise TypeError
 *                     current = current[bit]             # <<<<<<<<<<<<<<
 *                     # ValueError/IndexError are for numpy.array lookup on
 *                     # numpy < 1.9 and 1.9+ respectively
*/
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_current, __pyx_v_bit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1158, __pyx_L50_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_1);
            __pyx_t_1 = 0;

            /* "django_templates_cythonized/base.py":1153
 *         try:  # catch-all for silent variable failures
 *             for bit in lookups:
 *                 try:  # dictionary lookup             # <<<<<<<<<<<<<<
 *                     # Only allow if the metaclass implements __getitem__. See
 *                     # https://docs.python.org/3/reference/datamodel.html#classgetitem-versus-getitem
*/
          }
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          goto __pyx_L57_try_end;
          __pyx_L50_error:;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

          /* "django_templates_cythonized/base.py":1161
 *                     # ValueError/IndexError are for numpy.array lookup on
 *                     # numpy < 1.9 and 1.9+ respectively
 *                 except (TypeError, AttributeError, KeyError, ValueError, IndexError):             # <<<<<<<<<<<<<<
 *                     try:  # attribute lookup
 *                         # Don't return class attributes if the class is the
*/
          __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError))));
          if (__pyx_t_7) {
            __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_9, &__pyx_t_10) < 0) __PYX_ERR(0, 1161, __pyx_L52_except_error)
            __Pyx_XGOTREF(__pyx_t_1);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);

            /* "django_templates_cythonized/base.py":1162
 *                     # numpy < 1.9 and 1.9+ respectively
 *                 except (TypeError, AttributeError, KeyError, ValueError, IndexError):
 *                     try:  # attribute lookup             # <<<<<<<<<<<<<<
 *                         # Don't return class attributes if the class is the
 *                         # context:
*/
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18);
              __Pyx_XGOTREF(__pyx_t_20);
              __Pyx_XGOTREF(__pyx_t_19);
              __Pyx_XGOTREF(__pyx_t_18);
              /*try:*/ {

                /* "django_templates_cythonized/base.py":1165
 *                         # Don't return class attributes if the class is the
 *                         # context:
 *                         if isinstance(current, BaseContext) and getattr(type(current), bit):             # <<<<<<<<<<<<<<
 *                             raise AttributeError
 *                         current = getattr(current, bit)
*/
                __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_BaseContext); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1165, __pyx_L61_error)
                __Pyx_GOTREF(__pyx_t_11);
                __pyx_t_3 = PyObject_IsInstance(__pyx_v_current, __pyx_t_11); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1165, __pyx_L61_error)
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                if (__pyx_t_3) {
                } else {
                  __pyx_t_23 = __pyx_t_3;
                  goto __pyx_L70_bool_binop_done;
                }
                __pyx_t_11 = __Pyx_GetAttr(((PyObject *)Py_TYPE(__pyx_v_current)), __pyx_v_bit); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1165, __pyx_L61_error)
                __Pyx_GOTREF(__pyx_t_11);
                __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1165, __pyx_L61_error)
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                __pyx_t_23 = __pyx_t_3;
                __pyx_L70_bool_binop_done:;
                if (unlikely(__pyx_t_23)) {

                  /* "django_templates_cythonized/base.py":1166
 *                         # context:
 *                         if isinstance(current, BaseContext) and getattr(type(current), bit):
 *                             raise AttributeError             # <<<<<<<<<<<<<<
 *                         current = getattr(current, bit)
 *                     except (TypeError, AttributeError):
*/
                  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AttributeError))), 0, 0, 0);
                  __PYX_ERR(0, 1166, __pyx_L61_error)

                  /* "django_templates_cythonized/base.py":1165
 *                         # Don't return class attributes if the class is the
 *                         # context:
 *                         if isinstance(current, BaseContext) and getattr(type(current), bit):             # <<<<<<<<<<<<<<
 *                             raise AttributeError
 *                         current = getattr(current, bit)
*/
                }

                /* "django_templates_cythonized/base.py":1167
 *                         if isinstance(current, BaseContext) and getattr(type(current), bit):
 *                             raise AttributeError
 *                         current = getattr(current, bit)             # <<<<<<<<<<<<<<
 *                     except (TypeError, AttributeError):
 *                         # Reraise if the exception was raised by a @property
*/
                __pyx_t_11 = __Pyx_GetAttr(__pyx_v_current, __pyx_v_bit); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1167, __pyx_L61_error)
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_11);
                __pyx_t_11 = 0;

                /* "django_templates_cythonized/base.py":1162
 *                     # numpy < 1.9 and 1.9+ respectively
 *                 except (TypeError, AttributeError, KeyError, ValueError, IndexError):
 *                     try:  # attribute lookup             # <<<<<<<<<<<<<<
 *                         # Don't return class attributes if the class is the
 *                         # context:
*/
              }
              __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
              __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              goto __pyx_L68_try_end;
              __pyx_L61_error:;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;

              /* "django_templates_cythonized/base.py":1168
 *                             raise AttributeError
 *                         current = getattr(current, bit)
 *                     except (TypeError, AttributeError):             # <<<<<<<<<<<<<<
 *                         # Reraise if the exception was raised by a @property
 *                         if not isinstance(current, BaseContext) and bit in dir(current):
*/
              __pyx_t_7 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_AttributeError))));
              if (__pyx_t_7) {
                __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0) __PYX_ERR(0, 1168, __pyx_L63_except_error)
                __Pyx_XGOTREF(__pyx_t_11);
                __Pyx_XGOTREF(__pyx_t_12);
                __Pyx_XGOTREF(__pyx_t_13);

                /* "django_templates_cythonized/base.py":1170
 *                     except (TypeError, AttributeError):
 *                         # Reraise if the exception was raised by a @property
 *                         if not isinstance(current, BaseContext) and bit in dir(current):             # <<<<<<<<<<<<<<
 *                             raise
 *                         try:  # list-index lookup
*/
                __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_BaseContext); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1170, __pyx_L63_except_error)
                __Pyx_GOTREF(__pyx_t_21);
                __pyx_t_3 = PyObject_IsInstance(__pyx_v_current, __pyx_t_21); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1170, __pyx_L63_except_error)
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __pyx_t_24 = (!__pyx_t_3);
                if (__pyx_t_24) {
                } else {
                  __pyx_t_23 = __pyx_t_24;
                  goto __pyx_L75_bool_binop_done;
                }
                __pyx_t_21 = PyObject_Dir(__pyx_v_current); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1170, __pyx_L63_except_error)
                __Pyx_GOTREF(__pyx_t_21);
                __pyx_t_24 = (__Pyx_PySequence_ContainsTF(__pyx_v_bit, __pyx_t_21, Py_EQ)); if (unlikely((__pyx_t_24 < 0))) __PYX_ERR(0, 1170, __pyx_L63_except_error)
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __pyx_t_23 = __pyx_t_24;
                __pyx_L75_bool_binop_done:;
                if (unlikely(__pyx_t_23)) {

                  /* "django_templates_cythonized/base.py":1171
 *                         # Reraise if the exception was raised by a @property
 *                         if not isinstance(current, BaseContext) and bit in dir(current):
 *                             raise             # <<<<<<<<<<<<<<
 *                         try:  # list-index lookup
 *                             current = current[int(bit)]
*/
                  __Pyx_GIVEREF(__pyx_t_11);
                  __Pyx_GIVEREF(__pyx_t_12);
                  __Pyx_XGIVEREF(__pyx_t_13);
                  __Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_12, __pyx_t_13);
                  __pyx_t_11 = 0;  __pyx_t_12 = 0;  __pyx_t_13 = 0; 
                  __PYX_ERR(0, 1171, __pyx_L63_except_error)

                  /* "django_templates_cythonized/base.py":1170
 *                     except (TypeError, AttributeError):
 *                         # Reraise if the exception was raised by a @property
 *                         if not isinstance(current, BaseContext) and bit in dir(current):             # <<<<<<<<<<<<<<
 *                             raise
 *                         try:  # list-index lookup
*/
                }

                /* "django_templates_cythonized/base.py":1172
 *                         if not isinstance(current, BaseContext) and bit in dir(current):
 *                             raise
 *                         try:  # list-index lookup             # <<<<<<<<<<<<<<
 *                             current = current[int(bit)]
 *                         except (
*/
                {
                  __Pyx_PyThreadState_declare
                  __Pyx_PyThreadState_assign
                  __Pyx_ExceptionSave(&__pyx_t_25, &__pyx_t_26, &__pyx_t_27);
                  __Pyx_XGOTREF(__pyx_t_25);
                  __Pyx_XGOTREF(__pyx_t_26);
                  __Pyx_XGOTREF(__pyx_t_27);
                  /*try:*/ {

                    /* "django_templates_cythonized/base.py":1173
 *                             raise
 *                         try:  # list-index lookup
 *                             current = current[int(bit)]             # <<<<<<<<<<<<<<
 *                         except (
 *                             IndexError,  # list index out of range
*/
                    __pyx_t_21 = __Pyx_PyNumber_Int(__pyx_v_bit); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1173, __pyx_L77_error)
                    __Pyx_GOTREF(__pyx_t_21);
                    __pyx_t_28 = __Pyx_PyObject_GetItem(__pyx_v_current, __pyx_t_21); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 1173, __pyx_L77_error)
                    __Pyx_GOTREF(__pyx_t_28);
                    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                    __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_28);
                    __pyx_t_28 = 0;

                    /* "django_templates_cythonized/base.py":1172
 *                         if not isinstance(current, BaseContext) and bit in dir(current):
 *                             raise
 *                         try:  # list-index lookup             # <<<<<<<<<<<<<<
 *                             current = current[int(bit)]
 *                         except (
*/
                  }
                  __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
                  __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
                  __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
                  goto __pyx_L84_try_end;
                  __pyx_L77_error:;
                  __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;

                  /* "django_templates_cythonized/base.py":1178
 *                             ValueError,  # invalid literal for int()
 *                             KeyError,  # current is a dict without `int(bit)` key
 *                             TypeError,             # <<<<<<<<<<<<<<
 *                         ):  # unsubscriptable object
 *                             raise VariableDoesNotExist(
*/
                  __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
                  if (__pyx_t_7) {
                    __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
                    if (__Pyx_GetException(&__pyx_t_28, &__pyx_t_21, &__pyx_t_29) < 0) __PYX_ERR(0, 1174, __pyx_L79_except_error)
                    __Pyx_XGOTREF(__pyx_t_28);
                    __Pyx_XGOTREF(__pyx_t_21);
                    __Pyx_XGOTREF(__pyx_t_29);

                    /* "django_templates_cythonized/base.py":1180
 *                             TypeError,
 *                         ):  # unsubscriptable object
 *                             raise VariableDoesNotExist(             # <<<<<<<<<<<<<<
 *                                 "Failed lookup for key [%s] in %r",
 *                                 (bit, current),
*/
                    __pyx_t_31 = NULL;
                    __Pyx_GetModuleGlobalName(__pyx_t_32, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 1180, __pyx_L79_except_error)
                    __Pyx_GOTREF(__pyx_t_32);

                    /* "django_templates_cythonized/base.py":1182
 *                             raise VariableDoesNotExist(
 *                                 "Failed lookup for key [%s] in %r",
 *                                 (bit, current),             # <<<<<<<<<<<<<<
 *                             )  # missing attribute
 *                 if callable(current):
*/
                    __pyx_t_33 = PyTuple_New(2); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1182, __pyx_L79_except_error)
                    __Pyx_GOTREF(__pyx_t_33);
                    __Pyx_INCREF(__pyx_v_bit);
                    __Pyx_GIVEREF(__pyx_v_bit);
                    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_33, 0, __pyx_v_bit) != (0)) __PYX_ERR(0, 1182, __pyx_L79_except_error);
                    __Pyx_INCREF(__pyx_v_current);
                    __Pyx_GIVEREF(__pyx_v_current);
                    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_33, 1, __pyx_v_current) != (0)) __PYX_ERR(0, 1182, __pyx_L79_except_error);
                    __pyx_t_14 = 1;
                    #if CYTHON_UNPACK_METHODS
                    if (unlikely(PyMethod_Check(__pyx_t_32))) {
                      __pyx_t_31 = PyMethod_GET_SELF(__pyx_t_32);
                      assert(__pyx_t_31);
                      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_32);
                      __Pyx_INCREF(__pyx_t_31);
                      __Pyx_INCREF(__pyx__function);
                      __Pyx_DECREF_SET(__pyx_t_32, __pyx__function);
                      __pyx_t_14 = 0;
                    }
                    #endif
                    {
                      PyObject *__pyx_callargs[3] = {__pyx_t_31, __pyx_mstate_global->__pyx_kp_u_Failed_lookup_for_key_s_in_r, __pyx_t_33};
                      __pyx_t_30 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_32, __pyx_callargs+__pyx_t_14, (3-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                      __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0;
                      __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0;
                      __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
                      if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 1180, __pyx_L79_except_error)
                      __Pyx_GOTREF(__pyx_t_30);
                    }
                    __Pyx_Raise(__pyx_t_30, 0, 0, 0);
                    __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0;
                    __PYX_ERR(0, 1180, __pyx_L79_except_error)
                  }
                  goto __pyx_L79_except_error;

                  /* "django_templates_cythonized/base.py":1172
 *                         if not isinstance(current, BaseContext) and bit in dir(current):
 *                             raise
 *                         try:  # list-index lookup             # <<<<<<<<<<<<<<
 *                             current = current[int(bit)]
 *                         except (
*/
                  __pyx_L79_except_error:;
                  __Pyx_XGIVEREF(__pyx_t_25);
                  __Pyx_XGIVEREF(__pyx_t_26);
                  __Pyx_XGIVEREF(__pyx_t_27);
                  __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_26, __pyx_t_27);
                  goto __pyx_L63_except_error;
                  __pyx_L84_try_end:;
                }
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                goto __pyx_L62_exception_handled;
              }
              goto __pyx_L63_except_error;

              /* "django_templates_cythonized/base.py":1162
 *                     # numpy < 1.9 and 1.9+ respectively
 *                 except (TypeError, AttributeError, KeyError, ValueError, IndexError):
 *                     try:  # attribute lookup             # <<<<<<<<<<<<<<
 *                         # Don't return class attributes if the class is the
 *                         # context:
*/
              __pyx_L63_except_error:;
              __Pyx_XGIVEREF(__pyx_t_20);
              __Pyx_XGIVEREF(__pyx_t_19);
              __Pyx_XGIVEREF(__pyx_t_18);
              __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18);
              goto __pyx_L52_except_error;
              __pyx_L62_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_20);
              __Pyx_XGIVEREF(__pyx_t_19);
              __Pyx_XGIVEREF(__pyx_t_18);
              __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18);
              __pyx_L68_try_end:;
            }
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            goto __pyx_L51_exception_handled;
          }
          goto __pyx_L52_except_error;

          /* "django_templates_cythonized/base.py":1153
 *         try:  # catch-all for silent variable failures
 *             for bit in lookups:
 *                 try:  # dictionary lookup             # <<<<<<<<<<<<<<
 *                     # Only allow if the metaclass implements __getitem__. See
 *                     # https://docs.python.org/3/reference/datamodel.html#classgetitem-versus-getitem
*/
          __pyx_L52_except_error:;
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_16, __pyx_t_15);
          goto __pyx_L42_error;
          __pyx_L51_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_16, __pyx_t_15);
          __pyx_L57_try_end:;
        }

        /* "django_templates_cythonized/base.py":1184
 *                                 (bit, current),
 *                             )  # missing attribute
 *                 if callable(current):             # <<<<<<<<<<<<<<
 *                     if getattr(current, "do_not_call_in_templates", False):
 *                         pass
*/
        __pyx_t_23 = __Pyx_PyCallable_Check(__pyx_v_current); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1184, __pyx_L42_error)
        if (__pyx_t_23) {

          /* "django_templates_cythonized/base.py":1185
 *                             )  # missing attribute
 *                 if callable(current):
 *                     if getattr(current, "do_not_call_in_templates", False):             # <<<<<<<<<<<<<<
 *                         pass
 *                     elif getattr(current, "alters_data", False):
*/
          __pyx_t_10 = __Pyx_GetAttr3(__pyx_v_current, __pyx_mstate_global->__pyx_n_u_do_not_call_in_templates, Py_False); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1185, __pyx_L42_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_23 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_23 < 0))) __PYX_ERR(0, 1185, __pyx_L42_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_23) {
            goto __pyx_L88;
          }

          /* "django_templates_cythonized/base.py":1187
 *                     if getattr(current, "do_not_call_in_templates", False):
 *                         pass
 *                     elif getattr(current, "alters_data", False):             # <<<<<<<<<<<<<<
 *                         current = context.template.engine.string_if_invalid
 *                     else:
*/
          __pyx_t_10 = __Pyx_GetAttr3(__pyx_v_current, __pyx_mstate_global->__pyx_n_u_alters_data, Py_False); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1187, __pyx_L42_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_23 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_23 < 0))) __PYX_ERR(0, 1187, __pyx_L42_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_23) {

            /* "django_templates_cythonized/base.py":1188
 *                         pass
 *                     elif getattr(current, "alters_data", False):
 *                         current = context.template.engine.string_if_invalid             # <<<<<<<<<<<<<<
 *                     else:
 *                         try:  # method call (assuming no args required)
*/
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1188, __pyx_L42_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1188, __pyx_L42_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_string_if_invalid); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1188, __pyx_L42_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_10);
            __pyx_t_10 = 0;

            /* "django_templates_cythonized/base.py":1187
 *                     if getattr(current, "do_not_call_in_templates", False):
 *                         pass
 *                     elif getattr(current, "alters_data", False):             # <<<<<<<<<<<<<<
 *                         current = context.template.engine.string_if_invalid
 *                     else:
*/
            goto __pyx_L88;
          }

          /* "django_templates_cythonized/base.py":1190
 *                         current = context.template.engine.string_if_invalid
 *                     else:
 *                         try:  # method call (assuming no args required)             # <<<<<<<<<<<<<<
 *                             current = current()
 *                         except TypeError:
*/
          /*else*/ {
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
              __Pyx_XGOTREF(__pyx_t_15);
              __Pyx_XGOTREF(__pyx_t_16);
              __Pyx_XGOTREF(__pyx_t_17);
              /*try:*/ {

                /* "django_templates_cythonized/base.py":1191
 *                     else:
 *                         try:  # method call (assuming no args required)
 *                             current = current()             # <<<<<<<<<<<<<<
 *                         except TypeError:
 *                             try:
*/
                __pyx_t_9 = NULL;
                __Pyx_INCREF(__pyx_v_current);
                __pyx_t_1 = __pyx_v_current; 
                __pyx_t_14 = 1;
                #if CYTHON_UNPACK_METHODS
                if (unlikely(PyMethod_Check(__pyx_t_1))) {
                  __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
                  assert(__pyx_t_9);
                  PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
                  __Pyx_INCREF(__pyx_t_9);
                  __Pyx_INCREF(__pyx__function);
                  __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
                  __pyx_t_14 = 0;
                }
                #endif
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
                  __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1191, __pyx_L89_error)
                  __Pyx_GOTREF(__pyx_t_10);
                }
                __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_10);
                __pyx_t_10 = 0;

                /* "django_templates_cythonized/base.py":1190
 *                         current = context.template.engine.string_if_invalid
 *                     else:
 *                         try:  # method call (assuming no args required)             # <<<<<<<<<<<<<<
 *                             current = current()
 *                         except TypeError:
*/
              }
              __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
              __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
              goto __pyx_L96_try_end;
              __pyx_L89_error:;
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
              __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
              __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
              __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
              __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0;
              __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0;
              __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0;
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

              /* "django_templates_cythonized/base.py":1192
 *                         try:  # method call (assuming no args required)
 *                             current = current()
 *                         except TypeError:             # <<<<<<<<<<<<<<
 *                             try:
 *                                 signature = inspect.signature(current)
*/
              __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
              if (__pyx_t_7) {
                __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_1, &__pyx_t_9) < 0) __PYX_ERR(0, 1192, __pyx_L91_except_error)
                __Pyx_XGOTREF(__pyx_t_10);
                __Pyx_XGOTREF(__pyx_t_1);
                __Pyx_XGOTREF(__pyx_t_9);

                /* "django_templates_cythonized/base.py":1193
 *                             current = current()
 *                         except TypeError:
 *                             try:             # <<<<<<<<<<<<<<
 *                                 signature = inspect.signature(current)
 *                             except ValueError:  # No signature found.
*/
                {
                  __Pyx_PyThreadState_declare
                  __Pyx_PyThreadState_assign
                  __Pyx_ExceptionSave(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
                  __Pyx_XGOTREF(__pyx_t_18);
                  __Pyx_XGOTREF(__pyx_t_19);
                  __Pyx_XGOTREF(__pyx_t_20);
                  /*try:*/ {

                    /* "django_templates_cythonized/base.py":1194
 *                         except TypeError:
 *                             try:
 *                                 signature = inspect.signature(current)             # <<<<<<<<<<<<<<
 *                             except ValueError:  # No signature found.
 *                                 current = context.template.engine.string_if_invalid
*/
                    __pyx_t_12 = NULL;
                    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1194, __pyx_L99_error)
                    __Pyx_GOTREF(__pyx_t_11);
                    __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_signature); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 1194, __pyx_L99_error)
                    __Pyx_GOTREF(__pyx_t_29);
                    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                    __pyx_t_14 = 1;
                    #if CYTHON_UNPACK_METHODS
                    if (unlikely(PyMethod_Check(__pyx_t_29))) {
                      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_29);
                      assert(__pyx_t_12);
                      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_29);
                      __Pyx_INCREF(__pyx_t_12);
                      __Pyx_INCREF(__pyx__function);
                      __Pyx_DECREF_SET(__pyx_t_29, __pyx__function);
                      __pyx_t_14 = 0;
                    }
                    #endif
                    {
                      PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_current};
                      __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_29, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                      __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
                      if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1194, __pyx_L99_error)
                      __Pyx_GOTREF(__pyx_t_13);
                    }
                    __Pyx_XDECREF_SET(__pyx_v_signature, __pyx_t_13);
                    __pyx_t_13 = 0;

                    /* "django_templates_cythonized/base.py":1193
 *                             current = current()
 *                         except TypeError:
 *                             try:             # <<<<<<<<<<<<<<
 *                                 signature = inspect.signature(current)
 *                             except ValueError:  # No signature found.
*/
                  }

                  /* "django_templates_cythonized/base.py":1198
 *                                 current = context.template.engine.string_if_invalid
 *                             else:
 *                                 try:             # <<<<<<<<<<<<<<
 *                                     signature.bind()
 *                                 except TypeError:  # Arguments *were* required.
*/
                  /*else:*/ {
                    {
                      __Pyx_PyThreadState_declare
                      __Pyx_PyThreadState_assign
                      __Pyx_ExceptionSave(&__pyx_t_27, &__pyx_t_26, &__pyx_t_25);
                      __Pyx_XGOTREF(__pyx_t_27);
                      __Pyx_XGOTREF(__pyx_t_26);
                      __Pyx_XGOTREF(__pyx_t_25);
                      /*try:*/ {

                        /* "django_templates_cythonized/base.py":1199
 *                             else:
 *                                 try:
 *                                     signature.bind()             # <<<<<<<<<<<<<<
 *                                 except TypeError:  # Arguments *were* required.
 *                                     # Invalid method call.
*/
                        __pyx_t_29 = __pyx_v_signature;
                        __Pyx_INCREF(__pyx_t_29);
                        __pyx_t_14 = 0;
                        {
                          PyObject *__pyx_callargs[2] = {__pyx_t_29, NULL};
                          __pyx_t_13 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_bind, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                          __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
                          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1199, __pyx_L107_error)
                          __Pyx_GOTREF(__pyx_t_13);
                        }
                        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

                        /* "django_templates_cythonized/base.py":1198
 *                                 current = context.template.engine.string_if_invalid
 *                             else:
 *                                 try:             # <<<<<<<<<<<<<<
 *                                     signature.bind()
 *                                 except TypeError:  # Arguments *were* required.
*/
                      }

                      /* "django_templates_cythonized/base.py":1204
 *                                     current = context.template.engine.string_if_invalid
 *                                 else:
 *                                     raise             # <<<<<<<<<<<<<<
 *         except Exception as e:
 *             template_name = getattr(context, "template_name", None) or "unknown"
*/
                      /*else:*/ {
                        __Pyx_GIVEREF(__pyx_t_10);
                        __Pyx_GIVEREF(__pyx_t_1);
                        __Pyx_XGIVEREF(__pyx_t_9);
                        __Pyx_ErrRestoreWithState(__pyx_t_10, __pyx_t_1, __pyx_t_9);
                        __pyx_t_10 = 0;  __pyx_t_1 = 0;  __pyx_t_9 = 0; 
                        __PYX_ERR(0, 1204, __pyx_L109_except_error)
                      }
                      __pyx_L107_error:;
                      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                      __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
                      __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
                      __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
                      __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
                      __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0;
                      __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0;
                      __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0;

                      /* "django_templates_cythonized/base.py":1200
 *                                 try:
 *                                     signature.bind()
 *                                 except TypeError:  # Arguments *were* required.             # <<<<<<<<<<<<<<
 *                                     # Invalid method call.
 *                                     current = context.template.engine.string_if_invalid
*/
                      __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
                      if (__pyx_t_7) {
                        __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
                        if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_29, &__pyx_t_12) < 0) __PYX_ERR(0, 1200, __pyx_L109_except_error)
                        __Pyx_XGOTREF(__pyx_t_13);
                        __Pyx_XGOTREF(__pyx_t_29);
                        __Pyx_XGOTREF(__pyx_t_12);

                        /* "django_templates_cythonized/base.py":1202
 *                                 except TypeError:  # Arguments *were* required.
 *                                     # Invalid method call.
 *                                     current = context.template.engine.string_if_invalid             # <<<<<<<<<<<<<<
 *                                 else:
 *                                     raise
*/
                        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1202, __pyx_L109_except_error)
                        __Pyx_GOTREF(__pyx_t_11);
                        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1202, __pyx_L109_except_error)
                        __Pyx_GOTREF(__pyx_t_21);
                        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_string_if_invalid); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1202, __pyx_L109_except_error)
                        __Pyx_GOTREF(__pyx_t_11);
                        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                        __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_11);
                        __pyx_t_11 = 0;
                        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                        __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
                        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                        goto __pyx_L108_exception_handled;
                      }
                      goto __pyx_L109_except_error;

                      /* "django_templates_cythonized/base.py":1198
 *                                 current = context.template.engine.string_if_invalid
 *                             else:
 *                                 try:             # <<<<<<<<<<<<<<
 *                                     signature.bind()
 *                                 except TypeError:  # Arguments *were* required.
*/
                      __pyx_L109_except_error:;
                      __Pyx_XGIVEREF(__pyx_t_27);
                      __Pyx_XGIVEREF(__pyx_t_26);
                      __Pyx_XGIVEREF(__pyx_t_25);
                      __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_26, __pyx_t_25);
                      goto __pyx_L101_except_error;
                      __pyx_L108_exception_handled:;
                      __Pyx_XGIVEREF(__pyx_t_27);
                      __Pyx_XGIVEREF(__pyx_t_26);
                      __Pyx_XGIVEREF(__pyx_t_25);
                      __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_26, __pyx_t_25);
                    }
                  }
                  __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
                  __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
                  goto __pyx_L106_try_end;
                  __pyx_L99_error:;
                  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
                  __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
                  __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
                  __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0;
                  __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0;
                  __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0;

                  /* "django_templates_cythonized/base.py":1195
 *                             try:
 *                                 signature = inspect.signature(current)
 *                             except ValueError:  # No signature found.             # <<<<<<<<<<<<<<
 *                                 current = context.template.engine.string_if_invalid
 *                             else:
*/
                  __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
                  if (__pyx_t_7) {
                    __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
                    if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_29, &__pyx_t_13) < 0) __PYX_ERR(0, 1195, __pyx_L101_except_error)
                    __Pyx_XGOTREF(__pyx_t_12);
                    __Pyx_XGOTREF(__pyx_t_29);
                    __Pyx_XGOTREF(__pyx_t_13);

                    /* "django_templates_cythonized/base.py":1196
 *                                 signature = inspect.signature(current)
 *                             except ValueError:  # No signature found.
 *                                 current = context.template.engine.string_if_invalid             # <<<<<<<<<<<<<<
 *                             else:
 *                                 try:
*/
                    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1196, __pyx_L101_except_error)
                    __Pyx_GOTREF(__pyx_t_11);
                    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1196, __pyx_L101_except_error)
                    __Pyx_GOTREF(__pyx_t_21);
                    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_string_if_invalid); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1196, __pyx_L101_except_error)
                    __Pyx_GOTREF(__pyx_t_11);
                    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                    __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_11);
                    __pyx_t_11 = 0;
                    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                    __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
                    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                    goto __pyx_L100_exception_handled;
                  }
                  goto __pyx_L101_except_error;

                  /* "django_templates_cythonized/base.py":1193
 *                             current = current()
 *                         except TypeError:
 *                             try:             # <<<<<<<<<<<<<<
 *                                 signature = inspect.signature(current)
 *                             except ValueError:  # No signature found.
*/
                  __pyx_L101_except_error:;
                  __Pyx_XGIVEREF(__pyx_t_18);
                  __Pyx_XGIVEREF(__pyx_t_19);
                  __Pyx_XGIVEREF(__pyx_t_20);
                  __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
                  goto __pyx_L91_except_error;
                  __pyx_L100_exception_handled:;
                  __Pyx_XGIVEREF(__pyx_t_18);
                  __Pyx_XGIVEREF(__pyx_t_19);
                  __Pyx_XGIVEREF(__pyx_t_20);
                  __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
                  __pyx_L106_try_end:;
                }
                __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                goto __pyx_L90_exception_handled;
              }
              goto __pyx_L91_except_error;

              /* "django_templates_cythonized/base.py":1190
 *                         current = context.template.engine.string_if_invalid
 *                     else:
 *                         try:  # method call (assuming no args required)             # <<<<<<<<<<<<<<
 *                             current = current()
 *                         except TypeError:
*/
              __pyx_L91_except_error:;
              __Pyx_XGIVEREF(__pyx_t_15);
              __Pyx_XGIVEREF(__pyx_t_16);
              __Pyx_XGIVEREF(__pyx_t_17);
              __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
              goto __pyx_L42_error;
              __pyx_L90_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_15);
              __Pyx_XGIVEREF(__pyx_t_16);
              __Pyx_XGIVEREF(__pyx_t_17);
              __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
              __pyx_L96_try_end:;
            }
          }
          __pyx_L88:;

          /* "django_templates_cythonized/base.py":1184
 *                                 (bit, current),
 *                             )  # missing attribute
 *                 if callable(current):             # <<<<<<<<<<<<<<
 *                     if getattr(current, "do_not_call_in_templates", False):
 *                         pass
*/
        }

        /* "django_templates_cythonized/base.py":1152
 *         current: object = context
 *         try:  # catch-all for silent variable failures
 *             for bit in lookups:             # <<<<<<<<<<<<<<
 *                 try:  # dictionary lookup
 *                     # Only allow if the metaclass implements __getitem__. See
*/
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "django_templates_cythonized/base.py":1151
 * 
 *         current: object = context
 *         try:  # catch-all for silent variable failures             # <<<<<<<<<<<<<<
 *             for bit in lookups:
 *                 try:  # dictionary lookup
*/
    }
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L47_try_end;
    __pyx_L42_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
    __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
    __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
    __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0;
    __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0;
    __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "django_templates_cythonized/base.py":1205
 *                                 else:
 *                                     raise
 *         except Exception as e:             # <<<<<<<<<<<<<<
 *             template_name = getattr(context, "template_name", None) or "unknown"
 *             logger.debug(
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
    if (__pyx_t_7) {
      __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_1) < 0) __PYX_ERR(0, 1205, __pyx_L44_except_error)
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_9);
      __pyx_v_e = __pyx_t_9;
      /*try:*/ {

        /* "django_templates_cythonized/base.py":1206
 *                                     raise
 *         except Exception as e:
 *             template_name = getattr(context, "template_name", None) or "unknown"             # <<<<<<<<<<<<<<
 *             logger.debug(
 *                 "Exception while resolving variable '%s' in template '%s'.",
*/
        __pyx_t_13 = __Pyx_GetAttr3(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template_name, Py_None); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1206, __pyx_L125_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_23 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_23 < 0))) __PYX_ERR(0, 1206, __pyx_L125_error)
        if (!__pyx_t_23) {
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_13);
          __pyx_t_10 = __pyx_t_13;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          goto __pyx_L127_bool_binop_done;
        }
        __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_unknown);
        __pyx_t_10 = __pyx_mstate_global->__pyx_n_u_unknown;
        __pyx_L127_bool_binop_done:;
        __pyx_v_template_name = __pyx_t_10;
        __pyx_t_10 = 0;

        /* "django_templates_cythonized/base.py":1207
 *         except Exception as e:
 *             template_name = getattr(context, "template_name", None) or "unknown"
 *             logger.debug(             # <<<<<<<<<<<<<<
 *                 "Exception while resolving variable '%s' in template '%s'.",
 *                 bit,
*/
        __pyx_t_13 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_29, __pyx_mstate_global->__pyx_n_u_logger); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 1207, __pyx_L125_error)
        __Pyx_GOTREF(__pyx_t_29);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_29, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1207, __pyx_L125_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;

        /* "django_templates_cythonized/base.py":1209
 *             logger.debug(
 *                 "Exception while resolving variable '%s' in template '%s'.",
 *                 bit,             # <<<<<<<<<<<<<<
 *                 template_name,
 *                 exc_info=True,
*/
        if (unlikely(!__pyx_v_bit)) { __Pyx_RaiseUnboundLocalError("bit"); __PYX_ERR(0, 1209, __pyx_L125_error) }

        /* "django_templates_cythonized/base.py":1211
 *                 bit,
 *                 template_name,
 *                 exc_info=True,             # <<<<<<<<<<<<<<
 *             )
 * 
*/
        __pyx_t_14 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
          assert(__pyx_t_13);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_13);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
          __pyx_t_14 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[4 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_13, __pyx_mstate_global->__pyx_kp_u_Exception_while_resolving_variab, __pyx_v_bit, __pyx_v_template_name};
          __pyx_t_29 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 1207, __pyx_L125_error)
          __Pyx_GOTREF(__pyx_t_29);
          if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_exc_info, Py_True, __pyx_t_29, __pyx_callargs+4, 0) < (0)) __PYX_ERR(0, 1207, __pyx_L125_error)
          __pyx_t_10 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_14, (4-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_29);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1207, __pyx_L125_error)
          __Pyx_GOTREF(__pyx_t_10);
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

        /* "django_templates_cythonized/base.py":1214
 *             )
 * 
 *             if getattr(e, "silent_variable_failure", False):             # <<<<<<<<<<<<<<
 *                 current = context.template.engine.string_if_invalid
 *             else:
*/
        __pyx_t_10 = __Pyx_GetAttr3(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_silent_variable_failure, Py_False); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1214, __pyx_L125_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_23 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_23 < 0))) __PYX_ERR(0, 1214, __pyx_L125_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (likely(__pyx_t_23)) {

          /* "django_templates_cythonized/base.py":1215
 * 
 *             if getattr(e, "silent_variable_failure", False):
 *                 current = context.template.engine.string_if_invalid             # <<<<<<<<<<<<<<
 *             else:
 *                 raise
*/
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_context, __pyx_mstate_global->__pyx_n_u_template); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1215, __pyx_L125_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1215, __pyx_L125_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_string_if_invalid); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1215, __pyx_L125_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF_SET(__pyx_v_current, __pyx_t_10);
          __pyx_t_10 = 0;

          /* "django_templates_cythonized/base.py":1214
 *             )
 * 
 *             if getattr(e, "silent_variable_failure", False):             # <<<<<<<<<<<<<<
 *                 current = context.template.engine.string_if_invalid
 *             else:
*/
          goto __pyx_L129;
        }

        /* "django_templates_cythonized/base.py":1217
 *                 current = context.template.engine.string_if_invalid
 *             else:
 *                 raise             # <<<<<<<<<<<<<<
 * 
 *         return current
*/
        /*else*/ {
          __Pyx_GIVEREF(__pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_1);
          __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_9, __pyx_t_1);
          __pyx_t_8 = 0;  __pyx_t_9 = 0;  __pyx_t_1 = 0; 
          __PYX_ERR(0, 1217, __pyx_L125_error)
        }
        __pyx_L129:;
      }

      /* "django_templates_cythonized/base.py":1205
 *                                 else:
 *                                     raise
 *         except Exception as e:             # <<<<<<<<<<<<<<
 *             template_name = getattr(context, "template_name", None) or "unknown"
 *             logger.debug(
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
          goto __pyx_L126;
        }
        __pyx_L125_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
          __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
          __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
          __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0;
          __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0;
          __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18);
          if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_18);
          __pyx_t_7 = __pyx_lineno; __pyx_t_34 = __pyx_clineno; __pyx_t_35 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_ErrRestore(__pyx_t_17, __pyx_t_16, __pyx_t_15);
          __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0;
          __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_34; __pyx_filename = __pyx_t_35;
          goto __pyx_L44_except_error;
        }
        __pyx_L126:;
      }
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L43_exception_handled;
    }
    goto __pyx_L44_except_error;

    /* "django_templates_cythonized/base.py":1151
 * 
 *         current: object = context
 *         try:  # catch-all for silent variable failures             # <<<<<<<<<<<<<<
 *             for bit in lookups:
 *                 try:  # dictionary lookup
*/
    __pyx_L44_except_error:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    goto __pyx_L1_error;
    __pyx_L43_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    __pyx_L47_try_end:;
  }

  /* "django_templates_cythonized/base.py":1219
 *                 raise
 * 
 *         return current             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_current);
  __pyx_r = __pyx_v_current;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1106
 *         return self.var
 * 
 *     @cython.cfunc             # <<<<<<<<<<<<<<
 *     def _resolve_lookup(self, context):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_28);
  __Pyx_XDECREF(__pyx_t_29);
  __Pyx_XDECREF(__pyx_t_30);
  __Pyx_XDECREF(__pyx_t_31);
  __Pyx_XDECREF(__pyx_t_32);
  __Pyx_XDECREF(__pyx_t_33);
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable._resolve_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_lookups);
  __Pyx_XDECREF(__pyx_v_bit);
  __Pyx_XDECREF(__pyx_v_current);
  __Pyx_XDECREF(__pyx_v_signature);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XDECREF(__pyx_v_template_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1027
 *     """
 * 
 *     var = cython.declare(object, visibility="public")             # <<<<<<<<<<<<<<
 *     literal = cython.declare(object, visibility="public")
 *     lookups = cython.declare(object, visibility="public")
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_3var_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_3var_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_3var___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_3var___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->var);
  __pyx_r = __pyx_v_self->var;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_3var_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_3var_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_3var_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable_3var_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->var);
  __Pyx_DECREF(__pyx_v_self->var);
  __pyx_v_self->var = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_3var_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_3var_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_3var_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable_3var_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->var);
  __Pyx_DECREF(__pyx_v_self->var);
  __pyx_v_self->var = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1028
 * 
 *     var = cython.declare(object, visibility="public")
 *     literal = cython.declare(object, visibility="public")             # <<<<<<<<<<<<<<
 *     lookups = cython.declare(object, visibility="public")
 *     translate = cython.declare(cython.bint, visibility="public")
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_7literal_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_7literal_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_7literal___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_7literal___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->literal);
  __pyx_r = __pyx_v_self->literal;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_7literal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_7literal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_7literal_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable_7literal_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->literal);
  __Pyx_DECREF(__pyx_v_self->literal);
  __pyx_v_self->literal = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_7literal_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_7literal_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_7literal_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable_7literal_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->literal);
  __Pyx_DECREF(__pyx_v_self->literal);
  __pyx_v_self->literal = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1029
 *     var = cython.declare(object, visibility="public")
 *     literal = cython.declare(object, visibility="public")
 *     lookups = cython.declare(object, visibility="public")             # <<<<<<<<<<<<<<
 *     translate = cython.declare(cython.bint, visibility="public")
 *     message_context = cython.declare(object, visibility="public")
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_7lookups_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_7lookups_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_7lookups___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_7lookups___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->lookups);
  __pyx_r = __pyx_v_self->lookups;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_7lookups_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_7lookups_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_7lookups_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable_7lookups_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->lookups);
  __Pyx_DECREF(__pyx_v_self->lookups);
  __pyx_v_self->lookups = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_7lookups_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_7lookups_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_7lookups_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable_7lookups_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->lookups);
  __Pyx_DECREF(__pyx_v_self->lookups);
  __pyx_v_self->lookups = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1030
 *     literal = cython.declare(object, visibility="public")
 *     lookups = cython.declare(object, visibility="public")
 *     translate = cython.declare(cython.bint, visibility="public")             # <<<<<<<<<<<<<<
 *     message_context = cython.declare(object, visibility="public")
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_9translate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_9translate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_9translate___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_9translate___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->translate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1030, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.translate.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_9translate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_9translate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_9translate_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable_9translate_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1030, __pyx_L1_error)
  __pyx_v_self->translate = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.translate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1031
 *     lookups = cython.declare(object, visibility="public")
 *     translate = cython.declare(cython.bint, visibility="public")
 *     message_context = cython.declare(object, visibility="public")             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, var):
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_15message_context_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_15message_context_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_15message_context___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_15message_context___get__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->message_context);
  __pyx_r = __pyx_v_self->message_context;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_15message_context_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_15message_context_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_15message_context_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable_15message_context_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->message_context);
  __Pyx_DECREF(__pyx_v_self->message_context);
  __pyx_v_self->message_context = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_15message_context_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8Variable_15message_context_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_15message_context_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8Variable_15message_context_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->message_context);
  __Pyx_DECREF(__pyx_v_self->message_context);
  __pyx_v_self->message_context = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8Variable_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Variable_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_8__reduce_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_8__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.literal, self.lookups, self.message_context, self.translate, self.var)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->translate); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->literal);
  __Pyx_GIVEREF(__pyx_v_self->literal);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->literal) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->lookups);
  __Pyx_GIVEREF(__pyx_v_self->lookups);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->lookups) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->message_context);
  __Pyx_GIVEREF(__pyx_v_self->message_context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->message_context) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->var);
  __Pyx_GIVEREF(__pyx_v_self->var);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->var) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.literal, self.lookups, self.message_context, self.translate, self.var)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.literal, self.lookups, self.message_context, self.translate, self.var)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.literal is not None or self.lookups is not None or self.message_context is not None or self.var is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.literal, self.lookups, self.message_context, self.translate, self.var)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.literal is not None or self.lookups is not None or self.message_context is not None or self.var is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->literal != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->lookups != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->message_context != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->var != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.literal is not None or self.lookups is not None or self.message_context is not None or self.var is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.literal is not None or self.lookups is not None or self.message_context is not None or self.var is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Variable); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_90054167);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_90054167);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_90054167) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.literal is not None or self.lookups is not None or self.message_context is not None or self.var is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, None), state
 *     else:
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Variable__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Variable); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_90054167);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_90054167);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_90054167) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Variable__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8Variable_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Variable_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8Variable_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8Variable_10__setstate_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8Variable_10__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Variable__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Variable__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Variable__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.Variable.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1233
 *     child_nodelists = ("nodelist",)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         """
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_1render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_4Node_render(CYTHON_UNUSED struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1233, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_4Node_1render)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1233, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":1235
 *     @cython.ccall
 *     def render(self, context: Context):
 *         """             # <<<<<<<<<<<<<<
 *         Return the node rendered as a string.
 *         """
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1233
 *     child_nodelists = ("nodelist",)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_1render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_4Node_render, "\n        Return the node rendered as a string.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_4Node_1render = {"render", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_4Node_1render, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_4Node_render};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_1render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1233, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1233, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "render", 0) < (0)) __PYX_ERR(0, 1233, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, i); __PYX_ERR(0, 1233, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1233, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1233, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 1234, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_render(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_render(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_4Node_render(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1240
 *         pass
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render_annotated(self, context: Context):
 *         """
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_3render_annotated(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_4Node_render_annotated(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  char const *__pyx_t_17;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render_annotated", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render_annotated); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1240, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_4Node_3render_annotated)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1240, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":1248
 *         preferred over using the render method directly.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             return self.render(context)
 *         except Exception as e:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    /*try:*/ {

      /* "django_templates_cythonized/base.py":1249
 *         """
 *         try:
 *             return self.render(context)             # <<<<<<<<<<<<<<
 *         except Exception as e:
 *             if context.template.engine.debug:
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_Node *)__pyx_v_self->__pyx_vtab)->render(__pyx_v_self, __pyx_v_context, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1249, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L7_try_return;

      /* "django_templates_cythonized/base.py":1248
 *         preferred over using the render method directly.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             return self.render(context)
 *         except Exception as e:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "django_templates_cythonized/base.py":1250
 *         try:
 *             return self.render(context)
 *         except Exception as e:             # <<<<<<<<<<<<<<
 *             if context.template.engine.debug:
 *                 # Store the actual node that caused the exception.
*/
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
    if (__pyx_t_9) {
      __Pyx_AddTraceback("django_templates_cythonized.base.Node.render_annotated", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_4) < 0) __PYX_ERR(0, 1250, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_e = __pyx_t_2;
      /*try:*/ {

        /* "django_templates_cythonized/base.py":1251
 *             return self.render(context)
 *         except Exception as e:
 *             if context.template.engine.debug:             # <<<<<<<<<<<<<<
 *                 # Store the actual node that caused the exception.
 *                 if not hasattr(e, "_culprit_node"):
*/
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_context->__pyx_template, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1251, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1251, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 1251, __pyx_L14_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (__pyx_t_11) {

          /* "django_templates_cythonized/base.py":1253
 *             if context.template.engine.debug:
 *                 # Store the actual node that caused the exception.
 *                 if not hasattr(e, "_culprit_node"):             # <<<<<<<<<<<<<<
 *                     e._culprit_node = self
 *                 if (
*/
          __pyx_t_11 = __Pyx_HasAttr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_culprit_node); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 1253, __pyx_L14_error)
          __pyx_t_12 = (!__pyx_t_11);
          if (__pyx_t_12) {

            /* "django_templates_cythonized/base.py":1254
 *                 # Store the actual node that caused the exception.
 *                 if not hasattr(e, "_culprit_node"):
 *                     e._culprit_node = self             # <<<<<<<<<<<<<<
 *                 if (
 *                     not hasattr(e, "template_debug")
*/
            if (__Pyx_PyObject_SetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_culprit_node, ((PyObject *)__pyx_v_self)) < (0)) __PYX_ERR(0, 1254, __pyx_L14_error)

            /* "django_templates_cythonized/base.py":1253
 *             if context.template.engine.debug:
 *                 # Store the actual node that caused the exception.
 *                 if not hasattr(e, "_culprit_node"):             # <<<<<<<<<<<<<<
 *                     e._culprit_node = self
 *                 if (
*/
          }

          /* "django_templates_cythonized/base.py":1256
 *                     e._culprit_node = self
 *                 if (
 *                     not hasattr(e, "template_debug")             # <<<<<<<<<<<<<<
 *                     and context.render_context.template.origin == e._culprit_node.origin
 *                 ):
*/
          __pyx_t_11 = __Pyx_HasAttr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_template_debug); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 1256, __pyx_L14_error)
          __pyx_t_13 = (!__pyx_t_11);
          if (__pyx_t_13) {
          } else {
            __pyx_t_12 = __pyx_t_13;
            goto __pyx_L19_bool_binop_done;
          }

          /* "django_templates_cythonized/base.py":1257
 *                 if (
 *                     not hasattr(e, "template_debug")
 *                     and context.render_context.template.origin == e._culprit_node.origin             # <<<<<<<<<<<<<<
 *                 ):
 *                     e.template_debug = context.render_context.template.get_exception_info(
*/
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_context->render_context->__pyx_template, __pyx_mstate_global->__pyx_n_u_origin); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1257, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_culprit_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1257, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_origin); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1257, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_RichCompare(__pyx_t_10, __pyx_t_14, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1257, __pyx_L14_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(0, 1257, __pyx_L14_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_12 = __pyx_t_13;
          __pyx_L19_bool_binop_done:;

          /* "django_templates_cythonized/base.py":1255
 *                 if not hasattr(e, "_culprit_node"):
 *                     e._culprit_node = self
 *                 if (             # <<<<<<<<<<<<<<
 *                     not hasattr(e, "template_debug")
 *                     and context.render_context.template.origin == e._culprit_node.origin
*/
          if (__pyx_t_12) {

            /* "django_templates_cythonized/base.py":1259
 *                     and context.render_context.template.origin == e._culprit_node.origin
 *                 ):
 *                     e.template_debug = context.render_context.template.get_exception_info(             # <<<<<<<<<<<<<<
 *                         e,
 *                         e._culprit_node.token,
*/
            __pyx_t_14 = __pyx_v_context->render_context->__pyx_template;
            __Pyx_INCREF(__pyx_t_14);

            /* "django_templates_cythonized/base.py":1261
 *                     e.template_debug = context.render_context.template.get_exception_info(
 *                         e,
 *                         e._culprit_node.token,             # <<<<<<<<<<<<<<
 *                     )
 *             raise
*/
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_culprit_node); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1261, __pyx_L14_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_token); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1261, __pyx_L14_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __pyx_t_5 = 0;
            {
              PyObject *__pyx_callargs[3] = {__pyx_t_14, __pyx_v_e, __pyx_t_15};
              __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_exception_info, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1259, __pyx_L14_error)
              __Pyx_GOTREF(__pyx_t_3);
            }

            /* "django_templates_cythonized/base.py":1259
 *                     and context.render_context.template.origin == e._culprit_node.origin
 *                 ):
 *                     e.template_debug = context.render_context.template.get_exception_info(             # <<<<<<<<<<<<<<
 *                         e,
 *                         e._culprit_node.token,
*/
            if (__Pyx_PyObject_SetAttrStr(__pyx_v_e, __pyx_mstate_global->__pyx_n_u_template_debug, __pyx_t_3) < (0)) __PYX_ERR(0, 1259, __pyx_L14_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "django_templates_cythonized/base.py":1255
 *                 if not hasattr(e, "_culprit_node"):
 *                     e._culprit_node = self
 *                 if (             # <<<<<<<<<<<<<<
 *                     not hasattr(e, "template_debug")
 *                     and context.render_context.template.origin == e._culprit_node.origin
*/
          }

          /* "django_templates_cythonized/base.py":1251
 *             return self.render(context)
 *         except Exception as e:
 *             if context.template.engine.debug:             # <<<<<<<<<<<<<<
 *                 # Store the actual node that caused the exception.
 *                 if not hasattr(e, "_culprit_node"):
*/
        }

        /* "django_templates_cythonized/base.py":1263
 *                         e._culprit_node.token,
 *                     )
 *             raise             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
        __Pyx_GIVEREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_2);
        __Pyx_XGIVEREF(__pyx_t_4);
        __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_4);
        __pyx_t_1 = 0;  __pyx_t_2 = 0;  __pyx_t_4 = 0; 
        __PYX_ERR(0, 1263, __pyx_L14_error)
      }

      /* "django_templates_cythonized/base.py":1250
 *         try:
 *             return self.render(context)
 *         except Exception as e:             # <<<<<<<<<<<<<<
 *             if context.template.engine.debug:
 *                 # Store the actual node that caused the exception.
*/
      /*finally:*/ {
        __pyx_L14_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23);
          if ( unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_23);
          __pyx_t_9 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_XGIVEREF(__pyx_t_23);
          __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20);
          __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0;
          __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17;
          goto __pyx_L5_except_error;
        }
      }
    }
    goto __pyx_L5_except_error;

    /* "django_templates_cythonized/base.py":1248
 *         preferred over using the render method directly.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             return self.render(context)
 *         except Exception as e:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L0;
  }

  /* "django_templates_cythonized/base.py":1240
 *         pass
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render_annotated(self, context: Context):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.render_annotated", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_3render_annotated(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_4Node_2render_annotated, "\n        Render the node. If debug is True and an exception occurs during\n        rendering, the exception is annotated with contextual line information\n        where it occurred in the template. For internal usage this method is\n        preferred over using the render method directly.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_4Node_3render_annotated = {"render_annotated", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_4Node_3render_annotated, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_4Node_2render_annotated};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_3render_annotated(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render_annotated (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1240, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1240, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "render_annotated", 0) < (0)) __PYX_ERR(0, 1240, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("render_annotated", 1, 1, 1, i); __PYX_ERR(0, 1240, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1240, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render_annotated", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1240, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.render_annotated", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 1241, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_2render_annotated(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_2render_annotated(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render_annotated", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_4Node_render_annotated(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.render_annotated", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1265
 *             raise
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def get_nodes_by_type(self, nodetype):
 *         """
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_5get_nodes_by_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_4Node_get_nodes_by_type(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v_nodetype, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_nodes = NULL;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_nodelist = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_nodes_by_type", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_get_nodes_by_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1265, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_4Node_5get_nodes_by_type)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_nodetype};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1265, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":1271
 *         of the given type
 *         """
 *         nodes = []             # <<<<<<<<<<<<<<
 *         if isinstance(self, nodetype):
 *             nodes.append(self)
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_nodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1272
 *         """
 *         nodes = []
 *         if isinstance(self, nodetype):             # <<<<<<<<<<<<<<
 *             nodes.append(self)
 *         for attr in self.child_nodelists:
*/
  __pyx_t_6 = PyObject_IsInstance(((PyObject *)__pyx_v_self), __pyx_v_nodetype); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1272, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "django_templates_cythonized/base.py":1273
 *         nodes = []
 *         if isinstance(self, nodetype):
 *             nodes.append(self)             # <<<<<<<<<<<<<<
 *         for attr in self.child_nodelists:
 *             nodelist = getattr(self, attr, None)
*/
    __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_nodes, ((PyObject *)__pyx_v_self)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 1273, __pyx_L1_error)

    /* "django_templates_cythonized/base.py":1272
 *         """
 *         nodes = []
 *         if isinstance(self, nodetype):             # <<<<<<<<<<<<<<
 *             nodes.append(self)
 *         for attr in self.child_nodelists:
*/
  }

  /* "django_templates_cythonized/base.py":1274
 *         if isinstance(self, nodetype):
 *             nodes.append(self)
 *         for attr in self.child_nodelists:             # <<<<<<<<<<<<<<
 *             nodelist = getattr(self, attr, None)
 *             if nodelist:
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_child_nodelists); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1274, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1274, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1274, __pyx_L1_error)
          #endif
          if (__pyx_t_8 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_8;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1274, __pyx_L1_error)
          #endif
          if (__pyx_t_8 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_8);
        #endif
        ++__pyx_t_8;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1274, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_9(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1274, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":1275
 *             nodes.append(self)
 *         for attr in self.child_nodelists:
 *             nodelist = getattr(self, attr, None)             # <<<<<<<<<<<<<<
 *             if nodelist:
 *                 nodes.extend(nodelist.get_nodes_by_type(nodetype))
*/
    __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_v_attr, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_nodelist, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":1276
 *         for attr in self.child_nodelists:
 *             nodelist = getattr(self, attr, None)
 *             if nodelist:             # <<<<<<<<<<<<<<
 *                 nodes.extend(nodelist.get_nodes_by_type(nodetype))
 *         return nodes
*/
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_nodelist); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 1276, __pyx_L1_error)
    if (__pyx_t_6) {

      /* "django_templates_cythonized/base.py":1277
 *             nodelist = getattr(self, attr, None)
 *             if nodelist:
 *                 nodes.extend(nodelist.get_nodes_by_type(nodetype))             # <<<<<<<<<<<<<<
 *         return nodes
 * 
*/
      __pyx_t_4 = __pyx_v_nodelist;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_nodetype};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_nodes_by_type, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1277, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_7 = __Pyx_PyList_Extend(__pyx_v_nodes, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 1277, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":1276
 *         for attr in self.child_nodelists:
 *             nodelist = getattr(self, attr, None)
 *             if nodelist:             # <<<<<<<<<<<<<<
 *                 nodes.extend(nodelist.get_nodes_by_type(nodetype))
 *         return nodes
*/
    }

    /* "django_templates_cythonized/base.py":1274
 *         if isinstance(self, nodetype):
 *             nodes.append(self)
 *         for attr in self.child_nodelists:             # <<<<<<<<<<<<<<
 *             nodelist = getattr(self, attr, None)
 *             if nodelist:
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1278
 *             if nodelist:
 *                 nodes.extend(nodelist.get_nodes_by_type(nodetype))
 *         return nodes             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_nodes);
  __pyx_r = __pyx_v_nodes;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1265
 *             raise
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def get_nodes_by_type(self, nodetype):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.get_nodes_by_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_nodes);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_nodelist);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_5get_nodes_by_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_4Node_4get_nodes_by_type, "\n        Return a list of all nodes (within this node and its nodelist)\n        of the given type\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_4Node_5get_nodes_by_type = {"get_nodes_by_type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_4Node_5get_nodes_by_type, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_4Node_4get_nodes_by_type};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_5get_nodes_by_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_nodetype = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_nodes_by_type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nodetype,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1265, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1265, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_nodes_by_type", 0) < (0)) __PYX_ERR(0, 1265, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_nodes_by_type", 1, 1, 1, i); __PYX_ERR(0, 1265, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1265, __pyx_L3_error)
    }
    __pyx_v_nodetype = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_nodes_by_type", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1265, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.get_nodes_by_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_4get_nodes_by_type(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self), __pyx_v_nodetype);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_4get_nodes_by_type(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v_nodetype) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_nodes_by_type", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_4Node_get_nodes_by_type(__pyx_v_self, __pyx_v_nodetype, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.get_nodes_by_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":16
 * 
 * cdef class Node:
 *     cdef public object token             # <<<<<<<<<<<<<<
 *     cdef public object origin
 *     cpdef render(self, Context context)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_5token_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_5token_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_5token___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_5token___get__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->token);
  __pyx_r = __pyx_v_self->token;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_4Node_5token_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_4Node_5token_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_5token_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_4Node_5token_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->token);
  __Pyx_DECREF(__pyx_v_self->token);
  __pyx_v_self->token = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_4Node_5token_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_4Node_5token_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_5token_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_4Node_5token_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->token);
  __Pyx_DECREF(__pyx_v_self->token);
  __pyx_v_self->token = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":17
 * cdef class Node:
 *     cdef public object token
 *     cdef public object origin             # <<<<<<<<<<<<<<
 *     cpdef render(self, Context context)
 *     cpdef render_annotated(self, Context context)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_6origin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_6origin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_6origin___get__(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_6origin___get__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->origin);
  __pyx_r = __pyx_v_self->origin;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_4Node_6origin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_4Node_6origin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_6origin_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_4Node_6origin_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 0);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->origin);
  __Pyx_DECREF(__pyx_v_self->origin);
  __pyx_v_self->origin = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_4Node_6origin_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_4Node_6origin_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_6origin_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_4Node_6origin_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->origin);
  __Pyx_DECREF(__pyx_v_self->origin);
  __pyx_v_self->origin = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_4Node_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_4Node_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_6__reduce_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_6__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.origin, self.token)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->origin);
  __Pyx_GIVEREF(__pyx_v_self->origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->origin) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->token);
  __Pyx_GIVEREF(__pyx_v_self->token);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->token) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __pyx_v_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.origin, self.token)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = (self.origin, self.token)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.origin is not None or self.token is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.origin, self.token)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.origin is not None or self.token is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, None), state
*/
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->origin != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->token != Py_None);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_2;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.token is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.origin is not None or self.token is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Node); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_178447223);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_178447223);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_178447223) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.token is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, None), state
 *     else:
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Node__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Node); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_178447223);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_178447223);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_178447223) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Node__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_4Node_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_4Node_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_4Node_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_4Node_8__setstate_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_4Node_8__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Node__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Node__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Node__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.Node.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1288
 *         contains_nontext = False
 * 
 *     def __init__(self, initial=None):             # <<<<<<<<<<<<<<
 *         if initial is not None:
 *             self._nodes = list(initial)
*/

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_initial = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_initial,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1288, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1288, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1288, __pyx_L3_error)
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1288, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_initial = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1288, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList___init__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self), __pyx_v_initial);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8NodeList___init__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_initial) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":1289
 * 
 *     def __init__(self, initial=None):
 *         if initial is not None:             # <<<<<<<<<<<<<<
 *             self._nodes = list(initial)
 *         else:
*/
  __pyx_t_1 = (__pyx_v_initial != Py_None);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1290
 *     def __init__(self, initial=None):
 *         if initial is not None:
 *             self._nodes = list(initial)             # <<<<<<<<<<<<<<
 *         else:
 *             self._nodes = []
*/
    __pyx_t_2 = PySequence_List(__pyx_v_initial); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->_nodes);
    __Pyx_DECREF(__pyx_v_self->_nodes);
    __pyx_v_self->_nodes = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1289
 * 
 *     def __init__(self, initial=None):
 *         if initial is not None:             # <<<<<<<<<<<<<<
 *             self._nodes = list(initial)
 *         else:
*/
    goto __pyx_L3;
  }

  /* "django_templates_cythonized/base.py":1292
 *             self._nodes = list(initial)
 *         else:
 *             self._nodes = []             # <<<<<<<<<<<<<<
 *         self.contains_nontext = False
 * 
*/
  /*else*/ {
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->_nodes);
    __Pyx_DECREF(__pyx_v_self->_nodes);
    __pyx_v_self->_nodes = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "django_templates_cythonized/base.py":1293
 *         else:
 *             self._nodes = []
 *         self.contains_nontext = False             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __pyx_v_self->contains_nontext = 0;

  /* "django_templates_cythonized/base.py":1288
 *         contains_nontext = False
 * 
 *     def __init__(self, initial=None):             # <<<<<<<<<<<<<<
 *         if initial is not None:
 *             self._nodes = list(initial)
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1295
 *         self.contains_nontext = False
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return len(self._nodes)
 * 
*/

/* Python wrapper */
static Py_ssize_t __pyx_pw_27django_templates_cythonized_4base_8NodeList_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_27django_templates_cythonized_4base_8NodeList_3__len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_2__len__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_27django_templates_cythonized_4base_8NodeList_2__len__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "django_templates_cythonized/base.py":1296
 * 
 *     def __len__(self):
 *         return len(self._nodes)             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
*/
  __pyx_t_1 = __pyx_v_self->_nodes;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 1296, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1295
 *         self.contains_nontext = False
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return len(self._nodes)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1298
 *         return len(self._nodes)
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._nodes)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_5__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_5__iter__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_4__iter__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_4__iter__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "django_templates_cythonized/base.py":1299
 * 
 *     def __iter__(self):
 *         return iter(self._nodes)             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, index):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_nodes;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1298
 *         return len(self._nodes)
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._nodes)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1301
 *         return iter(self._nodes)
 * 
 *     def __getitem__(self, index):             # <<<<<<<<<<<<<<
 *         return self._nodes[index]
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_6__getitem__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self), ((PyObject *)__pyx_v_index));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_6__getitem__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_index) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  /* "django_templates_cythonized/base.py":1302
 * 
 *     def __getitem__(self, index):
 *         return self._nodes[index]             # <<<<<<<<<<<<<<
 * 
 *     def __bool__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_nodes == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 1302, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->_nodes, __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1301
 *         return iter(self._nodes)
 * 
 *     def __getitem__(self, index):             # <<<<<<<<<<<<<<
 *         return self._nodes[index]
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1304
 *         return self._nodes[index]
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         return len(self._nodes) > 0
 * 
*/

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_9__bool__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_9__bool__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__bool__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_8__bool__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8NodeList_8__bool__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__bool__", 0);

  /* "django_templates_cythonized/base.py":1305
 * 
 *     def __bool__(self):
 *         return len(self._nodes) > 0             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_t_1 = __pyx_v_self->_nodes;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 1305, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = (__pyx_t_2 > 0);
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1304
 *         return self._nodes[index]
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         return len(self._nodes) > 0
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__bool__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1307
 *         return len(self._nodes) > 0
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return repr(self._nodes)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_11__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_11__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_10__repr__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_10__repr__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":1308
 * 
 *     def __repr__(self):
 *         return repr(self._nodes)             # <<<<<<<<<<<<<<
 * 
 *     def append(self, node):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_nodes;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Repr(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1307
 *         return len(self._nodes) > 0
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return repr(self._nodes)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1310
 *         return repr(self._nodes)
 * 
 *     def append(self, node):             # <<<<<<<<<<<<<<
 *         self._nodes.append(node)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_13append(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8NodeList_13append = {"append", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8NodeList_13append, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_13append(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_node = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("append (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_node,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1310, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1310, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "append", 0) < (0)) __PYX_ERR(0, 1310, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("append", 1, 1, 1, i); __PYX_ERR(0, 1310, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1310, __pyx_L3_error)
    }
    __pyx_v_node = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("append", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1310, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.append", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_12append(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self), __pyx_v_node);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_12append(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_node) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("append", 0);

  /* "django_templates_cythonized/base.py":1311
 * 
 *     def append(self, node):
 *         self._nodes.append(node)             # <<<<<<<<<<<<<<
 * 
 *     @cython.wraparound(False)
*/
  if (unlikely(__pyx_v_self->_nodes == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(0, 1311, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_nodes, __pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1311, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1310
 *         return repr(self._nodes)
 * 
 *     def append(self, node):             # <<<<<<<<<<<<<<
 *         self._nodes.append(node)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.append", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1313
 *         self._nodes.append(node)
 * 
 *     @cython.wraparound(False)             # <<<<<<<<<<<<<<
 *     @cython.ccall
 *     def render(self, context: Context):
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_15render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8NodeList_render(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_nodes = 0;
  Py_ssize_t __pyx_v_n;
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_tmpl = NULL;
  int __pyx_v_debug;
  PyObject *__pyx_v_parts = 0;
  struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_tnode = 0;
  PyObject *__pyx_v_node = NULL;
  struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_vnode = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1313, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_8NodeList_15render)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":1316
 *     @cython.ccall
 *     def render(self, context: Context):
 *         nodes: list = self._nodes             # <<<<<<<<<<<<<<
 *         n: cython.Py_ssize_t = len(nodes)
 *         i: cython.Py_ssize_t
*/
  __pyx_t_1 = __pyx_v_self->_nodes;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_nodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1317
 *     def render(self, context: Context):
 *         nodes: list = self._nodes
 *         n: cython.Py_ssize_t = len(nodes)             # <<<<<<<<<<<<<<
 *         i: cython.Py_ssize_t
 *         tmpl = context.template
*/
  if (unlikely(__pyx_v_nodes == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 1317, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_nodes); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1317, __pyx_L1_error)
  __pyx_v_n = __pyx_t_6;

  /* "django_templates_cythonized/base.py":1319
 *         n: cython.Py_ssize_t = len(nodes)
 *         i: cython.Py_ssize_t
 *         tmpl = context.template             # <<<<<<<<<<<<<<
 *         debug: cython.bint = tmpl is not None and tmpl.engine.debug
 * 
*/
  __pyx_t_1 = __pyx_v_context->__pyx_template;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_tmpl = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1320
 *         i: cython.Py_ssize_t
 *         tmpl = context.template
 *         debug: cython.bint = tmpl is not None and tmpl.engine.debug             # <<<<<<<<<<<<<<
 * 
 *         if not debug and not self.contains_nontext:
*/
  __pyx_t_8 = (__pyx_v_tmpl != Py_None);
  if (__pyx_t_8) {
  } else {
    __pyx_t_7 = __pyx_t_8;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_tmpl, __pyx_mstate_global->__pyx_n_u_engine); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1320, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_t_8;
  __pyx_L3_bool_binop_done:;
  __pyx_v_debug = __pyx_t_7;

  /* "django_templates_cythonized/base.py":1322
 *         debug: cython.bint = tmpl is not None and tmpl.engine.debug
 * 
 *         if not debug and not self.contains_nontext:             # <<<<<<<<<<<<<<
 *             # ULTRA-FAST PATH: all TextNodes  just join .s strings, no isinstance needed
 *             if n == 1:
*/
  __pyx_t_8 = (!__pyx_v_debug);
  if (__pyx_t_8) {
  } else {
    __pyx_t_7 = __pyx_t_8;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_8 = (!__pyx_v_self->contains_nontext);
  __pyx_t_7 = __pyx_t_8;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_7) {

    /* "django_templates_cythonized/base.py":1324
 *         if not debug and not self.contains_nontext:
 *             # ULTRA-FAST PATH: all TextNodes  just join .s strings, no isinstance needed
 *             if n == 1:             # <<<<<<<<<<<<<<
 *                 return SafeString(nodes[0].s)
 *             parts: list = [None] * n
*/
    __pyx_t_7 = (__pyx_v_n == 1);
    if (__pyx_t_7) {

      /* "django_templates_cythonized/base.py":1325
 *             # ULTRA-FAST PATH: all TextNodes  just join .s strings, no isinstance needed
 *             if n == 1:
 *                 return SafeString(nodes[0].s)             # <<<<<<<<<<<<<<
 *             parts: list = [None] * n
 *             for i in range(n):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SafeString); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (unlikely(__pyx_v_nodes == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 1325, __pyx_L1_error)
      }
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__Pyx_PyList_GET_ITEM(__pyx_v_nodes, 0), __pyx_mstate_global->__pyx_n_u_s_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
        assert(__pyx_t_1);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_3};
        __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1325, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1324
 *         if not debug and not self.contains_nontext:
 *             # ULTRA-FAST PATH: all TextNodes  just join .s strings, no isinstance needed
 *             if n == 1:             # <<<<<<<<<<<<<<
 *                 return SafeString(nodes[0].s)
 *             parts: list = [None] * n
*/
    }

    /* "django_templates_cythonized/base.py":1326
 *             if n == 1:
 *                 return SafeString(nodes[0].s)
 *             parts: list = [None] * n             # <<<<<<<<<<<<<<
 *             for i in range(n):
 *                 tnode: TextNode = nodes[i]
*/
    __pyx_t_2 = PyList_New(1 * ((__pyx_v_n<0) ? 0:__pyx_v_n)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    { Py_ssize_t __pyx_temp;
      for (__pyx_temp=0; __pyx_temp < __pyx_v_n; __pyx_temp++) {
        __Pyx_INCREF(Py_None);
        __Pyx_GIVEREF(Py_None);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_2, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 1326, __pyx_L1_error);
      }
    }
    __pyx_v_parts = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1327
 *                 return SafeString(nodes[0].s)
 *             parts: list = [None] * n
 *             for i in range(n):             # <<<<<<<<<<<<<<
 *                 tnode: TextNode = nodes[i]
 *                 parts[i] = tnode.s
*/
    __pyx_t_6 = __pyx_v_n;
    __pyx_t_9 = __pyx_t_6;
    for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
      __pyx_v_i = __pyx_t_10;

      /* "django_templates_cythonized/base.py":1328
 *             parts: list = [None] * n
 *             for i in range(n):
 *                 tnode: TextNode = nodes[i]             # <<<<<<<<<<<<<<
 *                 parts[i] = tnode.s
 *             return SafeString("".join(parts))
*/
      if (unlikely(__pyx_v_nodes == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 1328, __pyx_L1_error)
      }
      __pyx_t_2 = __Pyx_PyList_GET_ITEM(__pyx_v_nodes, __pyx_v_i);
      __Pyx_INCREF(__pyx_t_2);
      if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode))))) __PYX_ERR(0, 1328, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_tnode, ((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_t_2));
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1329
 *             for i in range(n):
 *                 tnode: TextNode = nodes[i]
 *                 parts[i] = tnode.s             # <<<<<<<<<<<<<<
 *             return SafeString("".join(parts))
 * 
*/
      __pyx_t_2 = __pyx_v_tnode->s;
      __Pyx_INCREF(__pyx_t_2);
      if (unlikely((__Pyx_SetItemInt(__pyx_v_parts, __pyx_v_i, __pyx_t_2, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 1329, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }

    /* "django_templates_cythonized/base.py":1330
 *                 tnode: TextNode = nodes[i]
 *                 parts[i] = tnode.s
 *             return SafeString("".join(parts))             # <<<<<<<<<<<<<<
 * 
 *         if not debug:
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SafeString); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__7, __pyx_v_parts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_1};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1330, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1322
 *         debug: cython.bint = tmpl is not None and tmpl.engine.debug
 * 
 *         if not debug and not self.contains_nontext:             # <<<<<<<<<<<<<<
 *             # ULTRA-FAST PATH: all TextNodes  just join .s strings, no isinstance needed
 *             if n == 1:
*/
  }

  /* "django_templates_cythonized/base.py":1332
 *             return SafeString("".join(parts))
 * 
 *         if not debug:             # <<<<<<<<<<<<<<
 *             # Single-node fast path: skip list alloc + join + double SafeString wrap.
 *             if n == 1:
*/
  __pyx_t_7 = (!__pyx_v_debug);
  if (__pyx_t_7) {

    /* "django_templates_cythonized/base.py":1334
 *         if not debug:
 *             # Single-node fast path: skip list alloc + join + double SafeString wrap.
 *             if n == 1:             # <<<<<<<<<<<<<<
 *                 node = nodes[0]
 *                 if isinstance(node, TextNode):
*/
    __pyx_t_7 = (__pyx_v_n == 1);
    if (__pyx_t_7) {

      /* "django_templates_cythonized/base.py":1335
 *             # Single-node fast path: skip list alloc + join + double SafeString wrap.
 *             if n == 1:
 *                 node = nodes[0]             # <<<<<<<<<<<<<<
 *                 if isinstance(node, TextNode):
 *                     tnode: TextNode = node
*/
      if (unlikely(__pyx_v_nodes == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 1335, __pyx_L1_error)
      }
      __pyx_t_2 = __Pyx_PyList_GET_ITEM(__pyx_v_nodes, 0);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_node = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1336
 *             if n == 1:
 *                 node = nodes[0]
 *                 if isinstance(node, TextNode):             # <<<<<<<<<<<<<<
 *                     tnode: TextNode = node
 *                     return SafeString(tnode.s)
*/
      __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_node, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode); 
      if (__pyx_t_7) {

        /* "django_templates_cythonized/base.py":1337
 *                 node = nodes[0]
 *                 if isinstance(node, TextNode):
 *                     tnode: TextNode = node             # <<<<<<<<<<<<<<
 *                     return SafeString(tnode.s)
 *                 elif isinstance(node, VariableNode):
*/
        __pyx_t_2 = __pyx_v_node;
        __Pyx_INCREF(__pyx_t_2);
        if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode))))) __PYX_ERR(0, 1337, __pyx_L1_error)
        __pyx_v_tnode = ((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_t_2);
        __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":1338
 *                 if isinstance(node, TextNode):
 *                     tnode: TextNode = node
 *                     return SafeString(tnode.s)             # <<<<<<<<<<<<<<
 *                 elif isinstance(node, VariableNode):
 *                     vnode: VariableNode = node
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_SafeString); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1338, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_tnode->s};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1338, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1336
 *             if n == 1:
 *                 node = nodes[0]
 *                 if isinstance(node, TextNode):             # <<<<<<<<<<<<<<
 *                     tnode: TextNode = node
 *                     return SafeString(tnode.s)
*/
      }

      /* "django_templates_cythonized/base.py":1339
 *                     tnode: TextNode = node
 *                     return SafeString(tnode.s)
 *                 elif isinstance(node, VariableNode):             # <<<<<<<<<<<<<<
 *                     vnode: VariableNode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)
*/
      __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_node, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode); 
      if (__pyx_t_7) {

        /* "django_templates_cythonized/base.py":1340
 *                     return SafeString(tnode.s)
 *                 elif isinstance(node, VariableNode):
 *                     vnode: VariableNode = node             # <<<<<<<<<<<<<<
 *                     result = _render_var_fast(vnode.filter_expression, context)
 *                     if result is not None:
*/
        __pyx_t_2 = __pyx_v_node;
        __Pyx_INCREF(__pyx_t_2);
        if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode))))) __PYX_ERR(0, 1340, __pyx_L1_error)
        __pyx_v_vnode = ((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_t_2);
        __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":1341
 *                 elif isinstance(node, VariableNode):
 *                     vnode: VariableNode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)             # <<<<<<<<<<<<<<
 *                     if result is not None:
 *                         if isinstance(result, SafeData):
*/
        __pyx_t_2 = ((PyObject *)__pyx_v_vnode->filter_expression);
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base__render_var_fast(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_t_2), __pyx_v_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_v_result = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1342
 *                     vnode: VariableNode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)
 *                     if result is not None:             # <<<<<<<<<<<<<<
 *                         if isinstance(result, SafeData):
 *                             return result
*/
        __pyx_t_7 = (__pyx_v_result != Py_None);
        if (__pyx_t_7) {

          /* "django_templates_cythonized/base.py":1343
 *                     result = _render_var_fast(vnode.filter_expression, context)
 *                     if result is not None:
 *                         if isinstance(result, SafeData):             # <<<<<<<<<<<<<<
 *                             return result
 *                         return SafeString(result)
*/
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_7 = PyObject_IsInstance(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 1343, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__pyx_t_7) {

            /* "django_templates_cythonized/base.py":1344
 *                     if result is not None:
 *                         if isinstance(result, SafeData):
 *                             return result             # <<<<<<<<<<<<<<
 *                         return SafeString(result)
 *                     result = node.render(context)
*/
            __Pyx_XDECREF(__pyx_r);
            __Pyx_INCREF(__pyx_v_result);
            __pyx_r = __pyx_v_result;
            goto __pyx_L0;

            /* "django_templates_cythonized/base.py":1343
 *                     result = _render_var_fast(vnode.filter_expression, context)
 *                     if result is not None:
 *                         if isinstance(result, SafeData):             # <<<<<<<<<<<<<<
 *                             return result
 *                         return SafeString(result)
*/
          }

          /* "django_templates_cythonized/base.py":1345
 *                         if isinstance(result, SafeData):
 *                             return result
 *                         return SafeString(result)             # <<<<<<<<<<<<<<
 *                     result = node.render(context)
 *                     if isinstance(result, SafeData):
*/
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_2 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SafeString); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_5 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
            assert(__pyx_t_2);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
            __pyx_t_5 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_result};
            __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1345, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
          }
          __pyx_r = __pyx_t_1;
          __pyx_t_1 = 0;
          goto __pyx_L0;

          /* "django_templates_cythonized/base.py":1342
 *                     vnode: VariableNode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)
 *                     if result is not None:             # <<<<<<<<<<<<<<
 *                         if isinstance(result, SafeData):
 *                             return result
*/
        }

        /* "django_templates_cythonized/base.py":1346
 *                             return result
 *                         return SafeString(result)
 *                     result = node.render(context)             # <<<<<<<<<<<<<<
 *                     if isinstance(result, SafeData):
 *                         return result
*/
        __pyx_t_3 = __pyx_v_node;
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_5 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_render_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1346, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1347
 *                         return SafeString(result)
 *                     result = node.render(context)
 *                     if isinstance(result, SafeData):             # <<<<<<<<<<<<<<
 *                         return result
 *                     return SafeString(result)
*/
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1347, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = PyObject_IsInstance(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 1347, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_7) {

          /* "django_templates_cythonized/base.py":1348
 *                     result = node.render(context)
 *                     if isinstance(result, SafeData):
 *                         return result             # <<<<<<<<<<<<<<
 *                     return SafeString(result)
 *                 else:
*/
          __Pyx_XDECREF(__pyx_r);
          __Pyx_INCREF(__pyx_v_result);
          __pyx_r = __pyx_v_result;
          goto __pyx_L0;

          /* "django_templates_cythonized/base.py":1347
 *                         return SafeString(result)
 *                     result = node.render(context)
 *                     if isinstance(result, SafeData):             # <<<<<<<<<<<<<<
 *                         return result
 *                     return SafeString(result)
*/
        }

        /* "django_templates_cythonized/base.py":1349
 *                     if isinstance(result, SafeData):
 *                         return result
 *                     return SafeString(result)             # <<<<<<<<<<<<<<
 *                 else:
 *                     result = node.render(context)
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SafeString); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1349, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_result};
          __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1349, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __pyx_r = __pyx_t_1;
        __pyx_t_1 = 0;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1339
 *                     tnode: TextNode = node
 *                     return SafeString(tnode.s)
 *                 elif isinstance(node, VariableNode):             # <<<<<<<<<<<<<<
 *                     vnode: VariableNode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)
*/
      }

      /* "django_templates_cythonized/base.py":1351
 *                     return SafeString(result)
 *                 else:
 *                     result = node.render(context)             # <<<<<<<<<<<<<<
 *                     if isinstance(result, SafeData):
 *                         return result
*/
      /*else*/ {
        __pyx_t_2 = __pyx_v_node;
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_5 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_context)};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_render_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __pyx_v_result = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1352
 *                 else:
 *                     result = node.render(context)
 *                     if isinstance(result, SafeData):             # <<<<<<<<<<<<<<
 *                         return result
 *                     return SafeString(result)
*/
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1352, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = PyObject_IsInstance(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 1352, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_7) {

          /* "django_templates_cythonized/base.py":1353
 *                     result = node.render(context)
 *                     if isinstance(result, SafeData):
 *                         return result             # <<<<<<<<<<<<<<
 *                     return SafeString(result)
 * 
*/
          __Pyx_XDECREF(__pyx_r);
          __Pyx_INCREF(__pyx_v_result);
          __pyx_r = __pyx_v_result;
          goto __pyx_L0;

          /* "django_templates_cythonized/base.py":1352
 *                 else:
 *                     result = node.render(context)
 *                     if isinstance(result, SafeData):             # <<<<<<<<<<<<<<
 *                         return result
 *                     return SafeString(result)
*/
        }

        /* "django_templates_cythonized/base.py":1354
 *                     if isinstance(result, SafeData):
 *                         return result
 *                     return SafeString(result)             # <<<<<<<<<<<<<<
 * 
 *             # FAST PATH: skip render_annotated try/except, inline TextNode + VariableNode
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_2 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_SafeString); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1354, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
          assert(__pyx_t_2);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_result};
          __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1354, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __pyx_r = __pyx_t_1;
        __pyx_t_1 = 0;
        goto __pyx_L0;
      }

      /* "django_templates_cythonized/base.py":1334
 *         if not debug:
 *             # Single-node fast path: skip list alloc + join + double SafeString wrap.
 *             if n == 1:             # <<<<<<<<<<<<<<
 *                 node = nodes[0]
 *                 if isinstance(node, TextNode):
*/
    }

    /* "django_templates_cythonized/base.py":1357
 * 
 *             # FAST PATH: skip render_annotated try/except, inline TextNode + VariableNode
 *             parts = [None] * n             # <<<<<<<<<<<<<<
 *             for i in range(n):
 *                 node = nodes[i]
*/
    __pyx_t_1 = PyList_New(1 * ((__pyx_v_n<0) ? 0:__pyx_v_n)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1357, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    { Py_ssize_t __pyx_temp;
      for (__pyx_temp=0; __pyx_temp < __pyx_v_n; __pyx_temp++) {
        __Pyx_INCREF(Py_None);
        __Pyx_GIVEREF(Py_None);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 1357, __pyx_L1_error);
      }
    }
    __pyx_v_parts = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":1358
 *             # FAST PATH: skip render_annotated try/except, inline TextNode + VariableNode
 *             parts = [None] * n
 *             for i in range(n):             # <<<<<<<<<<<<<<
 *                 node = nodes[i]
 *                 if isinstance(node, TextNode):
*/
    __pyx_t_6 = __pyx_v_n;
    __pyx_t_9 = __pyx_t_6;
    for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
      __pyx_v_i = __pyx_t_10;

      /* "django_templates_cythonized/base.py":1359
 *             parts = [None] * n
 *             for i in range(n):
 *                 node = nodes[i]             # <<<<<<<<<<<<<<
 *                 if isinstance(node, TextNode):
 *                     tnode = node
*/
      if (unlikely(__pyx_v_nodes == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 1359, __pyx_L1_error)
      }
      __pyx_t_1 = __Pyx_PyList_GET_ITEM(__pyx_v_nodes, __pyx_v_i);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":1360
 *             for i in range(n):
 *                 node = nodes[i]
 *                 if isinstance(node, TextNode):             # <<<<<<<<<<<<<<
 *                     tnode = node
 *                     parts[i] = tnode.s
*/
      __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_node, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode); 
      if (__pyx_t_7) {

        /* "django_templates_cythonized/base.py":1361
 *                 node = nodes[i]
 *                 if isinstance(node, TextNode):
 *                     tnode = node             # <<<<<<<<<<<<<<
 *                     parts[i] = tnode.s
 *                 elif isinstance(node, VariableNode):
*/
        __pyx_t_1 = __pyx_v_node;
        __Pyx_INCREF(__pyx_t_1);
        if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode))))) __PYX_ERR(0, 1361, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_tnode, ((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_t_1));
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1362
 *                 if isinstance(node, TextNode):
 *                     tnode = node
 *                     parts[i] = tnode.s             # <<<<<<<<<<<<<<
 *                 elif isinstance(node, VariableNode):
 *                     vnode = node
*/
        __pyx_t_1 = __pyx_v_tnode->s;
        __Pyx_INCREF(__pyx_t_1);
        if (unlikely((__Pyx_SetItemInt(__pyx_v_parts, __pyx_v_i, __pyx_t_1, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 1362, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1360
 *             for i in range(n):
 *                 node = nodes[i]
 *                 if isinstance(node, TextNode):             # <<<<<<<<<<<<<<
 *                     tnode = node
 *                     parts[i] = tnode.s
*/
        goto __pyx_L20;
      }

      /* "django_templates_cythonized/base.py":1363
 *                     tnode = node
 *                     parts[i] = tnode.s
 *                 elif isinstance(node, VariableNode):             # <<<<<<<<<<<<<<
 *                     vnode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)
*/
      __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_node, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode); 
      if (__pyx_t_7) {

        /* "django_templates_cythonized/base.py":1364
 *                     parts[i] = tnode.s
 *                 elif isinstance(node, VariableNode):
 *                     vnode = node             # <<<<<<<<<<<<<<
 *                     result = _render_var_fast(vnode.filter_expression, context)
 *                     if result is not None:
*/
        __pyx_t_1 = __pyx_v_node;
        __Pyx_INCREF(__pyx_t_1);
        if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode))))) __PYX_ERR(0, 1364, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_vnode, ((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_t_1));
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1365
 *                 elif isinstance(node, VariableNode):
 *                     vnode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)             # <<<<<<<<<<<<<<
 *                     if result is not None:
 *                         parts[i] = result
*/
        __pyx_t_1 = ((PyObject *)__pyx_v_vnode->filter_expression);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_f_27django_templates_cythonized_4base__render_var_fast(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_t_1), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1365, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_result, __pyx_t_3);
        __pyx_t_3 = 0;

        /* "django_templates_cythonized/base.py":1366
 *                     vnode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)
 *                     if result is not None:             # <<<<<<<<<<<<<<
 *                         parts[i] = result
 *                     else:
*/
        __pyx_t_7 = (__pyx_v_result != Py_None);
        if (__pyx_t_7) {

          /* "django_templates_cythonized/base.py":1367
 *                     result = _render_var_fast(vnode.filter_expression, context)
 *                     if result is not None:
 *                         parts[i] = result             # <<<<<<<<<<<<<<
 *                     else:
 *                         parts[i] = node.render(context)
*/
          if (unlikely((__Pyx_SetItemInt(__pyx_v_parts, __pyx_v_i, __pyx_v_result, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 1367, __pyx_L1_error)

          /* "django_templates_cythonized/base.py":1366
 *                     vnode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)
 *                     if result is not None:             # <<<<<<<<<<<<<<
 *                         parts[i] = result
 *                     else:
*/
          goto __pyx_L21;
        }

        /* "django_templates_cythonized/base.py":1369
 *                         parts[i] = result
 *                     else:
 *                         parts[i] = node.render(context)             # <<<<<<<<<<<<<<
 *                 else:
 *                     parts[i] = node.render(context)
*/
        /*else*/ {
          __pyx_t_1 = __pyx_v_node;
          __Pyx_INCREF(__pyx_t_1);
          __pyx_t_5 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_1, ((PyObject *)__pyx_v_context)};
            __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_render_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1369, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
          }
          if (unlikely((__Pyx_SetItemInt(__pyx_v_parts, __pyx_v_i, __pyx_t_3, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 1369, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __pyx_L21:;

        /* "django_templates_cythonized/base.py":1363
 *                     tnode = node
 *                     parts[i] = tnode.s
 *                 elif isinstance(node, VariableNode):             # <<<<<<<<<<<<<<
 *                     vnode = node
 *                     result = _render_var_fast(vnode.filter_expression, context)
*/
        goto __pyx_L20;
      }

      /* "django_templates_cythonized/base.py":1371
 *                         parts[i] = node.render(context)
 *                 else:
 *                     parts[i] = node.render(context)             # <<<<<<<<<<<<<<
 *         else:
 *             parts = [None] * n
*/
      /*else*/ {
        __pyx_t_1 = __pyx_v_node;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_5 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_1, ((PyObject *)__pyx_v_context)};
          __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_render_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1371, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
        }
        if (unlikely((__Pyx_SetItemInt(__pyx_v_parts, __pyx_v_i, __pyx_t_3, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 1371, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __pyx_L20:;
    }

    /* "django_templates_cythonized/base.py":1332
 *             return SafeString("".join(parts))
 * 
 *         if not debug:             # <<<<<<<<<<<<<<
 *             # Single-node fast path: skip list alloc + join + double SafeString wrap.
 *             if n == 1:
*/
    goto __pyx_L11;
  }

  /* "django_templates_cythonized/base.py":1373
 *                     parts[i] = node.render(context)
 *         else:
 *             parts = [None] * n             # <<<<<<<<<<<<<<
 *             for i in range(n):
 *                 node = nodes[i]
*/
  /*else*/ {
    __pyx_t_3 = PyList_New(1 * ((__pyx_v_n<0) ? 0:__pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    { Py_ssize_t __pyx_temp;
      for (__pyx_temp=0; __pyx_temp < __pyx_v_n; __pyx_temp++) {
        __Pyx_INCREF(Py_None);
        __Pyx_GIVEREF(Py_None);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_3, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 1373, __pyx_L1_error);
      }
    }
    __pyx_v_parts = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":1374
 *         else:
 *             parts = [None] * n
 *             for i in range(n):             # <<<<<<<<<<<<<<
 *                 node = nodes[i]
 *                 parts[i] = node.render_annotated(context)
*/
    __pyx_t_6 = __pyx_v_n;
    __pyx_t_9 = __pyx_t_6;
    for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
      __pyx_v_i = __pyx_t_10;

      /* "django_templates_cythonized/base.py":1375
 *             parts = [None] * n
 *             for i in range(n):
 *                 node = nodes[i]             # <<<<<<<<<<<<<<
 *                 parts[i] = node.render_annotated(context)
 *         return SafeString("".join(parts))
*/
      if (unlikely(__pyx_v_nodes == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 1375, __pyx_L1_error)
      }
      __pyx_t_3 = __Pyx_PyList_GET_ITEM(__pyx_v_nodes, __pyx_v_i);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":1376
 *             for i in range(n):
 *                 node = nodes[i]
 *                 parts[i] = node.render_annotated(context)             # <<<<<<<<<<<<<<
 *         return SafeString("".join(parts))
 * 
*/
      __pyx_t_1 = __pyx_v_node;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_1, ((PyObject *)__pyx_v_context)};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_render_annotated, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1376, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      if (unlikely((__Pyx_SetItemInt(__pyx_v_parts, __pyx_v_i, __pyx_t_3, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 1376, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
  }
  __pyx_L11:;

  /* "django_templates_cythonized/base.py":1377
 *                 node = nodes[i]
 *                 parts[i] = node.render_annotated(context)
 *         return SafeString("".join(parts))             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SafeString); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__7, __pyx_v_parts); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1313
 *         self._nodes.append(node)
 * 
 *     @cython.wraparound(False)             # <<<<<<<<<<<<<<
 *     @cython.ccall
 *     def render(self, context: Context):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_nodes);
  __Pyx_XDECREF(__pyx_v_tmpl);
  __Pyx_XDECREF(__pyx_v_parts);
  __Pyx_XDECREF((PyObject *)__pyx_v_tnode);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XDECREF((PyObject *)__pyx_v_vnode);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_15render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8NodeList_15render = {"render", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8NodeList_15render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_15render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1313, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1313, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "render", 0) < (0)) __PYX_ERR(0, 1313, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, i); __PYX_ERR(0, 1313, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1313, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1313, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 1315, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_14render(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_14render(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_8NodeList_render(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1379
 *         return SafeString("".join(parts))
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def get_nodes_by_type(self, nodetype):
 *         "Return a list of all nodes of the given type"
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_17get_nodes_by_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8NodeList_get_nodes_by_type(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_nodetype, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_nodes = NULL;
  PyObject *__pyx_v_node = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_nodes_by_type", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_get_nodes_by_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1379, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_8NodeList_17get_nodes_by_type)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_nodetype};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1379, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":1382
 *     def get_nodes_by_type(self, nodetype):
 *         "Return a list of all nodes of the given type"
 *         nodes = []             # <<<<<<<<<<<<<<
 *         for node in self._nodes:
 *             nodes.extend(node.get_nodes_by_type(nodetype))
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_nodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1383
 *         "Return a list of all nodes of the given type"
 *         nodes = []
 *         for node in self._nodes:             # <<<<<<<<<<<<<<
 *             nodes.extend(node.get_nodes_by_type(nodetype))
 *         return nodes
*/
  if (unlikely(__pyx_v_self->_nodes == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 1383, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_v_self->_nodes; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_6 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1383, __pyx_L1_error)
      #endif
      if (__pyx_t_6 >= __pyx_temp) break;
    }
    __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);
    ++__pyx_t_6;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1384
 *         nodes = []
 *         for node in self._nodes:
 *             nodes.extend(node.get_nodes_by_type(nodetype))             # <<<<<<<<<<<<<<
 *         return nodes
 * 
*/
    __pyx_t_4 = __pyx_v_node;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_nodetype};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_nodes_by_type, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_7 = __Pyx_PyList_Extend(__pyx_v_nodes, __pyx_t_2); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 1384, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1383
 *         "Return a list of all nodes of the given type"
 *         nodes = []
 *         for node in self._nodes:             # <<<<<<<<<<<<<<
 *             nodes.extend(node.get_nodes_by_type(nodetype))
 *         return nodes
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1385
 *         for node in self._nodes:
 *             nodes.extend(node.get_nodes_by_type(nodetype))
 *         return nodes             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_nodes);
  __pyx_r = __pyx_v_nodes;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1379
 *         return SafeString("".join(parts))
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def get_nodes_by_type(self, nodetype):
 *         "Return a list of all nodes of the given type"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.get_nodes_by_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_nodes);
  __Pyx_XDECREF(__pyx_v_node);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_17get_nodes_by_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_8NodeList_16get_nodes_by_type, "Return a list of all nodes of the given type");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8NodeList_17get_nodes_by_type = {"get_nodes_by_type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8NodeList_17get_nodes_by_type, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_8NodeList_16get_nodes_by_type};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_17get_nodes_by_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_nodetype = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_nodes_by_type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nodetype,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1379, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1379, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_nodes_by_type", 0) < (0)) __PYX_ERR(0, 1379, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_nodes_by_type", 1, 1, 1, i); __PYX_ERR(0, 1379, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1379, __pyx_L3_error)
    }
    __pyx_v_nodetype = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_nodes_by_type", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1379, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.get_nodes_by_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_16get_nodes_by_type(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self), __pyx_v_nodetype);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_16get_nodes_by_type(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_nodetype) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_nodes_by_type", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_8NodeList_get_nodes_by_type(__pyx_v_self, __pyx_v_nodetype, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.get_nodes_by_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":28
 * 
 * cdef class NodeList:
 *     cdef public list _nodes             # <<<<<<<<<<<<<<
 *     cdef public bint contains_nontext
 *     cpdef render(self, Context context)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_6_nodes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_6_nodes_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_6_nodes___get__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_6_nodes___get__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_nodes);
  __pyx_r = __pyx_v_self->_nodes;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_6_nodes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_6_nodes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_6_nodes_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8NodeList_6_nodes_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(1, 28, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_nodes);
  __Pyx_DECREF(__pyx_v_self->_nodes);
  __pyx_v_self->_nodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList._nodes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_6_nodes_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_6_nodes_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_6_nodes_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8NodeList_6_nodes_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_nodes);
  __Pyx_DECREF(__pyx_v_self->_nodes);
  __pyx_v_self->_nodes = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":29
 * cdef class NodeList:
 *     cdef public list _nodes
 *     cdef public bint contains_nontext             # <<<<<<<<<<<<<<
 *     cpdef render(self, Context context)
 *     cpdef get_nodes_by_type(self, nodetype)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_16contains_nontext_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_16contains_nontext_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_16contains_nontext___get__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_16contains_nontext___get__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->contains_nontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.contains_nontext.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_16contains_nontext_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8NodeList_16contains_nontext_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_16contains_nontext_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8NodeList_16contains_nontext_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 29, __pyx_L1_error)
  __pyx_v_self->contains_nontext = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.contains_nontext.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_19__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8NodeList_19__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8NodeList_19__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_19__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_18__reduce_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_18__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._nodes, self.contains_nontext)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->contains_nontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_nodes);
  __Pyx_GIVEREF(__pyx_v_self->_nodes);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_nodes) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._nodes, self.contains_nontext)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._nodes, self.contains_nontext)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._nodes is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._nodes, self.contains_nontext)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._nodes is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, None), state
*/
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->_nodes != ((PyObject*)Py_None));
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._nodes is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._nodes is not None
 *     if use_setstate:
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_NodeList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_154960213);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_154960213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_154960213) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._nodes is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, None), state
 *     else:
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_NodeList__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_NodeList); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_154960213);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_154960213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_154960213) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_NodeList__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_21__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8NodeList_21__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8NodeList_21__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8NodeList_21__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8NodeList_20__setstate_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8NodeList_20__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_NodeList__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_NodeList__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_NodeList__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.NodeList.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1391
 *     child_nodelists = ()
 * 
 *     def __init__(self, s):             # <<<<<<<<<<<<<<
 *         self.s = s
 * 
*/

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8TextNode_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8TextNode_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_s = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1391, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1391, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1391, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 1391, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1391, __pyx_L3_error)
    }
    __pyx_v_s = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1391, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8TextNode___init__(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v_self), __pyx_v_s);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8TextNode___init__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, PyObject *__pyx_v_s) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":1392
 * 
 *     def __init__(self, s):
 *         self.s = s             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_t_1 = __pyx_v_s;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 1392, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->s);
  __Pyx_DECREF(__pyx_v_self->s);
  __pyx_v_self->s = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1391
 *     child_nodelists = ()
 * 
 *     def __init__(self, s):             # <<<<<<<<<<<<<<
 *         self.s = s
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1394
 *         self.s = s
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s: %r>" % (self.__class__.__name__, self.s[:25])
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_3__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_3__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8TextNode_2__repr__(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_2__repr__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":1395
 * 
 *     def __repr__(self):
 *         return "<%s: %r>" % (self.__class__.__name__, self.s[:25])             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(__pyx_v_self->s == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 1395, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyUnicode_Substring(__pyx_v_self->s, 0, 25); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_;
  __pyx_t_4[1] = __pyx_t_1;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__22;
  __pyx_t_4[3] = __pyx_t_3;
  __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u__2;
  __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1394
 *         self.s = s
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s: %r>" % (self.__class__.__name__, self.s[:25])
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1397
 *         return "<%s: %r>" % (self.__class__.__name__, self.s[:25])
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         return self.s
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_5render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8TextNode_render(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1397, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_8TextNode_5render)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1397, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":1399
 *     @cython.ccall
 *     def render(self, context: Context):
 *         return self.s             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->s);
  __pyx_r = __pyx_v_self->s;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1397
 *         return "<%s: %r>" % (self.__class__.__name__, self.s[:25])
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         return self.s
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_5render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8TextNode_5render = {"render", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8TextNode_5render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_5render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1397, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1397, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "render", 0) < (0)) __PYX_ERR(0, 1397, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, i); __PYX_ERR(0, 1397, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1397, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1397, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 1398, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8TextNode_4render(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_4render(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_8TextNode_render(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1401
 *         return self.s
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render_annotated(self, context: Context):
 *         """
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_7render_annotated(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_8TextNode_render_annotated(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render_annotated", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render_annotated); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1401, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_8TextNode_7render_annotated)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1401, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":1409
 *         during rendering, which is not necessary for text nodes.
 *         """
 *         return self.s             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->s);
  __pyx_r = __pyx_v_self->s;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1401
 *         return self.s
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render_annotated(self, context: Context):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.render_annotated", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_7render_annotated(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_8TextNode_6render_annotated, "\n        Return the given value.\n\n        The default implementation of this method handles exceptions raised\n        during rendering, which is not necessary for text nodes.\n        ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8TextNode_7render_annotated = {"render_annotated", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8TextNode_7render_annotated, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_8TextNode_6render_annotated};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_7render_annotated(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render_annotated (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1401, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1401, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "render_annotated", 0) < (0)) __PYX_ERR(0, 1401, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("render_annotated", 1, 1, 1, i); __PYX_ERR(0, 1401, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1401, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render_annotated", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1401, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.render_annotated", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 1402, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8TextNode_6render_annotated(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_6render_annotated(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render_annotated", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_8TextNode_render_annotated(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.render_annotated", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":23
 * 
 * cdef class TextNode(Node):
 *     cdef public str s             # <<<<<<<<<<<<<<
 *     cpdef render(self, Context context)
 *     cpdef render_annotated(self, Context context)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_1s_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_1s_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8TextNode_1s___get__(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_1s___get__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->s);
  __pyx_r = __pyx_v_self->s;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8TextNode_1s_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8TextNode_1s_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8TextNode_1s_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8TextNode_1s_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(1, 23, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->s);
  __Pyx_DECREF(__pyx_v_self->s);
  __pyx_v_self->s = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.s.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_8TextNode_1s_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_8TextNode_1s_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8TextNode_1s_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_8TextNode_1s_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->s);
  __Pyx_DECREF(__pyx_v_self->s);
  __pyx_v_self->s = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8TextNode_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8TextNode_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8TextNode_8__reduce_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_8__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.origin, self.s, self.token)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->__pyx_base.origin) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->s);
  __Pyx_GIVEREF(__pyx_v_self->s);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->s) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.token);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.token);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_self->__pyx_base.token) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __pyx_v_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.origin, self.s, self.token)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = (self.origin, self.s, self.token)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.origin is not None or self.s is not None or self.token is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.origin, self.s, self.token)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.origin is not None or self.s is not None or self.token is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, None), state
*/
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->__pyx_base.origin != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->s != ((PyObject*)Py_None));
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->__pyx_base.token != Py_None);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_2;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.s is not None or self.token is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.origin is not None or self.s is not None or self.token is not None
 *     if use_setstate:
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TextNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_200228074);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_200228074);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_200228074) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.s is not None or self.token is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, None), state
 *     else:
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TextNode__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TextNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_200228074);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_200228074);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_200228074) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TextNode__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8TextNode_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8TextNode_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8TextNode_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_8TextNode_10__setstate_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_8TextNode_10__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TextNode__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_TextNode__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TextNode__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.TextNode.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1412
 * 
 * 
 * @cython.ccall             # <<<<<<<<<<<<<<
 * def render_value_in_context(value, context: Context):
 *     """
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_6render_value_in_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_render_value_in_context(PyObject *__pyx_v_value, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_v_lang = NULL;
  PyObject *__pyx_v_get_language = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct __pyx_opt_args_27django_templates_cythonized_8timezone_template_localtime __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  struct __pyx_opt_args_27django_templates_cythonized_7formats_localize __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render_value_in_context", 0);
  __Pyx_INCREF(__pyx_v_value);

  /* "django_templates_cythonized/base.py":1421
 *     # Fast path: strings skip template_localtime (not datetime) and
 *     # localize (returns strings unchanged). This is the common case.
 *     if isinstance(value, str):             # <<<<<<<<<<<<<<
 *         if context.autoescape:
 *             if isinstance(value, SafeData):
*/
  __pyx_t_1 = PyUnicode_Check(__pyx_v_value); 
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1422
 *     # localize (returns strings unchanged). This is the common case.
 *     if isinstance(value, str):
 *         if context.autoescape:             # <<<<<<<<<<<<<<
 *             if isinstance(value, SafeData):
 *                 return value
*/
    if (__pyx_v_context->autoescape) {

      /* "django_templates_cythonized/base.py":1423
 *     if isinstance(value, str):
 *         if context.autoescape:
 *             if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                 return value
 *             return _fast_escape(value)
*/
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1423, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1423, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_1) {

        /* "django_templates_cythonized/base.py":1424
 *         if context.autoescape:
 *             if isinstance(value, SafeData):
 *                 return value             # <<<<<<<<<<<<<<
 *             return _fast_escape(value)
 *         return value
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_v_value);
        __pyx_r = __pyx_v_value;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1423
 *     if isinstance(value, str):
 *         if context.autoescape:
 *             if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                 return value
 *             return _fast_escape(value)
*/
      }

      /* "django_templates_cythonized/base.py":1425
 *             if isinstance(value, SafeData):
 *                 return value
 *             return _fast_escape(value)             # <<<<<<<<<<<<<<
 *         return value
 *     # template_localtime only acts on datetime objects; skip the cross-module
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base__fast_escape(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1425, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1422
 *     # localize (returns strings unchanged). This is the common case.
 *     if isinstance(value, str):
 *         if context.autoescape:             # <<<<<<<<<<<<<<
 *             if isinstance(value, SafeData):
 *                 return value
*/
    }

    /* "django_templates_cythonized/base.py":1426
 *                 return value
 *             return _fast_escape(value)
 *         return value             # <<<<<<<<<<<<<<
 *     # template_localtime only acts on datetime objects; skip the cross-module
 *     # call for the common non-datetime case (ints, floats, etc.).
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_value);
    __pyx_r = __pyx_v_value;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1421
 *     # Fast path: strings skip template_localtime (not datetime) and
 *     # localize (returns strings unchanged). This is the common case.
 *     if isinstance(value, str):             # <<<<<<<<<<<<<<
 *         if context.autoescape:
 *             if isinstance(value, SafeData):
*/
  }

  /* "django_templates_cythonized/base.py":1429
 *     # template_localtime only acts on datetime objects; skip the cross-module
 *     # call for the common non-datetime case (ints, floats, etc.).
 *     if isinstance(value, _datetime_type):             # <<<<<<<<<<<<<<
 *         value = template_localtime(value, use_tz=context.use_tz)
 *     # Lazily resolve and cache _lang on the context. Widget sub-renders
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1430
 *     # call for the common non-datetime case (ints, floats, etc.).
 *     if isinstance(value, _datetime_type):
 *         value = template_localtime(value, use_tz=context.use_tz)             # <<<<<<<<<<<<<<
 *     # Lazily resolve and cache _lang on the context. Widget sub-renders
 *     # (form fields) never hit this path (their values are strings), so
*/
    __pyx_t_2 = __pyx_v_context->use_tz;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4.__pyx_n = 1;
    __pyx_t_4.use_tz = __pyx_t_2;
    __pyx_t_3 = __pyx_f_27django_templates_cythonized_8timezone_template_localtime(__pyx_v_value, 0, &__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1430, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":1429
 *     # template_localtime only acts on datetime objects; skip the cross-module
 *     # call for the common non-datetime case (ints, floats, etc.).
 *     if isinstance(value, _datetime_type):             # <<<<<<<<<<<<<<
 *         value = template_localtime(value, use_tz=context.use_tz)
 *     # Lazily resolve and cache _lang on the context. Widget sub-renders
*/
  }

  /* "django_templates_cythonized/base.py":1434
 *     # (form fields) never hit this path (their values are strings), so
 *     # get_language() is only called once for the outer template render.
 *     lang = context._lang             # <<<<<<<<<<<<<<
 *     if lang is None:
 *         from django.utils.translation import get_language
*/
  __pyx_t_3 = __pyx_v_context->_lang;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_v_lang = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "django_templates_cythonized/base.py":1435
 *     # get_language() is only called once for the outer template render.
 *     lang = context._lang
 *     if lang is None:             # <<<<<<<<<<<<<<
 *         from django.utils.translation import get_language
 * 
*/
  __pyx_t_1 = (__pyx_v_lang == Py_None);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1436
 *     lang = context._lang
 *     if lang is None:
 *         from django.utils.translation import get_language             # <<<<<<<<<<<<<<
 * 
 *         lang = get_language()
*/
    {
      PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
      __pyx_t_5 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_translation, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1436, __pyx_L1_error)
    }
    __pyx_t_3 = __pyx_t_5;
    __Pyx_GOTREF(__pyx_t_3);
    {
      PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
      __pyx_t_6 = 0; {
        __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_imported_names[__pyx_t_6]); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1436, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        switch (__pyx_t_6) {
          case 0:
          __Pyx_INCREF(__pyx_t_2);
          __pyx_v_get_language = __pyx_t_2;
          break;
          default:;
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":1438
 *         from django.utils.translation import get_language
 * 
 *         lang = get_language()             # <<<<<<<<<<<<<<
 *         context._lang = lang
 *     value = localize(value, use_l10n=context.use_l10n, lang=lang)
*/
    __pyx_t_2 = NULL;
    __Pyx_INCREF(__pyx_v_get_language);
    __pyx_t_7 = __pyx_v_get_language; 
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1438, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF_SET(__pyx_v_lang, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "django_templates_cythonized/base.py":1439
 * 
 *         lang = get_language()
 *         context._lang = lang             # <<<<<<<<<<<<<<
 *     value = localize(value, use_l10n=context.use_l10n, lang=lang)
 *     if context.autoescape:
*/
    __Pyx_INCREF(__pyx_v_lang);
    __Pyx_GIVEREF(__pyx_v_lang);
    __Pyx_GOTREF(__pyx_v_context->_lang);
    __Pyx_DECREF(__pyx_v_context->_lang);
    __pyx_v_context->_lang = __pyx_v_lang;

    /* "django_templates_cythonized/base.py":1435
 *     # get_language() is only called once for the outer template render.
 *     lang = context._lang
 *     if lang is None:             # <<<<<<<<<<<<<<
 *         from django.utils.translation import get_language
 * 
*/
  }

  /* "django_templates_cythonized/base.py":1440
 *         lang = get_language()
 *         context._lang = lang
 *     value = localize(value, use_l10n=context.use_l10n, lang=lang)             # <<<<<<<<<<<<<<
 *     if context.autoescape:
 *         if not isinstance(value, str):
*/
  __pyx_t_3 = __pyx_v_context->use_l10n;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_9.__pyx_n = 2;
  __pyx_t_9.use_l10n = __pyx_t_3;
  __pyx_t_9.lang = __pyx_v_lang;
  __pyx_t_7 = __pyx_f_27django_templates_cythonized_7formats_localize(__pyx_v_value, 0, &__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_7);
  __pyx_t_7 = 0;

  /* "django_templates_cythonized/base.py":1441
 *         context._lang = lang
 *     value = localize(value, use_l10n=context.use_l10n, lang=lang)
 *     if context.autoescape:             # <<<<<<<<<<<<<<
 *         if not isinstance(value, str):
 *             value = str(value)
*/
  if (__pyx_v_context->autoescape) {

    /* "django_templates_cythonized/base.py":1442
 *     value = localize(value, use_l10n=context.use_l10n, lang=lang)
 *     if context.autoescape:
 *         if not isinstance(value, str):             # <<<<<<<<<<<<<<
 *             value = str(value)
 *         if isinstance(value, SafeData):
*/
    __pyx_t_1 = PyUnicode_Check(__pyx_v_value); 
    __pyx_t_10 = (!__pyx_t_1);
    if (__pyx_t_10) {

      /* "django_templates_cythonized/base.py":1443
 *     if context.autoescape:
 *         if not isinstance(value, str):
 *             value = str(value)             # <<<<<<<<<<<<<<
 *         if isinstance(value, SafeData):
 *             return value
*/
      __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1443, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "django_templates_cythonized/base.py":1442
 *     value = localize(value, use_l10n=context.use_l10n, lang=lang)
 *     if context.autoescape:
 *         if not isinstance(value, str):             # <<<<<<<<<<<<<<
 *             value = str(value)
 *         if isinstance(value, SafeData):
*/
    }

    /* "django_templates_cythonized/base.py":1444
 *         if not isinstance(value, str):
 *             value = str(value)
 *         if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *             return value
 *         return _fast_escape(value)
*/
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1444, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_10 = PyObject_IsInstance(__pyx_v_value, __pyx_t_7); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1444, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_10) {

      /* "django_templates_cythonized/base.py":1445
 *             value = str(value)
 *         if isinstance(value, SafeData):
 *             return value             # <<<<<<<<<<<<<<
 *         return _fast_escape(value)
 *     else:
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_value);
      __pyx_r = __pyx_v_value;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1444
 *         if not isinstance(value, str):
 *             value = str(value)
 *         if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *             return value
 *         return _fast_escape(value)
*/
    }

    /* "django_templates_cythonized/base.py":1446
 *         if isinstance(value, SafeData):
 *             return value
 *         return _fast_escape(value)             # <<<<<<<<<<<<<<
 *     else:
 *         return str(value)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __pyx_f_27django_templates_cythonized_4base__fast_escape(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1441
 *         context._lang = lang
 *     value = localize(value, use_l10n=context.use_l10n, lang=lang)
 *     if context.autoescape:             # <<<<<<<<<<<<<<
 *         if not isinstance(value, str):
 *             value = str(value)
*/
  }

  /* "django_templates_cythonized/base.py":1448
 *         return _fast_escape(value)
 *     else:
 *         return str(value)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1448, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;
  }

  /* "django_templates_cythonized/base.py":1412
 * 
 * 
 * @cython.ccall             # <<<<<<<<<<<<<<
 * def render_value_in_context(value, context: Context):
 *     """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("django_templates_cythonized.base.render_value_in_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_lang);
  __Pyx_XDECREF(__pyx_v_get_language);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6render_value_in_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_5render_value_in_context, "\n    Convert any value to a string to become part of a rendered template. This\n    means escaping, if required, and conversion to a string. If value is a\n    string, it's expected to already be translated.\n    ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_6render_value_in_context = {"render_value_in_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_6render_value_in_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_5render_value_in_context};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_6render_value_in_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_value = 0;
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render_value_in_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_value,&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1412, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1412, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1412, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "render_value_in_context", 0) < (0)) __PYX_ERR(0, 1412, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("render_value_in_context", 1, 2, 2, i); __PYX_ERR(0, 1412, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1412, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1412, __pyx_L3_error)
    }
    __pyx_v_value = values[0];
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render_value_in_context", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1412, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.render_value_in_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 1413, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_5render_value_in_context(__pyx_self, __pyx_v_value, __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_5render_value_in_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render_value_in_context", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_render_value_in_context(__pyx_v_value, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.render_value_in_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1461
 * 
 * 
 * @cython.wraparound(False)             # <<<<<<<<<<<<<<
 * def _resolve_fe_raw(fe: FilterExpression, context: Context):
 *     """
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base__resolve_fe_raw(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_fe, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_var = 0;
  PyObject *__pyx_v_lookups = NULL;
  PyObject *__pyx_v_lookups_t = 0;
  Py_ssize_t __pyx_v_n_lookups;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_dicts = 0;
  Py_ssize_t __pyx_v_n_dicts;
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_dd = 0;
  Py_ssize_t __pyx_v_seg;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_resolve_fe_raw", 0);

  /* "django_templates_cythonized/base.py":1468
 *     path is needed.
 *     """
 *     if not fe.is_var:             # <<<<<<<<<<<<<<
 *         if len(fe.filters) != 0:
 *             return _RESOLVE_FALLBACK
*/
  __pyx_t_1 = (!__pyx_v_fe->is_var);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1469
 *     """
 *     if not fe.is_var:
 *         if len(fe.filters) != 0:             # <<<<<<<<<<<<<<
 *             return _RESOLVE_FALLBACK
 *         return fe.var  # literal, no Variable involved
*/
    __pyx_t_2 = __pyx_v_fe->filters;
    __Pyx_INCREF(__pyx_t_2);
    if (unlikely(__pyx_t_2 == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 1469, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1469, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = (__pyx_t_3 != 0);
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":1470
 *     if not fe.is_var:
 *         if len(fe.filters) != 0:
 *             return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 *         return fe.var  # literal, no Variable involved
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1470, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1469
 *     """
 *     if not fe.is_var:
 *         if len(fe.filters) != 0:             # <<<<<<<<<<<<<<
 *             return _RESOLVE_FALLBACK
 *         return fe.var  # literal, no Variable involved
*/
    }

    /* "django_templates_cythonized/base.py":1471
 *         if len(fe.filters) != 0:
 *             return _RESOLVE_FALLBACK
 *         return fe.var  # literal, no Variable involved             # <<<<<<<<<<<<<<
 * 
 *     if len(fe.filters) != 0:
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_fe->var);
    __pyx_r = __pyx_v_fe->var;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1468
 *     path is needed.
 *     """
 *     if not fe.is_var:             # <<<<<<<<<<<<<<
 *         if len(fe.filters) != 0:
 *             return _RESOLVE_FALLBACK
*/
  }

  /* "django_templates_cythonized/base.py":1473
 *         return fe.var  # literal, no Variable involved
 * 
 *     if len(fe.filters) != 0:             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 * 
*/
  __pyx_t_2 = __pyx_v_fe->filters;
  __Pyx_INCREF(__pyx_t_2);
  if (unlikely(__pyx_t_2 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 1473, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1473, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = (__pyx_t_3 != 0);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1474
 * 
 *     if len(fe.filters) != 0:
 *         return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 * 
 *     var: Variable = fe.var
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1474, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1473
 *         return fe.var  # literal, no Variable involved
 * 
 *     if len(fe.filters) != 0:             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 * 
*/
  }

  /* "django_templates_cythonized/base.py":1476
 *         return _RESOLVE_FALLBACK
 * 
 *     var: Variable = fe.var             # <<<<<<<<<<<<<<
 *     lookups = var.lookups
 * 
*/
  __pyx_t_2 = __pyx_v_fe->var;
  __Pyx_INCREF(__pyx_t_2);
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable))))) __PYX_ERR(0, 1476, __pyx_L1_error)
  __pyx_v_var = ((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1477
 * 
 *     var: Variable = fe.var
 *     lookups = var.lookups             # <<<<<<<<<<<<<<
 * 
 *     if lookups is None:
*/
  __pyx_t_2 = __pyx_v_var->lookups;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_lookups = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1479
 *     lookups = var.lookups
 * 
 *     if lookups is None:             # <<<<<<<<<<<<<<
 *         if var.translate:
 *             return _RESOLVE_FALLBACK
*/
  __pyx_t_1 = (__pyx_v_lookups == Py_None);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1480
 * 
 *     if lookups is None:
 *         if var.translate:             # <<<<<<<<<<<<<<
 *             return _RESOLVE_FALLBACK
 *         return var.literal
*/
    if (__pyx_v_var->translate) {

      /* "django_templates_cythonized/base.py":1481
 *     if lookups is None:
 *         if var.translate:
 *             return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 *         return var.literal
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1481, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1480
 * 
 *     if lookups is None:
 *         if var.translate:             # <<<<<<<<<<<<<<
 *             return _RESOLVE_FALLBACK
 *         return var.literal
*/
    }

    /* "django_templates_cythonized/base.py":1482
 *         if var.translate:
 *             return _RESOLVE_FALLBACK
 *         return var.literal             # <<<<<<<<<<<<<<
 * 
 *     if var.translate:
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_var->literal);
    __pyx_r = __pyx_v_var->literal;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1479
 *     lookups = var.lookups
 * 
 *     if lookups is None:             # <<<<<<<<<<<<<<
 *         if var.translate:
 *             return _RESOLVE_FALLBACK
*/
  }

  /* "django_templates_cythonized/base.py":1484
 *         return var.literal
 * 
 *     if var.translate:             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 *     lookups_t: tuple = lookups
*/
  if (__pyx_v_var->translate) {

    /* "django_templates_cythonized/base.py":1485
 * 
 *     if var.translate:
 *         return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 *     lookups_t: tuple = lookups
 *     n_lookups: cython.Py_ssize_t = len(lookups_t)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1485, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1484
 *         return var.literal
 * 
 *     if var.translate:             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 *     lookups_t: tuple = lookups
*/
  }

  /* "django_templates_cythonized/base.py":1486
 *     if var.translate:
 *         return _RESOLVE_FALLBACK
 *     lookups_t: tuple = lookups             # <<<<<<<<<<<<<<
 *     n_lookups: cython.Py_ssize_t = len(lookups_t)
 *     if n_lookups > 3:
*/
  __pyx_t_2 = __pyx_v_lookups;
  __Pyx_INCREF(__pyx_t_2);
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(0, 1486, __pyx_L1_error)
  __pyx_v_lookups_t = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1487
 *         return _RESOLVE_FALLBACK
 *     lookups_t: tuple = lookups
 *     n_lookups: cython.Py_ssize_t = len(lookups_t)             # <<<<<<<<<<<<<<
 *     if n_lookups > 3:
 *         return _RESOLVE_FALLBACK
*/
  if (unlikely(__pyx_v_lookups_t == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 1487, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_lookups_t); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1487, __pyx_L1_error)
  __pyx_v_n_lookups = __pyx_t_3;

  /* "django_templates_cythonized/base.py":1488
 *     lookups_t: tuple = lookups
 *     n_lookups: cython.Py_ssize_t = len(lookups_t)
 *     if n_lookups > 3:             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 * 
*/
  __pyx_t_1 = (__pyx_v_n_lookups > 3);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1489
 *     n_lookups: cython.Py_ssize_t = len(lookups_t)
 *     if n_lookups > 3:
 *         return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 * 
 *     key = lookups_t[0]
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1489, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1488
 *     lookups_t: tuple = lookups
 *     n_lookups: cython.Py_ssize_t = len(lookups_t)
 *     if n_lookups > 3:             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 * 
*/
  }

  /* "django_templates_cythonized/base.py":1491
 *         return _RESOLVE_FALLBACK
 * 
 *     key = lookups_t[0]             # <<<<<<<<<<<<<<
 *     dicts: list = context.dicts
 *     n_dicts: cython.Py_ssize_t = len(dicts)
*/
  if (unlikely(__pyx_v_lookups_t == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 1491, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_ITEM(__pyx_v_lookups_t, 0);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_key = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1492
 * 
 *     key = lookups_t[0]
 *     dicts: list = context.dicts             # <<<<<<<<<<<<<<
 *     n_dicts: cython.Py_ssize_t = len(dicts)
 *     i: cython.Py_ssize_t
*/
  __pyx_t_2 = __pyx_v_context->__pyx_base.dicts;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_dicts = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1493
 *     key = lookups_t[0]
 *     dicts: list = context.dicts
 *     n_dicts: cython.Py_ssize_t = len(dicts)             # <<<<<<<<<<<<<<
 *     i: cython.Py_ssize_t
 *     value = _RESOLVE_FALLBACK
*/
  if (unlikely(__pyx_v_dicts == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 1493, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_v_dicts); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1493, __pyx_L1_error)
  __pyx_v_n_dicts = __pyx_t_3;

  /* "django_templates_cythonized/base.py":1495
 *     n_dicts: cython.Py_ssize_t = len(dicts)
 *     i: cython.Py_ssize_t
 *     value = _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 *     for i in range(n_dicts - 1, -1, -1):
 *         d = dicts[i]
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_value = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1496
 *     i: cython.Py_ssize_t
 *     value = _RESOLVE_FALLBACK
 *     for i in range(n_dicts - 1, -1, -1):             # <<<<<<<<<<<<<<
 *         d = dicts[i]
 *         if type(d) is dict:
*/
  for (__pyx_t_3 = (__pyx_v_n_dicts - 1); __pyx_t_3 > -1L; __pyx_t_3-=1) {
    __pyx_v_i = __pyx_t_3;

    /* "django_templates_cythonized/base.py":1497
 *     value = _RESOLVE_FALLBACK
 *     for i in range(n_dicts - 1, -1, -1):
 *         d = dicts[i]             # <<<<<<<<<<<<<<
 *         if type(d) is dict:
 *             dd: dict = d
*/
    if (unlikely(__pyx_v_dicts == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 1497, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyList_GET_ITEM(__pyx_v_dicts, __pyx_v_i);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1498
 *     for i in range(n_dicts - 1, -1, -1):
 *         d = dicts[i]
 *         if type(d) is dict:             # <<<<<<<<<<<<<<
 *             dd: dict = d
 *             if key in dd:
*/
    __pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_d)) == ((PyObject *)(&PyDict_Type)));
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":1499
 *         d = dicts[i]
 *         if type(d) is dict:
 *             dd: dict = d             # <<<<<<<<<<<<<<
 *             if key in dd:
 *                 value = dd[key]
*/
      __pyx_t_2 = __pyx_v_d;
      __Pyx_INCREF(__pyx_t_2);
      if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_2))) __PYX_ERR(0, 1499, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_dd, ((PyObject*)__pyx_t_2));
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1500
 *         if type(d) is dict:
 *             dd: dict = d
 *             if key in dd:             # <<<<<<<<<<<<<<
 *                 value = dd[key]
 *                 break
*/
      if (unlikely(__pyx_v_dd == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
        __PYX_ERR(0, 1500, __pyx_L1_error)
      }
      __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_key, __pyx_v_dd, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1500, __pyx_L1_error)
      if (__pyx_t_1) {

        /* "django_templates_cythonized/base.py":1501
 *             dd: dict = d
 *             if key in dd:
 *                 value = dd[key]             # <<<<<<<<<<<<<<
 *                 break
 *         elif key in d:
*/
        if (unlikely(__pyx_v_dd == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(0, 1501, __pyx_L1_error)
        }
        __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_dd, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1501, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":1502
 *             if key in dd:
 *                 value = dd[key]
 *                 break             # <<<<<<<<<<<<<<
 *         elif key in d:
 *             value = d[key]
*/
        goto __pyx_L11_break;

        /* "django_templates_cythonized/base.py":1500
 *         if type(d) is dict:
 *             dd: dict = d
 *             if key in dd:             # <<<<<<<<<<<<<<
 *                 value = dd[key]
 *                 break
*/
      }

      /* "django_templates_cythonized/base.py":1498
 *     for i in range(n_dicts - 1, -1, -1):
 *         d = dicts[i]
 *         if type(d) is dict:             # <<<<<<<<<<<<<<
 *             dd: dict = d
 *             if key in dd:
*/
      goto __pyx_L12;
    }

    /* "django_templates_cythonized/base.py":1503
 *                 value = dd[key]
 *                 break
 *         elif key in d:             # <<<<<<<<<<<<<<
 *             value = d[key]
 *             break
*/
    __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_d, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1503, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":1504
 *                 break
 *         elif key in d:
 *             value = d[key]             # <<<<<<<<<<<<<<
 *             break
 * 
*/
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1504, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1505
 *         elif key in d:
 *             value = d[key]
 *             break             # <<<<<<<<<<<<<<
 * 
 *     if value is _RESOLVE_FALLBACK:
*/
      goto __pyx_L11_break;

      /* "django_templates_cythonized/base.py":1503
 *                 value = dd[key]
 *                 break
 *         elif key in d:             # <<<<<<<<<<<<<<
 *             value = d[key]
 *             break
*/
    }
    __pyx_L12:;
  }
  __pyx_L11_break:;

  /* "django_templates_cythonized/base.py":1507
 *             break
 * 
 *     if value is _RESOLVE_FALLBACK:             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 *     if callable(value):
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = (__pyx_v_value == __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1508
 * 
 *     if value is _RESOLVE_FALLBACK:
 *         return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 *     if callable(value):
 *         return _RESOLVE_FALLBACK
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1507
 *             break
 * 
 *     if value is _RESOLVE_FALLBACK:             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 *     if callable(value):
*/
  }

  /* "django_templates_cythonized/base.py":1509
 *     if value is _RESOLVE_FALLBACK:
 *         return _RESOLVE_FALLBACK
 *     if callable(value):             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 * 
*/
  __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_value); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1509, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1510
 *         return _RESOLVE_FALLBACK
 *     if callable(value):
 *         return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 * 
 *     if n_lookups >= 2:
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1509
 *     if value is _RESOLVE_FALLBACK:
 *         return _RESOLVE_FALLBACK
 *     if callable(value):             # <<<<<<<<<<<<<<
 *         return _RESOLVE_FALLBACK
 * 
*/
  }

  /* "django_templates_cythonized/base.py":1512
 *         return _RESOLVE_FALLBACK
 * 
 *     if n_lookups >= 2:             # <<<<<<<<<<<<<<
 *         seg: cython.Py_ssize_t
 *         for seg in range(1, n_lookups):
*/
  __pyx_t_1 = (__pyx_v_n_lookups >= 2);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1514
 *     if n_lookups >= 2:
 *         seg: cython.Py_ssize_t
 *         for seg in range(1, n_lookups):             # <<<<<<<<<<<<<<
 *             attr = lookups_t[seg]
 *             try:
*/
    __pyx_t_3 = __pyx_v_n_lookups;
    __pyx_t_4 = __pyx_t_3;
    for (__pyx_t_5 = 1; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
      __pyx_v_seg = __pyx_t_5;

      /* "django_templates_cythonized/base.py":1515
 *         seg: cython.Py_ssize_t
 *         for seg in range(1, n_lookups):
 *             attr = lookups_t[seg]             # <<<<<<<<<<<<<<
 *             try:
 *                 value = value[attr]
*/
      if (unlikely(__pyx_v_lookups_t == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 1515, __pyx_L1_error)
      }
      __pyx_t_2 = __Pyx_PyTuple_GET_ITEM(__pyx_v_lookups_t, __pyx_v_seg);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1516
 *         for seg in range(1, n_lookups):
 *             attr = lookups_t[seg]
 *             try:             # <<<<<<<<<<<<<<
 *                 value = value[attr]
 *             except (TypeError, KeyError, IndexError):
*/
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "django_templates_cythonized/base.py":1517
 *             attr = lookups_t[seg]
 *             try:
 *                 value = value[attr]             # <<<<<<<<<<<<<<
 *             except (TypeError, KeyError, IndexError):
 *                 try:
*/
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_value, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1517, __pyx_L19_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
          __pyx_t_2 = 0;

          /* "django_templates_cythonized/base.py":1516
 *         for seg in range(1, n_lookups):
 *             attr = lookups_t[seg]
 *             try:             # <<<<<<<<<<<<<<
 *                 value = value[attr]
 *             except (TypeError, KeyError, IndexError):
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L26_try_end;
        __pyx_L19_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":1518
 *             try:
 *                 value = value[attr]
 *             except (TypeError, KeyError, IndexError):             # <<<<<<<<<<<<<<
 *                 try:
 *                     value = getattr(value, attr)
*/
        __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError))));
        if (__pyx_t_9) {
          __Pyx_AddTraceback("django_templates_cythonized.base._resolve_fe_raw", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_10, &__pyx_t_11) < 0) __PYX_ERR(0, 1518, __pyx_L21_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_11);

          /* "django_templates_cythonized/base.py":1519
 *                 value = value[attr]
 *             except (TypeError, KeyError, IndexError):
 *                 try:             # <<<<<<<<<<<<<<
 *                     value = getattr(value, attr)
 *                 except (TypeError, AttributeError):
*/
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
            __Pyx_XGOTREF(__pyx_t_12);
            __Pyx_XGOTREF(__pyx_t_13);
            __Pyx_XGOTREF(__pyx_t_14);
            /*try:*/ {

              /* "django_templates_cythonized/base.py":1520
 *             except (TypeError, KeyError, IndexError):
 *                 try:
 *                     value = getattr(value, attr)             # <<<<<<<<<<<<<<
 *                 except (TypeError, AttributeError):
 *                     return _RESOLVE_FALLBACK
*/
              __pyx_t_15 = __Pyx_GetAttr(__pyx_v_value, __pyx_v_attr); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1520, __pyx_L29_error)
              __Pyx_GOTREF(__pyx_t_15);
              __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_15);
              __pyx_t_15 = 0;

              /* "django_templates_cythonized/base.py":1519
 *                 value = value[attr]
 *             except (TypeError, KeyError, IndexError):
 *                 try:             # <<<<<<<<<<<<<<
 *                     value = getattr(value, attr)
 *                 except (TypeError, AttributeError):
*/
            }
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            goto __pyx_L36_try_end;
            __pyx_L29_error:;
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;

            /* "django_templates_cythonized/base.py":1521
 *                 try:
 *                     value = getattr(value, attr)
 *                 except (TypeError, AttributeError):             # <<<<<<<<<<<<<<
 *                     return _RESOLVE_FALLBACK
 *                 except Exception:
*/
            __pyx_t_9 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_AttributeError))));
            if (__pyx_t_9) {
              __Pyx_AddTraceback("django_templates_cythonized.base._resolve_fe_raw", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0) __PYX_ERR(0, 1521, __pyx_L31_except_error)
              __Pyx_XGOTREF(__pyx_t_15);
              __Pyx_XGOTREF(__pyx_t_16);
              __Pyx_XGOTREF(__pyx_t_17);

              /* "django_templates_cythonized/base.py":1522
 *                     value = getattr(value, attr)
 *                 except (TypeError, AttributeError):
 *                     return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 *                 except Exception:
 *                     return _RESOLVE_FALLBACK
*/
              __Pyx_XDECREF(__pyx_r);
              __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1522, __pyx_L31_except_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_r = __pyx_t_18;
              __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              goto __pyx_L32_except_return;
            }

            /* "django_templates_cythonized/base.py":1523
 *                 except (TypeError, AttributeError):
 *                     return _RESOLVE_FALLBACK
 *                 except Exception:             # <<<<<<<<<<<<<<
 *                     return _RESOLVE_FALLBACK
 *             except Exception:
*/
            __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
            if (__pyx_t_9) {
              __Pyx_AddTraceback("django_templates_cythonized.base._resolve_fe_raw", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15) < 0) __PYX_ERR(0, 1523, __pyx_L31_except_error)
              __Pyx_XGOTREF(__pyx_t_17);
              __Pyx_XGOTREF(__pyx_t_16);
              __Pyx_XGOTREF(__pyx_t_15);

              /* "django_templates_cythonized/base.py":1524
 *                     return _RESOLVE_FALLBACK
 *                 except Exception:
 *                     return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 *             except Exception:
 *                 return _RESOLVE_FALLBACK
*/
              __Pyx_XDECREF(__pyx_r);
              __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1524, __pyx_L31_except_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_r = __pyx_t_18;
              __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              goto __pyx_L32_except_return;
            }
            goto __pyx_L31_except_error;

            /* "django_templates_cythonized/base.py":1519
 *                 value = value[attr]
 *             except (TypeError, KeyError, IndexError):
 *                 try:             # <<<<<<<<<<<<<<
 *                     value = getattr(value, attr)
 *                 except (TypeError, AttributeError):
*/
            __pyx_L31_except_error:;
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
            goto __pyx_L21_except_error;
            __pyx_L32_except_return:;
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
            goto __pyx_L22_except_return;
            __pyx_L36_try_end:;
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          goto __pyx_L20_exception_handled;
        }

        /* "django_templates_cythonized/base.py":1525
 *                 except Exception:
 *                     return _RESOLVE_FALLBACK
 *             except Exception:             # <<<<<<<<<<<<<<
 *                 return _RESOLVE_FALLBACK
 *             if callable(value):
*/
        __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
        if (__pyx_t_9) {
          __Pyx_AddTraceback("django_templates_cythonized.base._resolve_fe_raw", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_10, &__pyx_t_2) < 0) __PYX_ERR(0, 1525, __pyx_L21_except_error)
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_2);

          /* "django_templates_cythonized/base.py":1526
 *                     return _RESOLVE_FALLBACK
 *             except Exception:
 *                 return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 *             if callable(value):
 *                 return _RESOLVE_FALLBACK
*/
          __Pyx_XDECREF(__pyx_r);
          __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1526, __pyx_L21_except_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_r = __pyx_t_15;
          __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          goto __pyx_L22_except_return;
        }
        goto __pyx_L21_except_error;

        /* "django_templates_cythonized/base.py":1516
 *         for seg in range(1, n_lookups):
 *             attr = lookups_t[seg]
 *             try:             # <<<<<<<<<<<<<<
 *                 value = value[attr]
 *             except (TypeError, KeyError, IndexError):
*/
        __pyx_L21_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L22_except_return:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L0;
        __pyx_L20_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L26_try_end:;
      }

      /* "django_templates_cythonized/base.py":1527
 *             except Exception:
 *                 return _RESOLVE_FALLBACK
 *             if callable(value):             # <<<<<<<<<<<<<<
 *                 return _RESOLVE_FALLBACK
 * 
*/
      __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_value); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1527, __pyx_L1_error)
      if (__pyx_t_1) {

        /* "django_templates_cythonized/base.py":1528
 *                 return _RESOLVE_FALLBACK
 *             if callable(value):
 *                 return _RESOLVE_FALLBACK             # <<<<<<<<<<<<<<
 * 
 *     return value
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1528, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1527
 *             except Exception:
 *                 return _RESOLVE_FALLBACK
 *             if callable(value):             # <<<<<<<<<<<<<<
 *                 return _RESOLVE_FALLBACK
 * 
*/
      }
    }

    /* "django_templates_cythonized/base.py":1512
 *         return _RESOLVE_FALLBACK
 * 
 *     if n_lookups >= 2:             # <<<<<<<<<<<<<<
 *         seg: cython.Py_ssize_t
 *         for seg in range(1, n_lookups):
*/
  }

  /* "django_templates_cythonized/base.py":1530
 *                 return _RESOLVE_FALLBACK
 * 
 *     return value             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_value);
  __pyx_r = __pyx_v_value;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1461
 * 
 * 
 * @cython.wraparound(False)             # <<<<<<<<<<<<<<
 * def _resolve_fe_raw(fe: FilterExpression, context: Context):
 *     """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_AddTraceback("django_templates_cythonized.base._resolve_fe_raw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_lookups);
  __Pyx_XDECREF(__pyx_v_lookups_t);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_dicts);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_dd);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1533
 * 
 * 
 * def _fast_escape(value):             # <<<<<<<<<<<<<<
 *     """
 *     Fast HTML escape: scan string for special chars at C level.
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base__fast_escape(PyObject *__pyx_v_value) {
  Py_UCS4 __pyx_v_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  Py_UCS4 __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  size_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_fast_escape", 0);

  /* "django_templates_cythonized/base.py":1541
 *     """
 *     c: cython.Py_UCS4
 *     for c in value:             # <<<<<<<<<<<<<<
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:
 *             # <, >, &, ", '  needs escaping, delegate to html.escape
*/
  if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) {
    __pyx_t_1 = __pyx_v_value; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1541, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1541, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1541, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1541, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1541, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1541, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_AsPy_UCS4(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_UCS4)-1) && PyErr_Occurred())) __PYX_ERR(0, 1541, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_c = __pyx_t_5;

    /* "django_templates_cythonized/base.py":1542
 *     c: cython.Py_UCS4
 *     for c in value:
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:             # <<<<<<<<<<<<<<
 *             # <, >, &, ", '  needs escaping, delegate to html.escape
 *             return SafeString(_stdlib_html.escape(value))
*/
    switch (__pyx_v_c) {
      case 60:
      case 62:
      case 38:
      case 34:
      case 39:

      /* "django_templates_cythonized/base.py":1544
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:
 *             # <, >, &, ", '  needs escaping, delegate to html.escape
 *             return SafeString(_stdlib_html.escape(value))             # <<<<<<<<<<<<<<
 *     return SafeString(value)
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_SafeString); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1544, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_stdlib_html); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1544, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_escape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1544, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_12 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_11);
        assert(__pyx_t_9);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
        __pyx_t_12 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_value};
        __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1544, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
      }
      __pyx_t_12 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        assert(__pyx_t_6);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
        __pyx_t_12 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_8};
        __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1544, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1542
 *     c: cython.Py_UCS4
 *     for c in value:
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:             # <<<<<<<<<<<<<<
 *             # <, >, &, ", '  needs escaping, delegate to html.escape
 *             return SafeString(_stdlib_html.escape(value))
*/
      break;
      default: break;
    }

    /* "django_templates_cythonized/base.py":1541
 *     """
 *     c: cython.Py_UCS4
 *     for c in value:             # <<<<<<<<<<<<<<
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:
 *             # <, >, &, ", '  needs escaping, delegate to html.escape
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1545
 *             # <, >, &, ", '  needs escaping, delegate to html.escape
 *             return SafeString(_stdlib_html.escape(value))
 *     return SafeString(value)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_SafeString); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_12 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
    __pyx_t_12 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_value};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1533
 * 
 * 
 * def _fast_escape(value):             # <<<<<<<<<<<<<<
 *     """
 *     Fast HTML escape: scan string for special chars at C level.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("django_templates_cythonized.base._fast_escape", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1548
 * 
 * 
 * def _fast_escape_raw(value):             # <<<<<<<<<<<<<<
 *     """
 *     Fast HTML escape returning plain str (no SafeString wrapping).
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base__fast_escape_raw(PyObject *__pyx_v_value) {
  Py_UCS4 __pyx_v_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  Py_UCS4 __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_fast_escape_raw", 0);

  /* "django_templates_cythonized/base.py":1555
 *     """
 *     c: cython.Py_UCS4
 *     for c in value:             # <<<<<<<<<<<<<<
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:
 *             return _stdlib_html.escape(value)
*/
  if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) {
    __pyx_t_1 = __pyx_v_value; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1555, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1555, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1555, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1555, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1555, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1555, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_AsPy_UCS4(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_UCS4)-1) && PyErr_Occurred())) __PYX_ERR(0, 1555, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_c = __pyx_t_5;

    /* "django_templates_cythonized/base.py":1556
 *     c: cython.Py_UCS4
 *     for c in value:
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:             # <<<<<<<<<<<<<<
 *             return _stdlib_html.escape(value)
 *     return value
*/
    switch (__pyx_v_c) {
      case 60:
      case 62:
      case 38:
      case 34:
      case 39:

      /* "django_templates_cythonized/base.py":1557
 *     for c in value:
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:
 *             return _stdlib_html.escape(value)             # <<<<<<<<<<<<<<
 *     return value
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_stdlib_html); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1557, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_escape); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1557, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_9 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        assert(__pyx_t_6);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
        __pyx_t_9 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_value};
        __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1557, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1556
 *     c: cython.Py_UCS4
 *     for c in value:
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:             # <<<<<<<<<<<<<<
 *             return _stdlib_html.escape(value)
 *     return value
*/
      break;
      default: break;
    }

    /* "django_templates_cythonized/base.py":1555
 *     """
 *     c: cython.Py_UCS4
 *     for c in value:             # <<<<<<<<<<<<<<
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:
 *             return _stdlib_html.escape(value)
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1558
 *         if c == 60 or c == 62 or c == 38 or c == 34 or c == 39:
 *             return _stdlib_html.escape(value)
 *     return value             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_value);
  __pyx_r = __pyx_v_value;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1548
 * 
 * 
 * def _fast_escape_raw(value):             # <<<<<<<<<<<<<<
 *     """
 *     Fast HTML escape returning plain str (no SafeString wrapping).
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("django_templates_cythonized.base._fast_escape_raw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1561
 * 
 * 
 * @cython.wraparound(False)             # <<<<<<<<<<<<<<
 * def _render_var_fast(fe: FilterExpression, context: Context):
 *     """
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base__render_var_fast(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_fe, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_v_filters = 0;
  Py_ssize_t __pyx_v_n_filters;
  struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_var = 0;
  PyObject *__pyx_v_lookups = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_lookups_t = 0;
  Py_ssize_t __pyx_v_n_lookups;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_dicts = 0;
  Py_ssize_t __pyx_v_n_dicts;
  Py_ssize_t __pyx_v_i;
  int __pyx_v_found;
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_dd = 0;
  Py_ssize_t __pyx_v_seg;
  PyObject *__pyx_v_attr = NULL;
  struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_fi = 0;
  int __pyx_v_fast_code;
  int __pyx_v_is_safe;
  int __pyx_v_was_safe;
  PyObject *__pyx_v_f_args = 0;
  PyObject *__pyx_v_func = NULL;
  PyObject *__pyx_v_lang = NULL;
  PyObject *__pyx_v_get_language = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  size_t __pyx_t_17;
  int __pyx_t_18;
  struct __pyx_opt_args_27django_templates_cythonized_7formats_localize __pyx_t_19;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_render_var_fast", 0);

  /* "django_templates_cythonized/base.py":1569
 *     Returns the rendered string, or None to signal fallback to the normal path.
 *     """
 *     if not fe.is_var:             # <<<<<<<<<<<<<<
 *         return None
 * 
*/
  __pyx_t_1 = (!__pyx_v_fe->is_var);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1570
 *     """
 *     if not fe.is_var:
 *         return None             # <<<<<<<<<<<<<<
 * 
 *     filters: list = fe.filters
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1569
 *     Returns the rendered string, or None to signal fallback to the normal path.
 *     """
 *     if not fe.is_var:             # <<<<<<<<<<<<<<
 *         return None
 * 
*/
  }

  /* "django_templates_cythonized/base.py":1572
 *         return None
 * 
 *     filters: list = fe.filters             # <<<<<<<<<<<<<<
 *     n_filters: cython.Py_ssize_t = len(filters)
 *     if n_filters > 1:
*/
  __pyx_t_2 = __pyx_v_fe->filters;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_filters = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1573
 * 
 *     filters: list = fe.filters
 *     n_filters: cython.Py_ssize_t = len(filters)             # <<<<<<<<<<<<<<
 *     if n_filters > 1:
 *         return None
*/
  if (unlikely(__pyx_v_filters == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 1573, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_v_filters); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1573, __pyx_L1_error)
  __pyx_v_n_filters = __pyx_t_3;

  /* "django_templates_cythonized/base.py":1574
 *     filters: list = fe.filters
 *     n_filters: cython.Py_ssize_t = len(filters)
 *     if n_filters > 1:             # <<<<<<<<<<<<<<
 *         return None
 * 
*/
  __pyx_t_1 = (__pyx_v_n_filters > 1);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1575
 *     n_filters: cython.Py_ssize_t = len(filters)
 *     if n_filters > 1:
 *         return None             # <<<<<<<<<<<<<<
 * 
 *     var: Variable = fe.var
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1574
 *     filters: list = fe.filters
 *     n_filters: cython.Py_ssize_t = len(filters)
 *     if n_filters > 1:             # <<<<<<<<<<<<<<
 *         return None
 * 
*/
  }

  /* "django_templates_cythonized/base.py":1577
 *         return None
 * 
 *     var: Variable = fe.var             # <<<<<<<<<<<<<<
 *     lookups = var.lookups
 * 
*/
  __pyx_t_2 = __pyx_v_fe->var;
  __Pyx_INCREF(__pyx_t_2);
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable))))) __PYX_ERR(0, 1577, __pyx_L1_error)
  __pyx_v_var = ((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1578
 * 
 *     var: Variable = fe.var
 *     lookups = var.lookups             # <<<<<<<<<<<<<<
 * 
 *     if lookups is None:
*/
  __pyx_t_2 = __pyx_v_var->lookups;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_lookups = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1580
 *     lookups = var.lookups
 * 
 *     if lookups is None:             # <<<<<<<<<<<<<<
 *         if var.translate:
 *             return None
*/
  __pyx_t_1 = (__pyx_v_lookups == Py_None);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1581
 * 
 *     if lookups is None:
 *         if var.translate:             # <<<<<<<<<<<<<<
 *             return None
 *         value = var.literal
*/
    if (__pyx_v_var->translate) {

      /* "django_templates_cythonized/base.py":1582
 *     if lookups is None:
 *         if var.translate:
 *             return None             # <<<<<<<<<<<<<<
 *         value = var.literal
 *     else:
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1581
 * 
 *     if lookups is None:
 *         if var.translate:             # <<<<<<<<<<<<<<
 *             return None
 *         value = var.literal
*/
    }

    /* "django_templates_cythonized/base.py":1583
 *         if var.translate:
 *             return None
 *         value = var.literal             # <<<<<<<<<<<<<<
 *     else:
 *         if var.translate:
*/
    __pyx_t_2 = __pyx_v_var->literal;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_value = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1580
 *     lookups = var.lookups
 * 
 *     if lookups is None:             # <<<<<<<<<<<<<<
 *         if var.translate:
 *             return None
*/
    goto __pyx_L5;
  }

  /* "django_templates_cythonized/base.py":1585
 *         value = var.literal
 *     else:
 *         if var.translate:             # <<<<<<<<<<<<<<
 *             return None
 *         lookups_t: tuple = lookups
*/
  /*else*/ {
    if (__pyx_v_var->translate) {

      /* "django_templates_cythonized/base.py":1586
 *     else:
 *         if var.translate:
 *             return None             # <<<<<<<<<<<<<<
 *         lookups_t: tuple = lookups
 *         n_lookups: cython.Py_ssize_t = len(lookups_t)
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1585
 *         value = var.literal
 *     else:
 *         if var.translate:             # <<<<<<<<<<<<<<
 *             return None
 *         lookups_t: tuple = lookups
*/
    }

    /* "django_templates_cythonized/base.py":1587
 *         if var.translate:
 *             return None
 *         lookups_t: tuple = lookups             # <<<<<<<<<<<<<<
 *         n_lookups: cython.Py_ssize_t = len(lookups_t)
 *         if n_lookups > 3:
*/
    __pyx_t_2 = __pyx_v_lookups;
    __Pyx_INCREF(__pyx_t_2);
    if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(0, 1587, __pyx_L1_error)
    __pyx_v_lookups_t = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1588
 *             return None
 *         lookups_t: tuple = lookups
 *         n_lookups: cython.Py_ssize_t = len(lookups_t)             # <<<<<<<<<<<<<<
 *         if n_lookups > 3:
 *             return None
*/
    if (unlikely(__pyx_v_lookups_t == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 1588, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_lookups_t); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1588, __pyx_L1_error)
    __pyx_v_n_lookups = __pyx_t_3;

    /* "django_templates_cythonized/base.py":1589
 *         lookups_t: tuple = lookups
 *         n_lookups: cython.Py_ssize_t = len(lookups_t)
 *         if n_lookups > 3:             # <<<<<<<<<<<<<<
 *             return None
 * 
*/
    __pyx_t_1 = (__pyx_v_n_lookups > 3);
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":1590
 *         n_lookups: cython.Py_ssize_t = len(lookups_t)
 *         if n_lookups > 3:
 *             return None             # <<<<<<<<<<<<<<
 * 
 *         key = lookups_t[0]
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1589
 *         lookups_t: tuple = lookups
 *         n_lookups: cython.Py_ssize_t = len(lookups_t)
 *         if n_lookups > 3:             # <<<<<<<<<<<<<<
 *             return None
 * 
*/
    }

    /* "django_templates_cythonized/base.py":1592
 *             return None
 * 
 *         key = lookups_t[0]             # <<<<<<<<<<<<<<
 *         # Inline context dict scan
 *         dicts: list = context.dicts
*/
    if (unlikely(__pyx_v_lookups_t == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 1592, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyTuple_GET_ITEM(__pyx_v_lookups_t, 0);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_key = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1594
 *         key = lookups_t[0]
 *         # Inline context dict scan
 *         dicts: list = context.dicts             # <<<<<<<<<<<<<<
 *         n_dicts: cython.Py_ssize_t = len(dicts)
 *         i: cython.Py_ssize_t
*/
    __pyx_t_2 = __pyx_v_context->__pyx_base.dicts;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_dicts = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1595
 *         # Inline context dict scan
 *         dicts: list = context.dicts
 *         n_dicts: cython.Py_ssize_t = len(dicts)             # <<<<<<<<<<<<<<
 *         i: cython.Py_ssize_t
 *         value = None
*/
    if (unlikely(__pyx_v_dicts == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 1595, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_v_dicts); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1595, __pyx_L1_error)
    __pyx_v_n_dicts = __pyx_t_3;

    /* "django_templates_cythonized/base.py":1597
 *         n_dicts: cython.Py_ssize_t = len(dicts)
 *         i: cython.Py_ssize_t
 *         value = None             # <<<<<<<<<<<<<<
 *         found: cython.bint = False
 *         for i in range(n_dicts - 1, -1, -1):
*/
    __Pyx_INCREF(Py_None);
    __pyx_v_value = Py_None;

    /* "django_templates_cythonized/base.py":1598
 *         i: cython.Py_ssize_t
 *         value = None
 *         found: cython.bint = False             # <<<<<<<<<<<<<<
 *         for i in range(n_dicts - 1, -1, -1):
 *             d = dicts[i]
*/
    __pyx_v_found = 0;

    /* "django_templates_cythonized/base.py":1599
 *         value = None
 *         found: cython.bint = False
 *         for i in range(n_dicts - 1, -1, -1):             # <<<<<<<<<<<<<<
 *             d = dicts[i]
 *             if type(d) is dict:
*/
    for (__pyx_t_3 = (__pyx_v_n_dicts - 1); __pyx_t_3 > -1L; __pyx_t_3-=1) {
      __pyx_v_i = __pyx_t_3;

      /* "django_templates_cythonized/base.py":1600
 *         found: cython.bint = False
 *         for i in range(n_dicts - 1, -1, -1):
 *             d = dicts[i]             # <<<<<<<<<<<<<<
 *             if type(d) is dict:
 *                 dd: dict = d
*/
      if (unlikely(__pyx_v_dicts == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 1600, __pyx_L1_error)
      }
      __pyx_t_2 = __Pyx_PyList_GET_ITEM(__pyx_v_dicts, __pyx_v_i);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1601
 *         for i in range(n_dicts - 1, -1, -1):
 *             d = dicts[i]
 *             if type(d) is dict:             # <<<<<<<<<<<<<<
 *                 dd: dict = d
 *                 if key in dd:
*/
      __pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_d)) == ((PyObject *)(&PyDict_Type)));
      if (__pyx_t_1) {

        /* "django_templates_cythonized/base.py":1602
 *             d = dicts[i]
 *             if type(d) is dict:
 *                 dd: dict = d             # <<<<<<<<<<<<<<
 *                 if key in dd:
 *                     value = dd[key]
*/
        __pyx_t_2 = __pyx_v_d;
        __Pyx_INCREF(__pyx_t_2);
        if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_2))) __PYX_ERR(0, 1602, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_dd, ((PyObject*)__pyx_t_2));
        __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":1603
 *             if type(d) is dict:
 *                 dd: dict = d
 *                 if key in dd:             # <<<<<<<<<<<<<<
 *                     value = dd[key]
 *                     found = True
*/
        if (unlikely(__pyx_v_dd == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 1603, __pyx_L1_error)
        }
        __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_key, __pyx_v_dd, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1603, __pyx_L1_error)
        if (__pyx_t_1) {

          /* "django_templates_cythonized/base.py":1604
 *                 dd: dict = d
 *                 if key in dd:
 *                     value = dd[key]             # <<<<<<<<<<<<<<
 *                     found = True
 *                     break
*/
          if (unlikely(__pyx_v_dd == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 1604, __pyx_L1_error)
          }
          __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_dd, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1604, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
          __pyx_t_2 = 0;

          /* "django_templates_cythonized/base.py":1605
 *                 if key in dd:
 *                     value = dd[key]
 *                     found = True             # <<<<<<<<<<<<<<
 *                     break
 *             elif key in d:
*/
          __pyx_v_found = 1;

          /* "django_templates_cythonized/base.py":1606
 *                     value = dd[key]
 *                     found = True
 *                     break             # <<<<<<<<<<<<<<
 *             elif key in d:
 *                 value = d[key]
*/
          goto __pyx_L10_break;

          /* "django_templates_cythonized/base.py":1603
 *             if type(d) is dict:
 *                 dd: dict = d
 *                 if key in dd:             # <<<<<<<<<<<<<<
 *                     value = dd[key]
 *                     found = True
*/
        }

        /* "django_templates_cythonized/base.py":1601
 *         for i in range(n_dicts - 1, -1, -1):
 *             d = dicts[i]
 *             if type(d) is dict:             # <<<<<<<<<<<<<<
 *                 dd: dict = d
 *                 if key in dd:
*/
        goto __pyx_L11;
      }

      /* "django_templates_cythonized/base.py":1607
 *                     found = True
 *                     break
 *             elif key in d:             # <<<<<<<<<<<<<<
 *                 value = d[key]
 *                 found = True
*/
      __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_d, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1607, __pyx_L1_error)
      if (__pyx_t_1) {

        /* "django_templates_cythonized/base.py":1608
 *                     break
 *             elif key in d:
 *                 value = d[key]             # <<<<<<<<<<<<<<
 *                 found = True
 *                 break
*/
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1608, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":1609
 *             elif key in d:
 *                 value = d[key]
 *                 found = True             # <<<<<<<<<<<<<<
 *                 break
 *         if not found:
*/
        __pyx_v_found = 1;

        /* "django_templates_cythonized/base.py":1610
 *                 value = d[key]
 *                 found = True
 *                 break             # <<<<<<<<<<<<<<
 *         if not found:
 *             return None
*/
        goto __pyx_L10_break;

        /* "django_templates_cythonized/base.py":1607
 *                     found = True
 *                     break
 *             elif key in d:             # <<<<<<<<<<<<<<
 *                 value = d[key]
 *                 found = True
*/
      }
      __pyx_L11:;
    }
    __pyx_L10_break:;

    /* "django_templates_cythonized/base.py":1611
 *                 found = True
 *                 break
 *         if not found:             # <<<<<<<<<<<<<<
 *             return None
 * 
*/
    __pyx_t_1 = (!__pyx_v_found);
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":1612
 *                 break
 *         if not found:
 *             return None             # <<<<<<<<<<<<<<
 * 
 *         if callable(value):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1611
 *                 found = True
 *                 break
 *         if not found:             # <<<<<<<<<<<<<<
 *             return None
 * 
*/
    }

    /* "django_templates_cythonized/base.py":1614
 *             return None
 * 
 *         if callable(value):             # <<<<<<<<<<<<<<
 *             return None
 * 
*/
    __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_value); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1614, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":1615
 * 
 *         if callable(value):
 *             return None             # <<<<<<<<<<<<<<
 * 
 *         # Resolve additional segments (e.g. book.price, order_form.quantity.label)
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1614
 *             return None
 * 
 *         if callable(value):             # <<<<<<<<<<<<<<
 *             return None
 * 
*/
    }

    /* "django_templates_cythonized/base.py":1618
 * 
 *         # Resolve additional segments (e.g. book.price, order_form.quantity.label)
 *         if n_lookups >= 2:             # <<<<<<<<<<<<<<
 *             seg: cython.Py_ssize_t
 *             for seg in range(1, n_lookups):
*/
    __pyx_t_1 = (__pyx_v_n_lookups >= 2);
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":1620
 *         if n_lookups >= 2:
 *             seg: cython.Py_ssize_t
 *             for seg in range(1, n_lookups):             # <<<<<<<<<<<<<<
 *                 attr = lookups_t[seg]
 *                 try:
*/
      __pyx_t_3 = __pyx_v_n_lookups;
      __pyx_t_4 = __pyx_t_3;
      for (__pyx_t_5 = 1; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
        __pyx_v_seg = __pyx_t_5;

        /* "django_templates_cythonized/base.py":1621
 *             seg: cython.Py_ssize_t
 *             for seg in range(1, n_lookups):
 *                 attr = lookups_t[seg]             # <<<<<<<<<<<<<<
 *                 try:
 *                     value = value[attr]
*/
        if (unlikely(__pyx_v_lookups_t == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(0, 1621, __pyx_L1_error)
        }
        __pyx_t_2 = __Pyx_PyTuple_GET_ITEM(__pyx_v_lookups_t, __pyx_v_seg);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":1622
 *             for seg in range(1, n_lookups):
 *                 attr = lookups_t[seg]
 *                 try:             # <<<<<<<<<<<<<<
 *                     value = value[attr]
 *                 except (TypeError, KeyError, IndexError):
*/
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
          __Pyx_XGOTREF(__pyx_t_6);
          __Pyx_XGOTREF(__pyx_t_7);
          __Pyx_XGOTREF(__pyx_t_8);
          /*try:*/ {

            /* "django_templates_cythonized/base.py":1623
 *                 attr = lookups_t[seg]
 *                 try:
 *                     value = value[attr]             # <<<<<<<<<<<<<<
 *                 except (TypeError, KeyError, IndexError):
 *                     try:
*/
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_value, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1623, __pyx_L18_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
            __pyx_t_2 = 0;

            /* "django_templates_cythonized/base.py":1622
 *             for seg in range(1, n_lookups):
 *                 attr = lookups_t[seg]
 *                 try:             # <<<<<<<<<<<<<<
 *                     value = value[attr]
 *                 except (TypeError, KeyError, IndexError):
*/
          }
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          goto __pyx_L25_try_end;
          __pyx_L18_error:;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "django_templates_cythonized/base.py":1624
 *                 try:
 *                     value = value[attr]
 *                 except (TypeError, KeyError, IndexError):             # <<<<<<<<<<<<<<
 *                     try:
 *                         value = getattr(value, attr)
*/
          __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError))));
          if (__pyx_t_9) {
            __Pyx_AddTraceback("django_templates_cythonized.base._render_var_fast", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_10, &__pyx_t_11) < 0) __PYX_ERR(0, 1624, __pyx_L20_except_error)
            __Pyx_XGOTREF(__pyx_t_2);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);

            /* "django_templates_cythonized/base.py":1625
 *                     value = value[attr]
 *                 except (TypeError, KeyError, IndexError):
 *                     try:             # <<<<<<<<<<<<<<
 *                         value = getattr(value, attr)
 *                     except (TypeError, AttributeError):
*/
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
              __Pyx_XGOTREF(__pyx_t_12);
              __Pyx_XGOTREF(__pyx_t_13);
              __Pyx_XGOTREF(__pyx_t_14);
              /*try:*/ {

                /* "django_templates_cythonized/base.py":1626
 *                 except (TypeError, KeyError, IndexError):
 *                     try:
 *                         value = getattr(value, attr)             # <<<<<<<<<<<<<<
 *                     except (TypeError, AttributeError):
 *                         return None
*/
                __pyx_t_15 = __Pyx_GetAttr(__pyx_v_value, __pyx_v_attr); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1626, __pyx_L28_error)
                __Pyx_GOTREF(__pyx_t_15);
                __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_15);
                __pyx_t_15 = 0;

                /* "django_templates_cythonized/base.py":1625
 *                     value = value[attr]
 *                 except (TypeError, KeyError, IndexError):
 *                     try:             # <<<<<<<<<<<<<<
 *                         value = getattr(value, attr)
 *                     except (TypeError, AttributeError):
*/
              }
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L35_try_end;
              __pyx_L28_error:;
              __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;

              /* "django_templates_cythonized/base.py":1627
 *                     try:
 *                         value = getattr(value, attr)
 *                     except (TypeError, AttributeError):             # <<<<<<<<<<<<<<
 *                         return None
 *                     except Exception:
*/
              __pyx_t_9 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_AttributeError))));
              if (__pyx_t_9) {
                __Pyx_ErrRestore(0,0,0);

                /* "django_templates_cythonized/base.py":1628
 *                         value = getattr(value, attr)
 *                     except (TypeError, AttributeError):
 *                         return None             # <<<<<<<<<<<<<<
 *                     except Exception:
 *                         # Unexpected exception from getattr/property
*/
                __Pyx_XDECREF(__pyx_r);
                __pyx_r = Py_None; __Pyx_INCREF(Py_None);
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                goto __pyx_L31_except_return;
              }

              /* "django_templates_cythonized/base.py":1629
 *                     except (TypeError, AttributeError):
 *                         return None
 *                     except Exception:             # <<<<<<<<<<<<<<
 *                         # Unexpected exception from getattr/property
 *                         # (e.g. silent_variable_failure)  fall back.
*/
              __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
              if (__pyx_t_9) {
                __Pyx_ErrRestore(0,0,0);

                /* "django_templates_cythonized/base.py":1632
 *                         # Unexpected exception from getattr/property
 *                         # (e.g. silent_variable_failure)  fall back.
 *                         return None             # <<<<<<<<<<<<<<
 *                 except Exception:
 *                     # Unexpected exception from __getitem__
*/
                __Pyx_XDECREF(__pyx_r);
                __pyx_r = Py_None; __Pyx_INCREF(Py_None);
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                goto __pyx_L31_except_return;
              }
              goto __pyx_L30_except_error;

              /* "django_templates_cythonized/base.py":1625
 *                     value = value[attr]
 *                 except (TypeError, KeyError, IndexError):
 *                     try:             # <<<<<<<<<<<<<<
 *                         value = getattr(value, attr)
 *                     except (TypeError, AttributeError):
*/
              __pyx_L30_except_error:;
              __Pyx_XGIVEREF(__pyx_t_12);
              __Pyx_XGIVEREF(__pyx_t_13);
              __Pyx_XGIVEREF(__pyx_t_14);
              __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
              goto __pyx_L20_except_error;
              __pyx_L31_except_return:;
              __Pyx_XGIVEREF(__pyx_t_12);
              __Pyx_XGIVEREF(__pyx_t_13);
              __Pyx_XGIVEREF(__pyx_t_14);
              __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
              goto __pyx_L21_except_return;
              __pyx_L35_try_end:;
            }
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L19_exception_handled;
          }

          /* "django_templates_cythonized/base.py":1633
 *                         # (e.g. silent_variable_failure)  fall back.
 *                         return None
 *                 except Exception:             # <<<<<<<<<<<<<<
 *                     # Unexpected exception from __getitem__
 *                     # (e.g. silent_variable_failure)  fall back.
*/
          __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
          if (__pyx_t_9) {
            __Pyx_ErrRestore(0,0,0);

            /* "django_templates_cythonized/base.py":1636
 *                     # Unexpected exception from __getitem__
 *                     # (e.g. silent_variable_failure)  fall back.
 *                     return None             # <<<<<<<<<<<<<<
 *                 if callable(value):
 *                     return None
*/
            __Pyx_XDECREF(__pyx_r);
            __pyx_r = Py_None; __Pyx_INCREF(Py_None);
            goto __pyx_L21_except_return;
          }
          goto __pyx_L20_except_error;

          /* "django_templates_cythonized/base.py":1622
 *             for seg in range(1, n_lookups):
 *                 attr = lookups_t[seg]
 *                 try:             # <<<<<<<<<<<<<<
 *                     value = value[attr]
 *                 except (TypeError, KeyError, IndexError):
*/
          __pyx_L20_except_error:;
          __Pyx_XGIVEREF(__pyx_t_6);
          __Pyx_XGIVEREF(__pyx_t_7);
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
          goto __pyx_L1_error;
          __pyx_L21_except_return:;
          __Pyx_XGIVEREF(__pyx_t_6);
          __Pyx_XGIVEREF(__pyx_t_7);
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
          goto __pyx_L0;
          __pyx_L19_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_6);
          __Pyx_XGIVEREF(__pyx_t_7);
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
          __pyx_L25_try_end:;
        }

        /* "django_templates_cythonized/base.py":1637
 *                     # (e.g. silent_variable_failure)  fall back.
 *                     return None
 *                 if callable(value):             # <<<<<<<<<<<<<<
 *                     return None
 * 
*/
        __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_value); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1637, __pyx_L1_error)
        if (__pyx_t_1) {

          /* "django_templates_cythonized/base.py":1638
 *                     return None
 *                 if callable(value):
 *                     return None             # <<<<<<<<<<<<<<
 * 
 *     # Apply single filter if present
*/
          __Pyx_XDECREF(__pyx_r);
          __pyx_r = Py_None; __Pyx_INCREF(Py_None);
          goto __pyx_L0;

          /* "django_templates_cythonized/base.py":1637
 *                     # (e.g. silent_variable_failure)  fall back.
 *                     return None
 *                 if callable(value):             # <<<<<<<<<<<<<<
 *                     return None
 * 
*/
        }
      }

      /* "django_templates_cythonized/base.py":1618
 * 
 *         # Resolve additional segments (e.g. book.price, order_form.quantity.label)
 *         if n_lookups >= 2:             # <<<<<<<<<<<<<<
 *             seg: cython.Py_ssize_t
 *             for seg in range(1, n_lookups):
*/
    }
  }
  __pyx_L5:;

  /* "django_templates_cythonized/base.py":1641
 * 
 *     # Apply single filter if present
 *     if n_filters == 1:             # <<<<<<<<<<<<<<
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter
*/
  __pyx_t_1 = (__pyx_v_n_filters == 1);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1642
 *     # Apply single filter if present
 *     if n_filters == 1:
 *         fi: CFilterInfo = filters[0]             # <<<<<<<<<<<<<<
 *         fast_code: cython.int = fe._fast_filter
 *         if fast_code != 0:
*/
    if (unlikely(__pyx_v_filters == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 1642, __pyx_L1_error)
    }
    __pyx_t_11 = __Pyx_PyList_GET_ITEM(__pyx_v_filters, 0);
    __Pyx_INCREF(__pyx_t_11);
    if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo))))) __PYX_ERR(0, 1642, __pyx_L1_error)
    __pyx_v_fi = ((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_t_11);
    __pyx_t_11 = 0;

    /* "django_templates_cythonized/base.py":1643
 *     if n_filters == 1:
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter             # <<<<<<<<<<<<<<
 *         if fast_code != 0:
 *             # C-level dispatch  bypass Python function call + @stringfilter wrapper
*/
    __pyx_t_9 = __pyx_v_fe->_fast_filter;
    __pyx_v_fast_code = __pyx_t_9;

    /* "django_templates_cythonized/base.py":1644
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter
 *         if fast_code != 0:             # <<<<<<<<<<<<<<
 *             # C-level dispatch  bypass Python function call + @stringfilter wrapper
 *             is_safe: cython.bint = fi.is_safe
*/
    __pyx_t_1 = (__pyx_v_fast_code != 0);
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":1646
 *         if fast_code != 0:
 *             # C-level dispatch  bypass Python function call + @stringfilter wrapper
 *             is_safe: cython.bint = fi.is_safe             # <<<<<<<<<<<<<<
 *             if not isinstance(value, str):
 *                 value = str(value)
*/
      __pyx_t_1 = __pyx_v_fi->is_safe;
      __pyx_v_is_safe = __pyx_t_1;

      /* "django_templates_cythonized/base.py":1647
 *             # C-level dispatch  bypass Python function call + @stringfilter wrapper
 *             is_safe: cython.bint = fi.is_safe
 *             if not isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 value = str(value)
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
*/
      __pyx_t_1 = PyUnicode_Check(__pyx_v_value); 
      __pyx_t_16 = (!__pyx_t_1);
      if (__pyx_t_16) {

        /* "django_templates_cythonized/base.py":1648
 *             is_safe: cython.bint = fi.is_safe
 *             if not isinstance(value, str):
 *                 value = str(value)             # <<<<<<<<<<<<<<
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
 *             was_safe: cython.bint = isinstance(value, SafeData)
*/
        __pyx_t_11 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1648, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_11);
        __pyx_t_11 = 0;

        /* "django_templates_cythonized/base.py":1647
 *             # C-level dispatch  bypass Python function call + @stringfilter wrapper
 *             is_safe: cython.bint = fi.is_safe
 *             if not isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 value = str(value)
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
*/
      }

      /* "django_templates_cythonized/base.py":1650
 *                 value = str(value)
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
 *             was_safe: cython.bint = isinstance(value, SafeData)             # <<<<<<<<<<<<<<
 *             if fast_code == FFILTER_LOWER:
 *                 value = value.lower()
*/
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1650, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_16 = PyObject_IsInstance(__pyx_v_value, __pyx_t_11); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 1650, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_v_was_safe = __pyx_t_16;

      /* "django_templates_cythonized/base.py":1651
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
 *             was_safe: cython.bint = isinstance(value, SafeData)
 *             if fast_code == FFILTER_LOWER:             # <<<<<<<<<<<<<<
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:
*/
      __pyx_t_11 = __Pyx_PyLong_From_int(__pyx_v_fast_code); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1651, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_FFILTER_LOWER); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1651, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_11, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1651, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_16 < 0))) __PYX_ERR(0, 1651, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_16) {

        /* "django_templates_cythonized/base.py":1652
 *             was_safe: cython.bint = isinstance(value, SafeData)
 *             if fast_code == FFILTER_LOWER:
 *                 value = value.lower()             # <<<<<<<<<<<<<<
 *             elif fast_code == FFILTER_UPPER:
 *                 value = value.upper()
*/
        __pyx_t_10 = __pyx_v_value;
        __Pyx_INCREF(__pyx_t_10);
        __pyx_t_17 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_17, (1-__pyx_t_17) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1652, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":1651
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
 *             was_safe: cython.bint = isinstance(value, SafeData)
 *             if fast_code == FFILTER_LOWER:             # <<<<<<<<<<<<<<
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:
*/
        goto __pyx_L46;
      }

      /* "django_templates_cythonized/base.py":1653
 *             if fast_code == FFILTER_LOWER:
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:             # <<<<<<<<<<<<<<
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:
*/
      __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_fast_code); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1653, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_FFILTER_UPPER); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1653, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1653, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely((__pyx_t_16 < 0))) __PYX_ERR(0, 1653, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (__pyx_t_16) {

        /* "django_templates_cythonized/base.py":1654
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:
 *                 value = value.upper()             # <<<<<<<<<<<<<<
 *             elif fast_code == FFILTER_CAPFIRST:
 *                 value = value[0].upper() + value[1:] if value else value
*/
        __pyx_t_10 = __pyx_v_value;
        __Pyx_INCREF(__pyx_t_10);
        __pyx_t_17 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
          __pyx_t_11 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_17, (1-__pyx_t_17) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1654, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
        }
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_11);
        __pyx_t_11 = 0;

        /* "django_templates_cythonized/base.py":1653
 *             if fast_code == FFILTER_LOWER:
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:             # <<<<<<<<<<<<<<
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:
*/
        goto __pyx_L46;
      }

      /* "django_templates_cythonized/base.py":1655
 *             elif fast_code == FFILTER_UPPER:
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:             # <<<<<<<<<<<<<<
 *                 value = value[0].upper() + value[1:] if value else value
 *             # FFILTER_STRINGFORMAT_S: str(value) already done above
*/
      __pyx_t_11 = __Pyx_PyLong_From_int(__pyx_v_fast_code); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1655, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_FFILTER_CAPFIRST); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1655, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_11, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1655, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_16 < 0))) __PYX_ERR(0, 1655, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_16) {

        /* "django_templates_cythonized/base.py":1656
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:
 *                 value = value[0].upper() + value[1:] if value else value             # <<<<<<<<<<<<<<
 *             # FFILTER_STRINGFORMAT_S: str(value) already done above
 *             # Value is guaranteed str here  return directly, skip redundant isinstance chain
*/
        __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_16 < 0))) __PYX_ERR(0, 1656, __pyx_L1_error)
        if (__pyx_t_16) {
          __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_value, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1656, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_11 = __pyx_t_15;
          __Pyx_INCREF(__pyx_t_11);
          __pyx_t_17 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
            __pyx_t_10 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_17, (1-__pyx_t_17) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1656, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
          }
          __pyx_t_15 = __Pyx_PyObject_GetSlice(__pyx_v_value, 1, 0, NULL, NULL, &__pyx_mstate_global->__pyx_slice[0], 1, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1656, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_11 = PyNumber_Add(__pyx_t_10, __pyx_t_15); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1656, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_2 = __pyx_t_11;
          __pyx_t_11 = 0;
        } else {
          __Pyx_INCREF(__pyx_v_value);
          __pyx_t_2 = __pyx_v_value;
        }
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "django_templates_cythonized/base.py":1655
 *             elif fast_code == FFILTER_UPPER:
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:             # <<<<<<<<<<<<<<
 *                 value = value[0].upper() + value[1:] if value else value
 *             # FFILTER_STRINGFORMAT_S: str(value) already done above
*/
      }
      __pyx_L46:;

      /* "django_templates_cythonized/base.py":1659
 *             # FFILTER_STRINGFORMAT_S: str(value) already done above
 *             # Value is guaranteed str here  return directly, skip redundant isinstance chain
 *             if context.autoescape:             # <<<<<<<<<<<<<<
 *                 if is_safe and was_safe:
 *                     return value
*/
      if (__pyx_v_context->autoescape) {

        /* "django_templates_cythonized/base.py":1660
 *             # Value is guaranteed str here  return directly, skip redundant isinstance chain
 *             if context.autoescape:
 *                 if is_safe and was_safe:             # <<<<<<<<<<<<<<
 *                     return value
 *                 return _fast_escape_raw(value)
*/
        if (__pyx_v_is_safe) {
        } else {
          __pyx_t_16 = __pyx_v_is_safe;
          goto __pyx_L49_bool_binop_done;
        }
        __pyx_t_16 = __pyx_v_was_safe;
        __pyx_L49_bool_binop_done:;
        if (__pyx_t_16) {

          /* "django_templates_cythonized/base.py":1661
 *             if context.autoescape:
 *                 if is_safe and was_safe:
 *                     return value             # <<<<<<<<<<<<<<
 *                 return _fast_escape_raw(value)
 *             return value
*/
          __Pyx_XDECREF(__pyx_r);
          __Pyx_INCREF(__pyx_v_value);
          __pyx_r = __pyx_v_value;
          goto __pyx_L0;

          /* "django_templates_cythonized/base.py":1660
 *             # Value is guaranteed str here  return directly, skip redundant isinstance chain
 *             if context.autoescape:
 *                 if is_safe and was_safe:             # <<<<<<<<<<<<<<
 *                     return value
 *                 return _fast_escape_raw(value)
*/
        }

        /* "django_templates_cythonized/base.py":1662
 *                 if is_safe and was_safe:
 *                     return value
 *                 return _fast_escape_raw(value)             # <<<<<<<<<<<<<<
 *             return value
 *         else:
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base__fast_escape_raw(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1662, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1659
 *             # FFILTER_STRINGFORMAT_S: str(value) already done above
 *             # Value is guaranteed str here  return directly, skip redundant isinstance chain
 *             if context.autoescape:             # <<<<<<<<<<<<<<
 *                 if is_safe and was_safe:
 *                     return value
*/
      }

      /* "django_templates_cythonized/base.py":1663
 *                     return value
 *                 return _fast_escape_raw(value)
 *             return value             # <<<<<<<<<<<<<<
 *         else:
 *             f_args: list = fi.args
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_value);
      __pyx_r = __pyx_v_value;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1644
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter
 *         if fast_code != 0:             # <<<<<<<<<<<<<<
 *             # C-level dispatch  bypass Python function call + @stringfilter wrapper
 *             is_safe: cython.bint = fi.is_safe
*/
    }

    /* "django_templates_cythonized/base.py":1665
 *             return value
 *         else:
 *             f_args: list = fi.args             # <<<<<<<<<<<<<<
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:
 *                 return None
*/
    /*else*/ {
      __pyx_t_2 = __pyx_v_fi->args;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_f_args = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1666
 *         else:
 *             f_args: list = fi.args
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:             # <<<<<<<<<<<<<<
 *                 return None
 *             func = fi.func
*/
      if (unlikely(__pyx_v_f_args == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
        __PYX_ERR(0, 1666, __pyx_L1_error)
      }
      __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_v_f_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1666, __pyx_L1_error)
      __pyx_t_1 = (__pyx_t_3 != 0);
      if (!__pyx_t_1) {
      } else {
        __pyx_t_16 = __pyx_t_1;
        goto __pyx_L52_bool_binop_done;
      }
      if (!__pyx_v_fi->expects_localtime) {
      } else {
        __pyx_t_16 = __pyx_v_fi->expects_localtime;
        goto __pyx_L52_bool_binop_done;
      }
      __pyx_t_16 = __pyx_v_fi->needs_autoescape;
      __pyx_L52_bool_binop_done:;
      if (__pyx_t_16) {

        /* "django_templates_cythonized/base.py":1667
 *             f_args: list = fi.args
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:
 *                 return None             # <<<<<<<<<<<<<<
 *             func = fi.func
 *             value = func(value)
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_r = Py_None; __Pyx_INCREF(Py_None);
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1666
 *         else:
 *             f_args: list = fi.args
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:             # <<<<<<<<<<<<<<
 *                 return None
 *             func = fi.func
*/
      }

      /* "django_templates_cythonized/base.py":1668
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:
 *                 return None
 *             func = fi.func             # <<<<<<<<<<<<<<
 *             value = func(value)
 *             # Generic filter may return non-str; check and return directly if str
*/
      __pyx_t_2 = __pyx_v_fi->func;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_func = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1669
 *                 return None
 *             func = fi.func
 *             value = func(value)             # <<<<<<<<<<<<<<
 *             # Generic filter may return non-str; check and return directly if str
 *             if isinstance(value, str):
*/
      __pyx_t_11 = NULL;
      __Pyx_INCREF(__pyx_v_func);
      __pyx_t_15 = __pyx_v_func; 
      __pyx_t_17 = 1;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_15))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_15);
        assert(__pyx_t_11);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
        __pyx_t_17 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_v_value};
        __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __pyx_callargs+__pyx_t_17, (2-__pyx_t_17) | (__pyx_t_17*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1669, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1671
 *             value = func(value)
 *             # Generic filter may return non-str; check and return directly if str
 *             if isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):
*/
      __pyx_t_16 = PyUnicode_Check(__pyx_v_value); 
      if (__pyx_t_16) {

        /* "django_templates_cythonized/base.py":1672
 *             # Generic filter may return non-str; check and return directly if str
 *             if isinstance(value, str):
 *                 if context.autoescape:             # <<<<<<<<<<<<<<
 *                     if isinstance(value, SafeData):
 *                         return value
*/
        if (__pyx_v_context->autoescape) {

          /* "django_templates_cythonized/base.py":1673
 *             if isinstance(value, str):
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                         return value
 *                     return _fast_escape_raw(value)
*/
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1673, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_16 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 1673, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__pyx_t_16) {

            /* "django_templates_cythonized/base.py":1674
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):
 *                         return value             # <<<<<<<<<<<<<<
 *                     return _fast_escape_raw(value)
 *                 return value
*/
            __Pyx_XDECREF(__pyx_r);
            __Pyx_INCREF(__pyx_v_value);
            __pyx_r = __pyx_v_value;
            goto __pyx_L0;

            /* "django_templates_cythonized/base.py":1673
 *             if isinstance(value, str):
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                         return value
 *                     return _fast_escape_raw(value)
*/
          }

          /* "django_templates_cythonized/base.py":1675
 *                     if isinstance(value, SafeData):
 *                         return value
 *                     return _fast_escape_raw(value)             # <<<<<<<<<<<<<<
 *                 return value
 *             # Non-str filter result: fall through to type-specific paths below
*/
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base__fast_escape_raw(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1675, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_r = __pyx_t_2;
          __pyx_t_2 = 0;
          goto __pyx_L0;

          /* "django_templates_cythonized/base.py":1672
 *             # Generic filter may return non-str; check and return directly if str
 *             if isinstance(value, str):
 *                 if context.autoescape:             # <<<<<<<<<<<<<<
 *                     if isinstance(value, SafeData):
 *                         return value
*/
        }

        /* "django_templates_cythonized/base.py":1676
 *                         return value
 *                     return _fast_escape_raw(value)
 *                 return value             # <<<<<<<<<<<<<<
 *             # Non-str filter result: fall through to type-specific paths below
 * 
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_v_value);
        __pyx_r = __pyx_v_value;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1671
 *             value = func(value)
 *             # Generic filter may return non-str; check and return directly if str
 *             if isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):
*/
      }
    }

    /* "django_templates_cythonized/base.py":1641
 * 
 *     # Apply single filter if present
 *     if n_filters == 1:             # <<<<<<<<<<<<<<
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter
*/
  }

  /* "django_templates_cythonized/base.py":1680
 * 
 *     # Inline render_value_in_context for string values (the common case).
 *     if isinstance(value, str):             # <<<<<<<<<<<<<<
 *         if context.autoescape:
 *             if isinstance(value, SafeData):
*/
  __pyx_t_16 = PyUnicode_Check(__pyx_v_value); 
  if (__pyx_t_16) {

    /* "django_templates_cythonized/base.py":1681
 *     # Inline render_value_in_context for string values (the common case).
 *     if isinstance(value, str):
 *         if context.autoescape:             # <<<<<<<<<<<<<<
 *             if isinstance(value, SafeData):
 *                 return value
*/
    if (__pyx_v_context->autoescape) {

      /* "django_templates_cythonized/base.py":1682
 *     if isinstance(value, str):
 *         if context.autoescape:
 *             if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                 return value
 *             return _fast_escape_raw(value)
*/
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_16 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 1682, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_16) {

        /* "django_templates_cythonized/base.py":1683
 *         if context.autoescape:
 *             if isinstance(value, SafeData):
 *                 return value             # <<<<<<<<<<<<<<
 *             return _fast_escape_raw(value)
 *         return value
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_v_value);
        __pyx_r = __pyx_v_value;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1682
 *     if isinstance(value, str):
 *         if context.autoescape:
 *             if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                 return value
 *             return _fast_escape_raw(value)
*/
      }

      /* "django_templates_cythonized/base.py":1684
 *             if isinstance(value, SafeData):
 *                 return value
 *             return _fast_escape_raw(value)             # <<<<<<<<<<<<<<
 *         return value
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base__fast_escape_raw(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1684, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_r = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1681
 *     # Inline render_value_in_context for string values (the common case).
 *     if isinstance(value, str):
 *         if context.autoescape:             # <<<<<<<<<<<<<<
 *             if isinstance(value, SafeData):
 *                 return value
*/
    }

    /* "django_templates_cythonized/base.py":1685
 *                 return value
 *             return _fast_escape_raw(value)
 *         return value             # <<<<<<<<<<<<<<
 * 
 *     # Int fast path: localized int strings never contain HTML special chars,
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_value);
    __pyx_r = __pyx_v_value;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1680
 * 
 *     # Inline render_value_in_context for string values (the common case).
 *     if isinstance(value, str):             # <<<<<<<<<<<<<<
 *         if context.autoescape:
 *             if isinstance(value, SafeData):
*/
  }

  /* "django_templates_cythonized/base.py":1690
 *     # so skip the _fast_escape call. Uses localize() to respect
 *     # USE_THOUSAND_SEPARATOR.
 *     if isinstance(value, int) and not isinstance(value, bool):             # <<<<<<<<<<<<<<
 *         lang = context._lang
 *         if lang is None:
*/
  __pyx_t_1 = PyLong_Check(__pyx_v_value); 
  if (__pyx_t_1) {
  } else {
    __pyx_t_16 = __pyx_t_1;
    goto __pyx_L62_bool_binop_done;
  }
  __pyx_t_1 = PyBool_Check(__pyx_v_value); 
  __pyx_t_18 = (!__pyx_t_1);
  __pyx_t_16 = __pyx_t_18;
  __pyx_L62_bool_binop_done:;
  if (__pyx_t_16) {

    /* "django_templates_cythonized/base.py":1691
 *     # USE_THOUSAND_SEPARATOR.
 *     if isinstance(value, int) and not isinstance(value, bool):
 *         lang = context._lang             # <<<<<<<<<<<<<<
 *         if lang is None:
 *             from django.utils.translation import get_language
*/
    __pyx_t_2 = __pyx_v_context->_lang;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_lang = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "django_templates_cythonized/base.py":1692
 *     if isinstance(value, int) and not isinstance(value, bool):
 *         lang = context._lang
 *         if lang is None:             # <<<<<<<<<<<<<<
 *             from django.utils.translation import get_language
 * 
*/
    __pyx_t_16 = (__pyx_v_lang == Py_None);
    if (__pyx_t_16) {

      /* "django_templates_cythonized/base.py":1693
 *         lang = context._lang
 *         if lang is None:
 *             from django.utils.translation import get_language             # <<<<<<<<<<<<<<
 * 
 *             lang = get_language()
*/
      {
        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
        __pyx_t_8 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_translation, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1693, __pyx_L1_error)
      }
      __pyx_t_2 = __pyx_t_8;
      __Pyx_GOTREF(__pyx_t_2);
      {
        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
        __pyx_t_3 = 0; {
          __pyx_t_15 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1693, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          switch (__pyx_t_3) {
            case 0:
            __Pyx_INCREF(__pyx_t_15);
            __pyx_v_get_language = __pyx_t_15;
            break;
            default:;
          }
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1695
 *             from django.utils.translation import get_language
 * 
 *             lang = get_language()             # <<<<<<<<<<<<<<
 *             context._lang = lang
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
*/
      __pyx_t_15 = NULL;
      __Pyx_INCREF(__pyx_v_get_language);
      __pyx_t_11 = __pyx_v_get_language; 
      __pyx_t_17 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_11);
        assert(__pyx_t_15);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_15);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
        __pyx_t_17 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL};
        __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_17, (1-__pyx_t_17) | (__pyx_t_17*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1695, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF_SET(__pyx_v_lang, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "django_templates_cythonized/base.py":1696
 * 
 *             lang = get_language()
 *             context._lang = lang             # <<<<<<<<<<<<<<
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
 * 
*/
      __Pyx_INCREF(__pyx_v_lang);
      __Pyx_GIVEREF(__pyx_v_lang);
      __Pyx_GOTREF(__pyx_v_context->_lang);
      __Pyx_DECREF(__pyx_v_context->_lang);
      __pyx_v_context->_lang = __pyx_v_lang;

      /* "django_templates_cythonized/base.py":1692
 *     if isinstance(value, int) and not isinstance(value, bool):
 *         lang = context._lang
 *         if lang is None:             # <<<<<<<<<<<<<<
 *             from django.utils.translation import get_language
 * 
*/
    }

    /* "django_templates_cythonized/base.py":1697
 *             lang = get_language()
 *             context._lang = lang
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)             # <<<<<<<<<<<<<<
 * 
 *     # Float fast path: str(float) produces digits, '.', '-', 'e', '+'
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_v_context->use_l10n;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_19.__pyx_n = 2;
    __pyx_t_19.use_l10n = __pyx_t_2;
    __pyx_t_19.lang = __pyx_v_lang;
    __pyx_t_11 = __pyx_f_27django_templates_cythonized_7formats_localize(__pyx_v_value, 0, &__pyx_t_19); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1690
 *     # so skip the _fast_escape call. Uses localize() to respect
 *     # USE_THOUSAND_SEPARATOR.
 *     if isinstance(value, int) and not isinstance(value, bool):             # <<<<<<<<<<<<<<
 *         lang = context._lang
 *         if lang is None:
*/
  }

  /* "django_templates_cythonized/base.py":1701
 *     # Float fast path: str(float) produces digits, '.', '-', 'e', '+'
 *     # None of which are HTML special chars, so skip the _fast_escape call.
 *     if isinstance(value, float):             # <<<<<<<<<<<<<<
 *         lang = context._lang
 *         if lang is None:
*/
  __pyx_t_16 = PyFloat_Check(__pyx_v_value); 
  if (__pyx_t_16) {

    /* "django_templates_cythonized/base.py":1702
 *     # None of which are HTML special chars, so skip the _fast_escape call.
 *     if isinstance(value, float):
 *         lang = context._lang             # <<<<<<<<<<<<<<
 *         if lang is None:
 *             from django.utils.translation import get_language
*/
    __pyx_t_11 = __pyx_v_context->_lang;
    __Pyx_INCREF(__pyx_t_11);
    __pyx_v_lang = __pyx_t_11;
    __pyx_t_11 = 0;

    /* "django_templates_cythonized/base.py":1703
 *     if isinstance(value, float):
 *         lang = context._lang
 *         if lang is None:             # <<<<<<<<<<<<<<
 *             from django.utils.translation import get_language
 * 
*/
    __pyx_t_16 = (__pyx_v_lang == Py_None);
    if (__pyx_t_16) {

      /* "django_templates_cythonized/base.py":1704
 *         lang = context._lang
 *         if lang is None:
 *             from django.utils.translation import get_language             # <<<<<<<<<<<<<<
 * 
 *             lang = get_language()
*/
      {
        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
        __pyx_t_8 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_translation, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1704, __pyx_L1_error)
      }
      __pyx_t_11 = __pyx_t_8;
      __Pyx_GOTREF(__pyx_t_11);
      {
        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
        __pyx_t_3 = 0; {
          __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_11, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1704, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          switch (__pyx_t_3) {
            case 0:
            __Pyx_INCREF(__pyx_t_2);
            __pyx_v_get_language = __pyx_t_2;
            break;
            default:;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

      /* "django_templates_cythonized/base.py":1706
 *             from django.utils.translation import get_language
 * 
 *             lang = get_language()             # <<<<<<<<<<<<<<
 *             context._lang = lang
 *         if _float_is_str_fast(lang):
*/
      __pyx_t_2 = NULL;
      __Pyx_INCREF(__pyx_v_get_language);
      __pyx_t_15 = __pyx_v_get_language; 
      __pyx_t_17 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_15))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_15);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
        __pyx_t_17 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
        __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __pyx_callargs+__pyx_t_17, (1-__pyx_t_17) | (__pyx_t_17*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1706, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
      }
      __Pyx_DECREF_SET(__pyx_v_lang, __pyx_t_11);
      __pyx_t_11 = 0;

      /* "django_templates_cythonized/base.py":1707
 * 
 *             lang = get_language()
 *             context._lang = lang             # <<<<<<<<<<<<<<
 *         if _float_is_str_fast(lang):
 *             return str(value)
*/
      __Pyx_INCREF(__pyx_v_lang);
      __Pyx_GIVEREF(__pyx_v_lang);
      __Pyx_GOTREF(__pyx_v_context->_lang);
      __Pyx_DECREF(__pyx_v_context->_lang);
      __pyx_v_context->_lang = __pyx_v_lang;

      /* "django_templates_cythonized/base.py":1703
 *     if isinstance(value, float):
 *         lang = context._lang
 *         if lang is None:             # <<<<<<<<<<<<<<
 *             from django.utils.translation import get_language
 * 
*/
    }

    /* "django_templates_cythonized/base.py":1708
 *             lang = get_language()
 *             context._lang = lang
 *         if _float_is_str_fast(lang):             # <<<<<<<<<<<<<<
 *             return str(value)
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
*/
    __pyx_t_16 = __pyx_f_27django_templates_cythonized_7formats__float_is_str_fast(__pyx_v_lang); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1708, __pyx_L1_error)
    if (__pyx_t_16) {

      /* "django_templates_cythonized/base.py":1709
 *             context._lang = lang
 *         if _float_is_str_fast(lang):
 *             return str(value)             # <<<<<<<<<<<<<<
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_11 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1709, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_r = __pyx_t_11;
      __pyx_t_11 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1708
 *             lang = get_language()
 *             context._lang = lang
 *         if _float_is_str_fast(lang):             # <<<<<<<<<<<<<<
 *             return str(value)
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
*/
    }

    /* "django_templates_cythonized/base.py":1710
 *         if _float_is_str_fast(lang):
 *             return str(value)
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)             # <<<<<<<<<<<<<<
 * 
 *     # Non-string, non-int, non-float values: delegate to render_value_in_context
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_11 = __pyx_v_context->use_l10n;
    __Pyx_INCREF(__pyx_t_11);
    __pyx_t_19.__pyx_n = 2;
    __pyx_t_19.use_l10n = __pyx_t_11;
    __pyx_t_19.lang = __pyx_v_lang;
    __pyx_t_15 = __pyx_f_27django_templates_cythonized_7formats_localize(__pyx_v_value, 0, &__pyx_t_19); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_r = __pyx_t_15;
    __pyx_t_15 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1701
 *     # Float fast path: str(float) produces digits, '.', '-', 'e', '+'
 *     # None of which are HTML special chars, so skip the _fast_escape call.
 *     if isinstance(value, float):             # <<<<<<<<<<<<<<
 *         lang = context._lang
 *         if lang is None:
*/
  }

  /* "django_templates_cythonized/base.py":1714
 *     # Non-string, non-int, non-float values: delegate to render_value_in_context
 *     # for template_localtime + localize + escaping.
 *     return render_value_in_context(value, context)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_15 = __pyx_f_27django_templates_cythonized_4base_render_value_in_context(__pyx_v_value, __pyx_v_context, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_r = __pyx_t_15;
  __pyx_t_15 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1561
 * 
 * 
 * @cython.wraparound(False)             # <<<<<<<<<<<<<<
 * def _render_var_fast(fe: FilterExpression, context: Context):
 *     """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("django_templates_cythonized.base._render_var_fast", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_filters);
  __Pyx_XDECREF((PyObject *)__pyx_v_var);
  __Pyx_XDECREF(__pyx_v_lookups);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_lookups_t);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_dicts);
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_dd);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF((PyObject *)__pyx_v_fi);
  __Pyx_XDECREF(__pyx_v_f_args);
  __Pyx_XDECREF(__pyx_v_func);
  __Pyx_XDECREF(__pyx_v_lang);
  __Pyx_XDECREF(__pyx_v_get_language);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1717
 * 
 * 
 * def _fe_is_direct_loopvar(fe: FilterExpression, loopvar):             # <<<<<<<<<<<<<<
 *     """
 *     Check if a FilterExpression is a simple direct reference to the given
*/

static int __pyx_f_27django_templates_cythonized_4base__fe_is_direct_loopvar(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_fe, PyObject *__pyx_v_loopvar) {
  struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v_var = 0;
  Py_ssize_t __pyx_v_n_filters;
  struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_f = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_fe_is_direct_loopvar", 0);

  /* "django_templates_cythonized/base.py":1723
 *     Used by ForNode to determine if it can bypass context writes.
 *     """
 *     if not fe.is_var:             # <<<<<<<<<<<<<<
 *         return False
 *     var: Variable = fe.var
*/
  __pyx_t_1 = (!__pyx_v_fe->is_var);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1724
 *     """
 *     if not fe.is_var:
 *         return False             # <<<<<<<<<<<<<<
 *     var: Variable = fe.var
 *     if var.lookups is None or len(var.lookups) != 1:
*/
    __pyx_r = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1723
 *     Used by ForNode to determine if it can bypass context writes.
 *     """
 *     if not fe.is_var:             # <<<<<<<<<<<<<<
 *         return False
 *     var: Variable = fe.var
*/
  }

  /* "django_templates_cythonized/base.py":1725
 *     if not fe.is_var:
 *         return False
 *     var: Variable = fe.var             # <<<<<<<<<<<<<<
 *     if var.lookups is None or len(var.lookups) != 1:
 *         return False
*/
  __pyx_t_2 = __pyx_v_fe->var;
  __Pyx_INCREF(__pyx_t_2);
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable))))) __PYX_ERR(0, 1725, __pyx_L1_error)
  __pyx_v_var = ((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":1726
 *         return False
 *     var: Variable = fe.var
 *     if var.lookups is None or len(var.lookups) != 1:             # <<<<<<<<<<<<<<
 *         return False
 *     if var.lookups[0] != loopvar:
*/
  __pyx_t_3 = (__pyx_v_var->lookups == Py_None);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_2 = __pyx_v_var->lookups;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1726, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = (__pyx_t_4 != 1);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1727
 *     var: Variable = fe.var
 *     if var.lookups is None or len(var.lookups) != 1:
 *         return False             # <<<<<<<<<<<<<<
 *     if var.lookups[0] != loopvar:
 *         return False
*/
    __pyx_r = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1726
 *         return False
 *     var: Variable = fe.var
 *     if var.lookups is None or len(var.lookups) != 1:             # <<<<<<<<<<<<<<
 *         return False
 *     if var.lookups[0] != loopvar:
*/
  }

  /* "django_templates_cythonized/base.py":1728
 *     if var.lookups is None or len(var.lookups) != 1:
 *         return False
 *     if var.lookups[0] != loopvar:             # <<<<<<<<<<<<<<
 *         return False
 *     if var.translate:
*/
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_var->lookups, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_v_loopvar, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1729
 *         return False
 *     if var.lookups[0] != loopvar:
 *         return False             # <<<<<<<<<<<<<<
 *     if var.translate:
 *         return False
*/
    __pyx_r = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1728
 *     if var.lookups is None or len(var.lookups) != 1:
 *         return False
 *     if var.lookups[0] != loopvar:             # <<<<<<<<<<<<<<
 *         return False
 *     if var.translate:
*/
  }

  /* "django_templates_cythonized/base.py":1730
 *     if var.lookups[0] != loopvar:
 *         return False
 *     if var.translate:             # <<<<<<<<<<<<<<
 *         return False
 *     n_filters: cython.Py_ssize_t = len(fe.filters)
*/
  if (__pyx_v_var->translate) {

    /* "django_templates_cythonized/base.py":1731
 *         return False
 *     if var.translate:
 *         return False             # <<<<<<<<<<<<<<
 *     n_filters: cython.Py_ssize_t = len(fe.filters)
 *     if n_filters > 1:
*/
    __pyx_r = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1730
 *     if var.lookups[0] != loopvar:
 *         return False
 *     if var.translate:             # <<<<<<<<<<<<<<
 *         return False
 *     n_filters: cython.Py_ssize_t = len(fe.filters)
*/
  }

  /* "django_templates_cythonized/base.py":1732
 *     if var.translate:
 *         return False
 *     n_filters: cython.Py_ssize_t = len(fe.filters)             # <<<<<<<<<<<<<<
 *     if n_filters > 1:
 *         return False
*/
  __pyx_t_5 = __pyx_v_fe->filters;
  __Pyx_INCREF(__pyx_t_5);
  if (unlikely(__pyx_t_5 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 1732, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_t_5); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1732, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_n_filters = __pyx_t_4;

  /* "django_templates_cythonized/base.py":1733
 *         return False
 *     n_filters: cython.Py_ssize_t = len(fe.filters)
 *     if n_filters > 1:             # <<<<<<<<<<<<<<
 *         return False
 *     if n_filters == 1:
*/
  __pyx_t_1 = (__pyx_v_n_filters > 1);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1734
 *     n_filters: cython.Py_ssize_t = len(fe.filters)
 *     if n_filters > 1:
 *         return False             # <<<<<<<<<<<<<<
 *     if n_filters == 1:
 *         f: CFilterInfo = fe.filters[0]
*/
    __pyx_r = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1733
 *         return False
 *     n_filters: cython.Py_ssize_t = len(fe.filters)
 *     if n_filters > 1:             # <<<<<<<<<<<<<<
 *         return False
 *     if n_filters == 1:
*/
  }

  /* "django_templates_cythonized/base.py":1735
 *     if n_filters > 1:
 *         return False
 *     if n_filters == 1:             # <<<<<<<<<<<<<<
 *         f: CFilterInfo = fe.filters[0]
 *         if len(f.args) != 0 or f.expects_localtime or f.needs_autoescape:
*/
  __pyx_t_1 = (__pyx_v_n_filters == 1);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1736
 *         return False
 *     if n_filters == 1:
 *         f: CFilterInfo = fe.filters[0]             # <<<<<<<<<<<<<<
 *         if len(f.args) != 0 or f.expects_localtime or f.needs_autoescape:
 *             return False
*/
    if (unlikely(__pyx_v_fe->filters == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 1736, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_PyList_GET_ITEM(__pyx_v_fe->filters, 0);
    __Pyx_INCREF(__pyx_t_5);
    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo))))) __PYX_ERR(0, 1736, __pyx_L1_error)
    __pyx_v_f = ((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "django_templates_cythonized/base.py":1737
 *     if n_filters == 1:
 *         f: CFilterInfo = fe.filters[0]
 *         if len(f.args) != 0 or f.expects_localtime or f.needs_autoescape:             # <<<<<<<<<<<<<<
 *             return False
 *     return True
*/
    __pyx_t_5 = __pyx_v_f->args;
    __Pyx_INCREF(__pyx_t_5);
    if (unlikely(__pyx_t_5 == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 1737, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_t_5); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1737, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_3 = (__pyx_t_4 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L12_bool_binop_done;
    }
    if (!__pyx_v_f->expects_localtime) {
    } else {
      __pyx_t_1 = __pyx_v_f->expects_localtime;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_1 = __pyx_v_f->needs_autoescape;
    __pyx_L12_bool_binop_done:;
    if (__pyx_t_1) {

      /* "django_templates_cythonized/base.py":1738
 *         f: CFilterInfo = fe.filters[0]
 *         if len(f.args) != 0 or f.expects_localtime or f.needs_autoescape:
 *             return False             # <<<<<<<<<<<<<<
 *     return True
 * 
*/
      __pyx_r = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1737
 *     if n_filters == 1:
 *         f: CFilterInfo = fe.filters[0]
 *         if len(f.args) != 0 or f.expects_localtime or f.needs_autoescape:             # <<<<<<<<<<<<<<
 *             return False
 *     return True
*/
    }

    /* "django_templates_cythonized/base.py":1735
 *     if n_filters > 1:
 *         return False
 *     if n_filters == 1:             # <<<<<<<<<<<<<<
 *         f: CFilterInfo = fe.filters[0]
 *         if len(f.args) != 0 or f.expects_localtime or f.needs_autoescape:
*/
  }

  /* "django_templates_cythonized/base.py":1739
 *         if len(f.args) != 0 or f.expects_localtime or f.needs_autoescape:
 *             return False
 *     return True             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = 1;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1717
 * 
 * 
 * def _fe_is_direct_loopvar(fe: FilterExpression, loopvar):             # <<<<<<<<<<<<<<
 *     """
 *     Check if a FilterExpression is a simple direct reference to the given
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base._fe_is_direct_loopvar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_var);
  __Pyx_XDECREF((PyObject *)__pyx_v_f);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1742
 * 
 * 
 * @cython.wraparound(False)             # <<<<<<<<<<<<<<
 * def _render_var_with_value(fe: FilterExpression, value, context: Context):
 *     """
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base__render_var_with_value(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v_fe, PyObject *__pyx_v_value, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_v_filters = 0;
  Py_ssize_t __pyx_v_n_filters;
  struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v_fi = 0;
  int __pyx_v_fast_code;
  int __pyx_v_is_safe;
  int __pyx_v_was_safe;
  PyObject *__pyx_v_f_args = 0;
  PyObject *__pyx_v_func = NULL;
  PyObject *__pyx_v_lang = NULL;
  PyObject *__pyx_v_get_language = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  struct __pyx_opt_args_27django_templates_cythonized_7formats_localize __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_render_var_with_value", 0);
  __Pyx_INCREF(__pyx_v_value);

  /* "django_templates_cythonized/base.py":1750
 *     Returns the rendered string, or None to signal fallback to the normal path.
 *     """
 *     filters: list = fe.filters             # <<<<<<<<<<<<<<
 *     n_filters: cython.Py_ssize_t = len(filters)
 *     if n_filters > 1:
*/
  __pyx_t_1 = __pyx_v_fe->filters;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_filters = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1751
 *     """
 *     filters: list = fe.filters
 *     n_filters: cython.Py_ssize_t = len(filters)             # <<<<<<<<<<<<<<
 *     if n_filters > 1:
 *         return None
*/
  if (unlikely(__pyx_v_filters == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 1751, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_v_filters); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1751, __pyx_L1_error)
  __pyx_v_n_filters = __pyx_t_2;

  /* "django_templates_cythonized/base.py":1752
 *     filters: list = fe.filters
 *     n_filters: cython.Py_ssize_t = len(filters)
 *     if n_filters > 1:             # <<<<<<<<<<<<<<
 *         return None
 * 
*/
  __pyx_t_3 = (__pyx_v_n_filters > 1);
  if (__pyx_t_3) {

    /* "django_templates_cythonized/base.py":1753
 *     n_filters: cython.Py_ssize_t = len(filters)
 *     if n_filters > 1:
 *         return None             # <<<<<<<<<<<<<<
 * 
 *     # Apply single filter if present
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1752
 *     filters: list = fe.filters
 *     n_filters: cython.Py_ssize_t = len(filters)
 *     if n_filters > 1:             # <<<<<<<<<<<<<<
 *         return None
 * 
*/
  }

  /* "django_templates_cythonized/base.py":1756
 * 
 *     # Apply single filter if present
 *     if n_filters == 1:             # <<<<<<<<<<<<<<
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter
*/
  __pyx_t_3 = (__pyx_v_n_filters == 1);
  if (__pyx_t_3) {

    /* "django_templates_cythonized/base.py":1757
 *     # Apply single filter if present
 *     if n_filters == 1:
 *         fi: CFilterInfo = filters[0]             # <<<<<<<<<<<<<<
 *         fast_code: cython.int = fe._fast_filter
 *         if fast_code != 0:
*/
    if (unlikely(__pyx_v_filters == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 1757, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyList_GET_ITEM(__pyx_v_filters, 0);
    __Pyx_INCREF(__pyx_t_1);
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo))))) __PYX_ERR(0, 1757, __pyx_L1_error)
    __pyx_v_fi = ((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":1758
 *     if n_filters == 1:
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter             # <<<<<<<<<<<<<<
 *         if fast_code != 0:
 *             is_safe: cython.bint = fi.is_safe
*/
    __pyx_t_4 = __pyx_v_fe->_fast_filter;
    __pyx_v_fast_code = __pyx_t_4;

    /* "django_templates_cythonized/base.py":1759
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter
 *         if fast_code != 0:             # <<<<<<<<<<<<<<
 *             is_safe: cython.bint = fi.is_safe
 *             if not isinstance(value, str):
*/
    __pyx_t_3 = (__pyx_v_fast_code != 0);
    if (__pyx_t_3) {

      /* "django_templates_cythonized/base.py":1760
 *         fast_code: cython.int = fe._fast_filter
 *         if fast_code != 0:
 *             is_safe: cython.bint = fi.is_safe             # <<<<<<<<<<<<<<
 *             if not isinstance(value, str):
 *                 value = str(value)
*/
      __pyx_t_3 = __pyx_v_fi->is_safe;
      __pyx_v_is_safe = __pyx_t_3;

      /* "django_templates_cythonized/base.py":1761
 *         if fast_code != 0:
 *             is_safe: cython.bint = fi.is_safe
 *             if not isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 value = str(value)
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
*/
      __pyx_t_3 = PyUnicode_Check(__pyx_v_value); 
      __pyx_t_5 = (!__pyx_t_3);
      if (__pyx_t_5) {

        /* "django_templates_cythonized/base.py":1762
 *             is_safe: cython.bint = fi.is_safe
 *             if not isinstance(value, str):
 *                 value = str(value)             # <<<<<<<<<<<<<<
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
 *             was_safe: cython.bint = isinstance(value, SafeData)
*/
        __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1762, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1761
 *         if fast_code != 0:
 *             is_safe: cython.bint = fi.is_safe
 *             if not isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 value = str(value)
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
*/
      }

      /* "django_templates_cythonized/base.py":1764
 *                 value = str(value)
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
 *             was_safe: cython.bint = isinstance(value, SafeData)             # <<<<<<<<<<<<<<
 *             if fast_code == FFILTER_LOWER:
 *                 value = value.lower()
*/
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1764, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 1764, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_was_safe = __pyx_t_5;

      /* "django_templates_cythonized/base.py":1765
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
 *             was_safe: cython.bint = isinstance(value, SafeData)
 *             if fast_code == FFILTER_LOWER:             # <<<<<<<<<<<<<<
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:
*/
      __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_fast_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_FFILTER_LOWER); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1765, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 1765, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_5) {

        /* "django_templates_cythonized/base.py":1766
 *             was_safe: cython.bint = isinstance(value, SafeData)
 *             if fast_code == FFILTER_LOWER:
 *                 value = value.lower()             # <<<<<<<<<<<<<<
 *             elif fast_code == FFILTER_UPPER:
 *                 value = value.upper()
*/
        __pyx_t_6 = __pyx_v_value;
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_8 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
          __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1766, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "django_templates_cythonized/base.py":1765
 *             # Check SafeData AFTER str()  e.g. SafeClass.__str__ returns SafeString
 *             was_safe: cython.bint = isinstance(value, SafeData)
 *             if fast_code == FFILTER_LOWER:             # <<<<<<<<<<<<<<
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:
*/
        goto __pyx_L7;
      }

      /* "django_templates_cythonized/base.py":1767
 *             if fast_code == FFILTER_LOWER:
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:             # <<<<<<<<<<<<<<
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:
*/
      __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_fast_code); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1767, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_FFILTER_UPPER); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1767, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1767, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 1767, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_5) {

        /* "django_templates_cythonized/base.py":1768
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:
 *                 value = value.upper()             # <<<<<<<<<<<<<<
 *             elif fast_code == FFILTER_CAPFIRST:
 *                 value = value[0].upper() + value[1:] if value else value
*/
        __pyx_t_6 = __pyx_v_value;
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_8 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1768, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "django_templates_cythonized/base.py":1767
 *             if fast_code == FFILTER_LOWER:
 *                 value = value.lower()
 *             elif fast_code == FFILTER_UPPER:             # <<<<<<<<<<<<<<
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:
*/
        goto __pyx_L7;
      }

      /* "django_templates_cythonized/base.py":1769
 *             elif fast_code == FFILTER_UPPER:
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:             # <<<<<<<<<<<<<<
 *                 value = value[0].upper() + value[1:] if value else value
 *             # Value is guaranteed str  return directly
*/
      __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_fast_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1769, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_FFILTER_CAPFIRST); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1769, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1769, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 1769, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_5) {

        /* "django_templates_cythonized/base.py":1770
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:
 *                 value = value[0].upper() + value[1:] if value else value             # <<<<<<<<<<<<<<
 *             # Value is guaranteed str  return directly
 *             if context.autoescape:
*/
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 1770, __pyx_L1_error)
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_value, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1770, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_1 = __pyx_t_9;
          __Pyx_INCREF(__pyx_t_1);
          __pyx_t_8 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
            __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1770, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
          }
          __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_v_value, 1, 0, NULL, NULL, &__pyx_mstate_global->__pyx_slice[0], 1, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1770, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1770, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_7 = __pyx_t_1;
          __pyx_t_1 = 0;
        } else {
          __Pyx_INCREF(__pyx_v_value);
          __pyx_t_7 = __pyx_v_value;
        }
        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "django_templates_cythonized/base.py":1769
 *             elif fast_code == FFILTER_UPPER:
 *                 value = value.upper()
 *             elif fast_code == FFILTER_CAPFIRST:             # <<<<<<<<<<<<<<
 *                 value = value[0].upper() + value[1:] if value else value
 *             # Value is guaranteed str  return directly
*/
      }
      __pyx_L7:;

      /* "django_templates_cythonized/base.py":1772
 *                 value = value[0].upper() + value[1:] if value else value
 *             # Value is guaranteed str  return directly
 *             if context.autoescape:             # <<<<<<<<<<<<<<
 *                 if is_safe and was_safe:
 *                     return value
*/
      if (__pyx_v_context->autoescape) {

        /* "django_templates_cythonized/base.py":1773
 *             # Value is guaranteed str  return directly
 *             if context.autoescape:
 *                 if is_safe and was_safe:             # <<<<<<<<<<<<<<
 *                     return value
 *                 return _fast_escape_raw(value)
*/
        if (__pyx_v_is_safe) {
        } else {
          __pyx_t_5 = __pyx_v_is_safe;
          goto __pyx_L10_bool_binop_done;
        }
        __pyx_t_5 = __pyx_v_was_safe;
        __pyx_L10_bool_binop_done:;
        if (__pyx_t_5) {

          /* "django_templates_cythonized/base.py":1774
 *             if context.autoescape:
 *                 if is_safe and was_safe:
 *                     return value             # <<<<<<<<<<<<<<
 *                 return _fast_escape_raw(value)
 *             return value
*/
          __Pyx_XDECREF(__pyx_r);
          __Pyx_INCREF(__pyx_v_value);
          __pyx_r = __pyx_v_value;
          goto __pyx_L0;

          /* "django_templates_cythonized/base.py":1773
 *             # Value is guaranteed str  return directly
 *             if context.autoescape:
 *                 if is_safe and was_safe:             # <<<<<<<<<<<<<<
 *                     return value
 *                 return _fast_escape_raw(value)
*/
        }

        /* "django_templates_cythonized/base.py":1775
 *                 if is_safe and was_safe:
 *                     return value
 *                 return _fast_escape_raw(value)             # <<<<<<<<<<<<<<
 *             return value
 *         else:
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __pyx_f_27django_templates_cythonized_4base__fast_escape_raw(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1775, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_r = __pyx_t_7;
        __pyx_t_7 = 0;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1772
 *                 value = value[0].upper() + value[1:] if value else value
 *             # Value is guaranteed str  return directly
 *             if context.autoescape:             # <<<<<<<<<<<<<<
 *                 if is_safe and was_safe:
 *                     return value
*/
      }

      /* "django_templates_cythonized/base.py":1776
 *                     return value
 *                 return _fast_escape_raw(value)
 *             return value             # <<<<<<<<<<<<<<
 *         else:
 *             f_args: list = fi.args
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_value);
      __pyx_r = __pyx_v_value;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1759
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter
 *         if fast_code != 0:             # <<<<<<<<<<<<<<
 *             is_safe: cython.bint = fi.is_safe
 *             if not isinstance(value, str):
*/
    }

    /* "django_templates_cythonized/base.py":1778
 *             return value
 *         else:
 *             f_args: list = fi.args             # <<<<<<<<<<<<<<
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:
 *                 return None
*/
    /*else*/ {
      __pyx_t_7 = __pyx_v_fi->args;
      __Pyx_INCREF(__pyx_t_7);
      __pyx_v_f_args = ((PyObject*)__pyx_t_7);
      __pyx_t_7 = 0;

      /* "django_templates_cythonized/base.py":1779
 *         else:
 *             f_args: list = fi.args
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:             # <<<<<<<<<<<<<<
 *                 return None
 *             func = fi.func
*/
      if (unlikely(__pyx_v_f_args == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
        __PYX_ERR(0, 1779, __pyx_L1_error)
      }
      __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_v_f_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1779, __pyx_L1_error)
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (!__pyx_t_3) {
      } else {
        __pyx_t_5 = __pyx_t_3;
        goto __pyx_L13_bool_binop_done;
      }
      if (!__pyx_v_fi->expects_localtime) {
      } else {
        __pyx_t_5 = __pyx_v_fi->expects_localtime;
        goto __pyx_L13_bool_binop_done;
      }
      __pyx_t_5 = __pyx_v_fi->needs_autoescape;
      __pyx_L13_bool_binop_done:;
      if (__pyx_t_5) {

        /* "django_templates_cythonized/base.py":1780
 *             f_args: list = fi.args
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:
 *                 return None             # <<<<<<<<<<<<<<
 *             func = fi.func
 *             value = func(value)
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_r = Py_None; __Pyx_INCREF(Py_None);
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1779
 *         else:
 *             f_args: list = fi.args
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:             # <<<<<<<<<<<<<<
 *                 return None
 *             func = fi.func
*/
      }

      /* "django_templates_cythonized/base.py":1781
 *             if len(f_args) != 0 or fi.expects_localtime or fi.needs_autoescape:
 *                 return None
 *             func = fi.func             # <<<<<<<<<<<<<<
 *             value = func(value)
 *             if isinstance(value, str):
*/
      __pyx_t_7 = __pyx_v_fi->func;
      __Pyx_INCREF(__pyx_t_7);
      __pyx_v_func = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "django_templates_cythonized/base.py":1782
 *                 return None
 *             func = fi.func
 *             value = func(value)             # <<<<<<<<<<<<<<
 *             if isinstance(value, str):
 *                 if context.autoescape:
*/
      __pyx_t_1 = NULL;
      __Pyx_INCREF(__pyx_v_func);
      __pyx_t_9 = __pyx_v_func; 
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9);
        assert(__pyx_t_1);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_value};
        __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1782, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "django_templates_cythonized/base.py":1783
 *             func = fi.func
 *             value = func(value)
 *             if isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):
*/
      __pyx_t_5 = PyUnicode_Check(__pyx_v_value); 
      if (__pyx_t_5) {

        /* "django_templates_cythonized/base.py":1784
 *             value = func(value)
 *             if isinstance(value, str):
 *                 if context.autoescape:             # <<<<<<<<<<<<<<
 *                     if isinstance(value, SafeData):
 *                         return value
*/
        if (__pyx_v_context->autoescape) {

          /* "django_templates_cythonized/base.py":1785
 *             if isinstance(value, str):
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                         return value
 *                     return _fast_escape_raw(value)
*/
          __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1785, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = PyObject_IsInstance(__pyx_v_value, __pyx_t_7); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 1785, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (__pyx_t_5) {

            /* "django_templates_cythonized/base.py":1786
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):
 *                         return value             # <<<<<<<<<<<<<<
 *                     return _fast_escape_raw(value)
 *                 return value
*/
            __Pyx_XDECREF(__pyx_r);
            __Pyx_INCREF(__pyx_v_value);
            __pyx_r = __pyx_v_value;
            goto __pyx_L0;

            /* "django_templates_cythonized/base.py":1785
 *             if isinstance(value, str):
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                         return value
 *                     return _fast_escape_raw(value)
*/
          }

          /* "django_templates_cythonized/base.py":1787
 *                     if isinstance(value, SafeData):
 *                         return value
 *                     return _fast_escape_raw(value)             # <<<<<<<<<<<<<<
 *                 return value
 *             # Non-str filter result: fall through
*/
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_7 = __pyx_f_27django_templates_cythonized_4base__fast_escape_raw(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_r = __pyx_t_7;
          __pyx_t_7 = 0;
          goto __pyx_L0;

          /* "django_templates_cythonized/base.py":1784
 *             value = func(value)
 *             if isinstance(value, str):
 *                 if context.autoescape:             # <<<<<<<<<<<<<<
 *                     if isinstance(value, SafeData):
 *                         return value
*/
        }

        /* "django_templates_cythonized/base.py":1788
 *                         return value
 *                     return _fast_escape_raw(value)
 *                 return value             # <<<<<<<<<<<<<<
 *             # Non-str filter result: fall through
 * 
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_v_value);
        __pyx_r = __pyx_v_value;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1783
 *             func = fi.func
 *             value = func(value)
 *             if isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 if context.autoescape:
 *                     if isinstance(value, SafeData):
*/
      }
    }

    /* "django_templates_cythonized/base.py":1756
 * 
 *     # Apply single filter if present
 *     if n_filters == 1:             # <<<<<<<<<<<<<<
 *         fi: CFilterInfo = filters[0]
 *         fast_code: cython.int = fe._fast_filter
*/
  }

  /* "django_templates_cythonized/base.py":1792
 * 
 *     # Inline render_value_in_context
 *     if isinstance(value, str):             # <<<<<<<<<<<<<<
 *         if context.autoescape:
 *             if isinstance(value, SafeData):
*/
  __pyx_t_5 = PyUnicode_Check(__pyx_v_value); 
  if (__pyx_t_5) {

    /* "django_templates_cythonized/base.py":1793
 *     # Inline render_value_in_context
 *     if isinstance(value, str):
 *         if context.autoescape:             # <<<<<<<<<<<<<<
 *             if isinstance(value, SafeData):
 *                 return value
*/
    if (__pyx_v_context->autoescape) {

      /* "django_templates_cythonized/base.py":1794
 *     if isinstance(value, str):
 *         if context.autoescape:
 *             if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                 return value
 *             return _fast_escape_raw(value)
*/
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_SafeData); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1794, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = PyObject_IsInstance(__pyx_v_value, __pyx_t_7); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 1794, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_5) {

        /* "django_templates_cythonized/base.py":1795
 *         if context.autoescape:
 *             if isinstance(value, SafeData):
 *                 return value             # <<<<<<<<<<<<<<
 *             return _fast_escape_raw(value)
 *         return value
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_v_value);
        __pyx_r = __pyx_v_value;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1794
 *     if isinstance(value, str):
 *         if context.autoescape:
 *             if isinstance(value, SafeData):             # <<<<<<<<<<<<<<
 *                 return value
 *             return _fast_escape_raw(value)
*/
      }

      /* "django_templates_cythonized/base.py":1796
 *             if isinstance(value, SafeData):
 *                 return value
 *             return _fast_escape_raw(value)             # <<<<<<<<<<<<<<
 *         return value
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_7 = __pyx_f_27django_templates_cythonized_4base__fast_escape_raw(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1796, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1793
 *     # Inline render_value_in_context
 *     if isinstance(value, str):
 *         if context.autoescape:             # <<<<<<<<<<<<<<
 *             if isinstance(value, SafeData):
 *                 return value
*/
    }

    /* "django_templates_cythonized/base.py":1797
 *                 return value
 *             return _fast_escape_raw(value)
 *         return value             # <<<<<<<<<<<<<<
 * 
 *     # Int fast path: localized int strings never contain HTML special chars.
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_value);
    __pyx_r = __pyx_v_value;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1792
 * 
 *     # Inline render_value_in_context
 *     if isinstance(value, str):             # <<<<<<<<<<<<<<
 *         if context.autoescape:
 *             if isinstance(value, SafeData):
*/
  }

  /* "django_templates_cythonized/base.py":1800
 * 
 *     # Int fast path: localized int strings never contain HTML special chars.
 *     if isinstance(value, int) and not isinstance(value, bool):             # <<<<<<<<<<<<<<
 *         lang = context._lang
 *         if lang is None:
*/
  __pyx_t_3 = PyLong_Check(__pyx_v_value); 
  if (__pyx_t_3) {
  } else {
    __pyx_t_5 = __pyx_t_3;
    goto __pyx_L23_bool_binop_done;
  }
  __pyx_t_3 = PyBool_Check(__pyx_v_value); 
  __pyx_t_10 = (!__pyx_t_3);
  __pyx_t_5 = __pyx_t_10;
  __pyx_L23_bool_binop_done:;
  if (__pyx_t_5) {

    /* "django_templates_cythonized/base.py":1801
 *     # Int fast path: localized int strings never contain HTML special chars.
 *     if isinstance(value, int) and not isinstance(value, bool):
 *         lang = context._lang             # <<<<<<<<<<<<<<
 *         if lang is None:
 *             from django.utils.translation import get_language
*/
    __pyx_t_7 = __pyx_v_context->_lang;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_v_lang = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "django_templates_cythonized/base.py":1802
 *     if isinstance(value, int) and not isinstance(value, bool):
 *         lang = context._lang
 *         if lang is None:             # <<<<<<<<<<<<<<
 *             from django.utils.translation import get_language
 * 
*/
    __pyx_t_5 = (__pyx_v_lang == Py_None);
    if (__pyx_t_5) {

      /* "django_templates_cythonized/base.py":1803
 *         lang = context._lang
 *         if lang is None:
 *             from django.utils.translation import get_language             # <<<<<<<<<<<<<<
 * 
 *             lang = get_language()
*/
      {
        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
        __pyx_t_11 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_translation, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1803, __pyx_L1_error)
      }
      __pyx_t_7 = __pyx_t_11;
      __Pyx_GOTREF(__pyx_t_7);
      {
        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
        __pyx_t_2 = 0; {
          __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_7, __pyx_imported_names[__pyx_t_2]); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1803, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          switch (__pyx_t_2) {
            case 0:
            __Pyx_INCREF(__pyx_t_9);
            __pyx_v_get_language = __pyx_t_9;
            break;
            default:;
          }
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "django_templates_cythonized/base.py":1805
 *             from django.utils.translation import get_language
 * 
 *             lang = get_language()             # <<<<<<<<<<<<<<
 *             context._lang = lang
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
*/
      __pyx_t_9 = NULL;
      __Pyx_INCREF(__pyx_v_get_language);
      __pyx_t_1 = __pyx_v_get_language; 
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
        assert(__pyx_t_9);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
        __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1805, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_DECREF_SET(__pyx_v_lang, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "django_templates_cythonized/base.py":1806
 * 
 *             lang = get_language()
 *             context._lang = lang             # <<<<<<<<<<<<<<
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
 * 
*/
      __Pyx_INCREF(__pyx_v_lang);
      __Pyx_GIVEREF(__pyx_v_lang);
      __Pyx_GOTREF(__pyx_v_context->_lang);
      __Pyx_DECREF(__pyx_v_context->_lang);
      __pyx_v_context->_lang = __pyx_v_lang;

      /* "django_templates_cythonized/base.py":1802
 *     if isinstance(value, int) and not isinstance(value, bool):
 *         lang = context._lang
 *         if lang is None:             # <<<<<<<<<<<<<<
 *             from django.utils.translation import get_language
 * 
*/
    }

    /* "django_templates_cythonized/base.py":1807
 *             lang = get_language()
 *             context._lang = lang
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)             # <<<<<<<<<<<<<<
 * 
 *     # Float fast path: str(float) produces digits, '.', '-', 'e', '+'
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __pyx_v_context->use_l10n;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_12.__pyx_n = 2;
    __pyx_t_12.use_l10n = __pyx_t_7;
    __pyx_t_12.lang = __pyx_v_lang;
    __pyx_t_1 = __pyx_f_27django_templates_cythonized_7formats_localize(__pyx_v_value, 0, &__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1807, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1800
 * 
 *     # Int fast path: localized int strings never contain HTML special chars.
 *     if isinstance(value, int) and not isinstance(value, bool):             # <<<<<<<<<<<<<<
 *         lang = context._lang
 *         if lang is None:
*/
  }

  /* "django_templates_cythonized/base.py":1811
 *     # Float fast path: str(float) produces digits, '.', '-', 'e', '+'
 *     # None of which are HTML special chars.
 *     if isinstance(value, float):             # <<<<<<<<<<<<<<
 *         lang = context._lang
 *         if lang is None:
*/
  __pyx_t_5 = PyFloat_Check(__pyx_v_value); 
  if (__pyx_t_5) {

    /* "django_templates_cythonized/base.py":1812
 *     # None of which are HTML special chars.
 *     if isinstance(value, float):
 *         lang = context._lang             # <<<<<<<<<<<<<<
 *         if lang is None:
 *             from django.utils.translation import get_language
*/
    __pyx_t_1 = __pyx_v_context->_lang;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_lang = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "django_templates_cythonized/base.py":1813
 *     if isinstance(value, float):
 *         lang = context._lang
 *         if lang is None:             # <<<<<<<<<<<<<<
 *             from django.utils.translation import get_language
 * 
*/
    __pyx_t_5 = (__pyx_v_lang == Py_None);
    if (__pyx_t_5) {

      /* "django_templates_cythonized/base.py":1814
 *         lang = context._lang
 *         if lang is None:
 *             from django.utils.translation import get_language             # <<<<<<<<<<<<<<
 * 
 *             lang = get_language()
*/
      {
        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
        __pyx_t_11 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_translation, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1814, __pyx_L1_error)
      }
      __pyx_t_1 = __pyx_t_11;
      __Pyx_GOTREF(__pyx_t_1);
      {
        PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_language};
        __pyx_t_2 = 0; {
          __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_1, __pyx_imported_names[__pyx_t_2]); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1814, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          switch (__pyx_t_2) {
            case 0:
            __Pyx_INCREF(__pyx_t_7);
            __pyx_v_get_language = __pyx_t_7;
            break;
            default:;
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":1816
 *             from django.utils.translation import get_language
 * 
 *             lang = get_language()             # <<<<<<<<<<<<<<
 *             context._lang = lang
 *         if _float_is_str_fast(lang):
*/
      __pyx_t_7 = NULL;
      __Pyx_INCREF(__pyx_v_get_language);
      __pyx_t_9 = __pyx_v_get_language; 
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
        assert(__pyx_t_7);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1816, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF_SET(__pyx_v_lang, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":1817
 * 
 *             lang = get_language()
 *             context._lang = lang             # <<<<<<<<<<<<<<
 *         if _float_is_str_fast(lang):
 *             return str(value)
*/
      __Pyx_INCREF(__pyx_v_lang);
      __Pyx_GIVEREF(__pyx_v_lang);
      __Pyx_GOTREF(__pyx_v_context->_lang);
      __Pyx_DECREF(__pyx_v_context->_lang);
      __pyx_v_context->_lang = __pyx_v_lang;

      /* "django_templates_cythonized/base.py":1813
 *     if isinstance(value, float):
 *         lang = context._lang
 *         if lang is None:             # <<<<<<<<<<<<<<
 *             from django.utils.translation import get_language
 * 
*/
    }

    /* "django_templates_cythonized/base.py":1818
 *             lang = get_language()
 *             context._lang = lang
 *         if _float_is_str_fast(lang):             # <<<<<<<<<<<<<<
 *             return str(value)
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
*/
    __pyx_t_5 = __pyx_f_27django_templates_cythonized_7formats__float_is_str_fast(__pyx_v_lang); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1818, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "django_templates_cythonized/base.py":1819
 *             context._lang = lang
 *         if _float_is_str_fast(lang):
 *             return str(value)             # <<<<<<<<<<<<<<
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1819, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1818
 *             lang = get_language()
 *             context._lang = lang
 *         if _float_is_str_fast(lang):             # <<<<<<<<<<<<<<
 *             return str(value)
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)
*/
    }

    /* "django_templates_cythonized/base.py":1820
 *         if _float_is_str_fast(lang):
 *             return str(value)
 *         return localize(value, use_l10n=context.use_l10n, lang=lang)             # <<<<<<<<<<<<<<
 * 
 *     # Non-string, non-int, non-float: delegate to render_value_in_context
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_v_context->use_l10n;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_12.__pyx_n = 2;
    __pyx_t_12.use_l10n = __pyx_t_1;
    __pyx_t_12.lang = __pyx_v_lang;
    __pyx_t_9 = __pyx_f_27django_templates_cythonized_7formats_localize(__pyx_v_value, 0, &__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_9;
    __pyx_t_9 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1811
 *     # Float fast path: str(float) produces digits, '.', '-', 'e', '+'
 *     # None of which are HTML special chars.
 *     if isinstance(value, float):             # <<<<<<<<<<<<<<
 *         lang = context._lang
 *         if lang is None:
*/
  }

  /* "django_templates_cythonized/base.py":1823
 * 
 *     # Non-string, non-int, non-float: delegate to render_value_in_context
 *     return render_value_in_context(value, context)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = __pyx_f_27django_templates_cythonized_4base_render_value_in_context(__pyx_v_value, __pyx_v_context, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1742
 * 
 * 
 * @cython.wraparound(False)             # <<<<<<<<<<<<<<
 * def _render_var_with_value(fe: FilterExpression, value, context: Context):
 *     """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("django_templates_cythonized.base._render_var_with_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_filters);
  __Pyx_XDECREF((PyObject *)__pyx_v_fi);
  __Pyx_XDECREF(__pyx_v_f_args);
  __Pyx_XDECREF(__pyx_v_func);
  __Pyx_XDECREF(__pyx_v_lang);
  __Pyx_XDECREF(__pyx_v_get_language);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1829
 *     child_nodelists = ()
 * 
 *     def __init__(self, filter_expression):             # <<<<<<<<<<<<<<
 *         self.filter_expression = filter_expression
 * 
*/

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_12VariableNode_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_12VariableNode_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_filter_expression = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_filter_expression,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1829, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1829, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1829, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 1829, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1829, __pyx_L3_error)
    }
    __pyx_v_filter_expression = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1829, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_12VariableNode___init__(((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_v_self), __pyx_v_filter_expression);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_12VariableNode___init__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, PyObject *__pyx_v_filter_expression) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "django_templates_cythonized/base.py":1830
 * 
 *     def __init__(self, filter_expression):
 *         self.filter_expression = filter_expression             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_t_1 = __pyx_v_filter_expression;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression))))) __PYX_ERR(0, 1830, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->filter_expression);
  __Pyx_DECREF((PyObject *)__pyx_v_self->filter_expression);
  __pyx_v_self->filter_expression = ((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "django_templates_cythonized/base.py":1829
 *     child_nodelists = ()
 * 
 *     def __init__(self, filter_expression):             # <<<<<<<<<<<<<<
 *         self.filter_expression = filter_expression
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1832
 *         self.filter_expression = filter_expression
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<Variable Node: %s>" % self.filter_expression
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_3__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_3__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_12VariableNode_2__repr__(((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_2__repr__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "django_templates_cythonized/base.py":1833
 * 
 *     def __repr__(self):
 *         return "<Variable Node: %s>" % self.filter_expression             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Variable_Node_s, ((PyObject *)__pyx_v_self->filter_expression)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1832
 *         self.filter_expression = filter_expression
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<Variable Node: %s>" % self.filter_expression
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1835
 *         return "<Variable Node: %s>" % self.filter_expression
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         try:
*/

static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_5render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_27django_templates_cythonized_4base_12VariableNode_render(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_output = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_render_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1835, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_27django_templates_cythonized_4base_12VariableNode_5render)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_context)};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1835, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "django_templates_cythonized/base.py":1837
 *     @cython.ccall
 *     def render(self, context: Context):
 *         try:             # <<<<<<<<<<<<<<
 *             output = self.filter_expression.resolve(context)
 *         except UnicodeDecodeError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    /*try:*/ {

      /* "django_templates_cythonized/base.py":1838
 *     def render(self, context: Context):
 *         try:
 *             output = self.filter_expression.resolve(context)             # <<<<<<<<<<<<<<
 *         except UnicodeDecodeError:
 *             # Unicode conversion can fail sometimes for reasons out of our
*/
      __pyx_t_1 = ((struct __pyx_vtabstruct_27django_templates_cythonized_4base_FilterExpression *)__pyx_v_self->filter_expression->__pyx_vtab)->resolve(__pyx_v_self->filter_expression, __pyx_v_context, 0, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1838, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_output = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "django_templates_cythonized/base.py":1837
 *     @cython.ccall
 *     def render(self, context: Context):
 *         try:             # <<<<<<<<<<<<<<
 *             output = self.filter_expression.resolve(context)
 *         except UnicodeDecodeError:
*/
    }
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "django_templates_cythonized/base.py":1839
 *         try:
 *             output = self.filter_expression.resolve(context)
 *         except UnicodeDecodeError:             # <<<<<<<<<<<<<<
 *             # Unicode conversion can fail sometimes for reasons out of our
 *             # control (e.g. exception rendering). In that case, we fail
*/
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_UnicodeDecodeError))));
    if (__pyx_t_9) {
      __Pyx_ErrRestore(0,0,0);

      /* "django_templates_cythonized/base.py":1843
 *             # control (e.g. exception rendering). In that case, we fail
 *             # quietly.
 *             return ""             # <<<<<<<<<<<<<<
 *         return render_value_in_context(output, context)
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__7);
      __pyx_r = __pyx_mstate_global->__pyx_kp_u__7;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "django_templates_cythonized/base.py":1837
 *     @cython.ccall
 *     def render(self, context: Context):
 *         try:             # <<<<<<<<<<<<<<
 *             output = self.filter_expression.resolve(context)
 *         except UnicodeDecodeError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L1_error;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L0;
    __pyx_L8_try_end:;
  }

  /* "django_templates_cythonized/base.py":1844
 *             # quietly.
 *             return ""
 *         return render_value_in_context(output, context)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_render_value_in_context(__pyx_v_output, __pyx_v_context, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1835
 *         return "<Variable Node: %s>" % self.filter_expression
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         try:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_output);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_5render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_12VariableNode_5render = {"render", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_12VariableNode_5render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_5render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1835, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1835, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "render", 0) < (0)) __PYX_ERR(0, 1835, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, i); __PYX_ERR(0, 1835, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1835, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_27django_templates_cythonized_7context_Context *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1835, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_7context_Context, 0, "context", 0))) __PYX_ERR(0, 1836, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_12VariableNode_4render(((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_4render(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, struct __pyx_obj_27django_templates_cythonized_7context_Context *__pyx_v_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_27django_templates_cythonized_4base_12VariableNode_render(__pyx_v_self, __pyx_v_context, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.pxd":53
 * 
 * cdef class VariableNode(Node):
 *     cdef public FilterExpression filter_expression             # <<<<<<<<<<<<<<
 *     cpdef render(self, Context context)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_17filter_expression_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_17filter_expression_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_12VariableNode_17filter_expression___get__(((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_17filter_expression___get__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->filter_expression);
  __pyx_r = ((PyObject *)__pyx_v_self->filter_expression);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_12VariableNode_17filter_expression_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_12VariableNode_17filter_expression_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_12VariableNode_17filter_expression_2__set__(((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_12VariableNode_17filter_expression_2__set__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression))))) __PYX_ERR(1, 53, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->filter_expression);
  __Pyx_DECREF((PyObject *)__pyx_v_self->filter_expression);
  __pyx_v_self->filter_expression = ((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.filter_expression.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_27django_templates_cythonized_4base_12VariableNode_17filter_expression_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_27django_templates_cythonized_4base_12VariableNode_17filter_expression_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_12VariableNode_17filter_expression_4__del__(((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_27django_templates_cythonized_4base_12VariableNode_17filter_expression_4__del__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->filter_expression);
  __Pyx_DECREF((PyObject *)__pyx_v_self->filter_expression);
  __pyx_v_self->filter_expression = ((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_12VariableNode_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_12VariableNode_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_12VariableNode_6__reduce_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_6__reduce_cython__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.filter_expression, self.origin, self.token)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_v_self->filter_expression);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->filter_expression);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->filter_expression)) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->__pyx_base.origin) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.token);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.token);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_self->__pyx_base.token) != (0)) __PYX_ERR(2, 5, __pyx_L1_error);
  __pyx_v_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.filter_expression, self.origin, self.token)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = (self.filter_expression, self.origin, self.token)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.filter_expression is not None or self.origin is not None or self.token is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.filter_expression, self.origin, self.token)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.filter_expression is not None or self.origin is not None or self.token is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, None), state
*/
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->filter_expression) != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->__pyx_base.origin != Py_None);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->__pyx_base.token != Py_None);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L6_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_2;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.filter_expression is not None or self.origin is not None or self.token is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.filter_expression is not None or self.origin is not None or self.token is not None
 *     if use_setstate:
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_VariableNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_245643908);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_245643908);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_245643908) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.filter_expression is not None or self.origin is not None or self.token is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, None), state
 *     else:
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_VariableNode__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_VariableNode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_245643908);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_245643908);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_245643908) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(2, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_VariableNode__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_12VariableNode_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_12VariableNode_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12VariableNode_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_12VariableNode_8__setstate_cython__(((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_12VariableNode_8__setstate_cython__(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_VariableNode__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(2, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_VariableNode__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_VariableNode__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.VariableNode.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "django_templates_cythonized/base.py":1851
 * 
 * 
 * def token_kwargs(bits, parser, support_legacy=False):             # <<<<<<<<<<<<<<
 *     """
 *     Parse token keyword arguments and return a dictionary of the arguments
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8token_kwargs(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_27django_templates_cythonized_4base_7token_kwargs, "\n    Parse token keyword arguments and return a dictionary of the arguments\n    retrieved from the ``bits`` token list.\n\n    `bits` is a list containing the remainder of the token (split by spaces)\n    that is to be checked for arguments. Valid arguments are removed from this\n    list.\n\n    `support_legacy` - if True, the legacy format ``1 as foo`` is accepted.\n    Otherwise, only the standard ``foo=1`` format is allowed.\n\n    There is no requirement for all remaining token ``bits`` to be keyword\n    arguments, so return the dictionary as soon as an invalid argument format\n    is reached.\n    ");
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_8token_kwargs = {"token_kwargs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8token_kwargs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_7token_kwargs};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_8token_kwargs(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_bits = 0;
  PyObject *__pyx_v_parser = 0;
  PyObject *__pyx_v_support_legacy = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("token_kwargs (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_bits,&__pyx_mstate_global->__pyx_n_u_parser,&__pyx_mstate_global->__pyx_n_u_support_legacy,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1851, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1851, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1851, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1851, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "token_kwargs", 0) < (0)) __PYX_ERR(0, 1851, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("token_kwargs", 0, 2, 3, i); __PYX_ERR(0, 1851, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1851, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1851, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1851, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_bits = values[0];
    __pyx_v_parser = values[1];
    __pyx_v_support_legacy = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("token_kwargs", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 1851, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.token_kwargs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_7token_kwargs(__pyx_self, __pyx_v_bits, __pyx_v_parser, __pyx_v_support_legacy);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_7token_kwargs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_bits, PyObject *__pyx_v_parser, PyObject *__pyx_v_support_legacy) {
  PyObject *__pyx_v_match = NULL;
  PyObject *__pyx_v_kwarg_format = NULL;
  PyObject *__pyx_v_kwargs = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("token_kwargs", 0);

  /* "django_templates_cythonized/base.py":1867
 *     is reached.
 *     """
 *     if not bits:             # <<<<<<<<<<<<<<
 *         return {}
 *     match = kwarg_re.match(bits[0])
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_bits); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1867, __pyx_L1_error)
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "django_templates_cythonized/base.py":1868
 *     """
 *     if not bits:
 *         return {}             # <<<<<<<<<<<<<<
 *     match = kwarg_re.match(bits[0])
 *     kwarg_format = match and match[1]
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "django_templates_cythonized/base.py":1867
 *     is reached.
 *     """
 *     if not bits:             # <<<<<<<<<<<<<<
 *         return {}
 *     match = kwarg_re.match(bits[0])
*/
  }

  /* "django_templates_cythonized/base.py":1869
 *     if not bits:
 *         return {}
 *     match = kwarg_re.match(bits[0])             # <<<<<<<<<<<<<<
 *     kwarg_format = match and match[1]
 *     if not kwarg_format:
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_kwarg_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_match); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_bits, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
    __pyx_t_7 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1869, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_v_match = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "django_templates_cythonized/base.py":1870
 *         return {}
 *     match = kwarg_re.match(bits[0])
 *     kwarg_format = match and match[1]             # <<<<<<<<<<<<<<
 *     if not kwarg_format:
 *         if not support_legacy:
*/
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_match); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1870, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __Pyx_INCREF(__pyx_v_match);
    __pyx_t_3 = __pyx_v_match;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_match, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_3 = __pyx_t_6;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_L4_bool_binop_done:;
  __pyx_v_kwarg_format = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "django_templates_cythonized/base.py":1871
 *     match = kwarg_re.match(bits[0])
 *     kwarg_format = match and match[1]
 *     if not kwarg_format:             # <<<<<<<<<<<<<<
 *         if not support_legacy:
 *             return {}
*/
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_kwarg_format); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1871, __pyx_L1_error)
  __pyx_t_1 = (!__pyx_t_2);
  if (__pyx_t_1) {

    /* "django_templates_cythonized/base.py":1872
 *     kwarg_format = match and match[1]
 *     if not kwarg_format:
 *         if not support_legacy:             # <<<<<<<<<<<<<<
 *             return {}
 *         if len(bits) < 3 or bits[1] != "as":
*/
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_support_legacy); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1872, __pyx_L1_error)
    __pyx_t_2 = (!__pyx_t_1);
    if (__pyx_t_2) {

      /* "django_templates_cythonized/base.py":1873
 *     if not kwarg_format:
 *         if not support_legacy:
 *             return {}             # <<<<<<<<<<<<<<
 *         if len(bits) < 3 or bits[1] != "as":
 *             return {}
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1873, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1872
 *     kwarg_format = match and match[1]
 *     if not kwarg_format:
 *         if not support_legacy:             # <<<<<<<<<<<<<<
 *             return {}
 *         if len(bits) < 3 or bits[1] != "as":
*/
    }

    /* "django_templates_cythonized/base.py":1874
 *         if not support_legacy:
 *             return {}
 *         if len(bits) < 3 or bits[1] != "as":             # <<<<<<<<<<<<<<
 *             return {}
 * 
*/
    __pyx_t_8 = PyObject_Length(__pyx_v_bits); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1874, __pyx_L1_error)
    __pyx_t_1 = (__pyx_t_8 < 3);
    if (!__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_bits, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1874, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_as, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1874, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_2 = __pyx_t_1;
    __pyx_L9_bool_binop_done:;
    if (__pyx_t_2) {

      /* "django_templates_cythonized/base.py":1875
 *             return {}
 *         if len(bits) < 3 or bits[1] != "as":
 *             return {}             # <<<<<<<<<<<<<<
 * 
 *     kwargs = {}
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1875, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;

      /* "django_templates_cythonized/base.py":1874
 *         if not support_legacy:
 *             return {}
 *         if len(bits) < 3 or bits[1] != "as":             # <<<<<<<<<<<<<<
 *             return {}
 * 
*/
    }

    /* "django_templates_cythonized/base.py":1871
 *     match = kwarg_re.match(bits[0])
 *     kwarg_format = match and match[1]
 *     if not kwarg_format:             # <<<<<<<<<<<<<<
 *         if not support_legacy:
 *             return {}
*/
  }

  /* "django_templates_cythonized/base.py":1877
 *             return {}
 * 
 *     kwargs = {}             # <<<<<<<<<<<<<<
 *     while bits:
 *         if kwarg_format:
*/
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_kwargs = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "django_templates_cythonized/base.py":1878
 * 
 *     kwargs = {}
 *     while bits:             # <<<<<<<<<<<<<<
 *         if kwarg_format:
 *             match = kwarg_re.match(bits[0])
*/
  while (1) {
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_bits); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1878, __pyx_L1_error)
    if (!__pyx_t_2) break;

    /* "django_templates_cythonized/base.py":1879
 *     kwargs = {}
 *     while bits:
 *         if kwarg_format:             # <<<<<<<<<<<<<<
 *             match = kwarg_re.match(bits[0])
 *             if not match or not match[1]:
*/
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_kwarg_format); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1879, __pyx_L1_error)
    if (__pyx_t_2) {

      /* "django_templates_cythonized/base.py":1880
 *     while bits:
 *         if kwarg_format:
 *             match = kwarg_re.match(bits[0])             # <<<<<<<<<<<<<<
 *             if not match or not match[1]:
 *                 return kwargs
*/
      __pyx_t_6 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_kwarg_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_match); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_bits, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
        assert(__pyx_t_6);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
        __pyx_t_7 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
        __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1880, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF_SET(__pyx_v_match, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "django_templates_cythonized/base.py":1881
 *         if kwarg_format:
 *             match = kwarg_re.match(bits[0])
 *             if not match or not match[1]:             # <<<<<<<<<<<<<<
 *                 return kwargs
 *             key, value = match.groups()
*/
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_match); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1881, __pyx_L1_error)
      __pyx_t_9 = (!__pyx_t_1);
      if (!__pyx_t_9) {
      } else {
        __pyx_t_2 = __pyx_t_9;
        goto __pyx_L15_bool_binop_done;
      }
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_match, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1881, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 1881, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_1 = (!__pyx_t_9);
      __pyx_t_2 = __pyx_t_1;
      __pyx_L15_bool_binop_done:;
      if (__pyx_t_2) {

        /* "django_templates_cythonized/base.py":1882
 *             match = kwarg_re.match(bits[0])
 *             if not match or not match[1]:
 *                 return kwargs             # <<<<<<<<<<<<<<
 *             key, value = match.groups()
 *             del bits[:1]
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_v_kwargs);
        __pyx_r = __pyx_v_kwargs;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1881
 *         if kwarg_format:
 *             match = kwarg_re.match(bits[0])
 *             if not match or not match[1]:             # <<<<<<<<<<<<<<
 *                 return kwargs
 *             key, value = match.groups()
*/
      }

      /* "django_templates_cythonized/base.py":1883
 *             if not match or not match[1]:
 *                 return kwargs
 *             key, value = match.groups()             # <<<<<<<<<<<<<<
 *             del bits[:1]
 *         else:
*/
      __pyx_t_4 = __pyx_v_match;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_7 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_groups, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1883, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 1883, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_4);
          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_5);
        } else {
          __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1883, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_5 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1883, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_5);
        }
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1883, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1883, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1883, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6);
        index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        index = 1; __pyx_t_5 = __pyx_t_10(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L17_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_5);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_6), 2) < (0)) __PYX_ERR(0, 1883, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L18_unpacking_done;
        __pyx_L17_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 1883, __pyx_L1_error)
        __pyx_L18_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_4);
      __pyx_t_4 = 0;
      __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "django_templates_cythonized/base.py":1884
 *                 return kwargs
 *             key, value = match.groups()
 *             del bits[:1]             # <<<<<<<<<<<<<<
 *         else:
 *             if len(bits) < 3 or bits[1] != "as":
*/
      if (__Pyx_PyObject_DelSlice(__pyx_v_bits, 0, 1, NULL, NULL, &__pyx_mstate_global->__pyx_slice[6], 0, 1, 1) < (0)) __PYX_ERR(0, 1884, __pyx_L1_error)

      /* "django_templates_cythonized/base.py":1879
 *     kwargs = {}
 *     while bits:
 *         if kwarg_format:             # <<<<<<<<<<<<<<
 *             match = kwarg_re.match(bits[0])
 *             if not match or not match[1]:
*/
      goto __pyx_L13;
    }

    /* "django_templates_cythonized/base.py":1886
 *             del bits[:1]
 *         else:
 *             if len(bits) < 3 or bits[1] != "as":             # <<<<<<<<<<<<<<
 *                 return kwargs
 *             key, value = bits[2], bits[0]
*/
    /*else*/ {
      __pyx_t_8 = PyObject_Length(__pyx_v_bits); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1886, __pyx_L1_error)
      __pyx_t_1 = (__pyx_t_8 < 3);
      if (!__pyx_t_1) {
      } else {
        __pyx_t_2 = __pyx_t_1;
        goto __pyx_L20_bool_binop_done;
      }
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_bits, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1886, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_as, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1886, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_2 = __pyx_t_1;
      __pyx_L20_bool_binop_done:;
      if (__pyx_t_2) {

        /* "django_templates_cythonized/base.py":1887
 *         else:
 *             if len(bits) < 3 or bits[1] != "as":
 *                 return kwargs             # <<<<<<<<<<<<<<
 *             key, value = bits[2], bits[0]
 *             del bits[:3]
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_v_kwargs);
        __pyx_r = __pyx_v_kwargs;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1886
 *             del bits[:1]
 *         else:
 *             if len(bits) < 3 or bits[1] != "as":             # <<<<<<<<<<<<<<
 *                 return kwargs
 *             key, value = bits[2], bits[0]
*/
      }

      /* "django_templates_cythonized/base.py":1888
 *             if len(bits) < 3 or bits[1] != "as":
 *                 return kwargs
 *             key, value = bits[2], bits[0]             # <<<<<<<<<<<<<<
 *             del bits[:3]
 *         kwargs[key] = parser.compile_filter(value)
*/
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_bits, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1888, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_bits, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1888, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3);
      __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "django_templates_cythonized/base.py":1889
 *                 return kwargs
 *             key, value = bits[2], bits[0]
 *             del bits[:3]             # <<<<<<<<<<<<<<
 *         kwargs[key] = parser.compile_filter(value)
 *         if bits and not kwarg_format:
*/
      if (__Pyx_PyObject_DelSlice(__pyx_v_bits, 0, 3, NULL, NULL, &__pyx_mstate_global->__pyx_slice[7], 0, 1, 1) < (0)) __PYX_ERR(0, 1889, __pyx_L1_error)
    }
    __pyx_L13:;

    /* "django_templates_cythonized/base.py":1890
 *             key, value = bits[2], bits[0]
 *             del bits[:3]
 *         kwargs[key] = parser.compile_filter(value)             # <<<<<<<<<<<<<<
 *         if bits and not kwarg_format:
 *             if bits[0] != "and":
*/
    __pyx_t_3 = __pyx_v_parser;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_value};
      __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_compile_filter, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1890, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    if (unlikely((PyDict_SetItem(__pyx_v_kwargs, __pyx_v_key, __pyx_t_5) < 0))) __PYX_ERR(0, 1890, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "django_templates_cythonized/base.py":1891
 *             del bits[:3]
 *         kwargs[key] = parser.compile_filter(value)
 *         if bits and not kwarg_format:             # <<<<<<<<<<<<<<
 *             if bits[0] != "and":
 *                 return kwargs
*/
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_bits); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1891, __pyx_L1_error)
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L23_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_kwarg_format); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1891, __pyx_L1_error)
    __pyx_t_9 = (!__pyx_t_1);
    __pyx_t_2 = __pyx_t_9;
    __pyx_L23_bool_binop_done:;
    if (__pyx_t_2) {

      /* "django_templates_cythonized/base.py":1892
 *         kwargs[key] = parser.compile_filter(value)
 *         if bits and not kwarg_format:
 *             if bits[0] != "and":             # <<<<<<<<<<<<<<
 *                 return kwargs
 *             del bits[:1]
*/
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_bits, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 0, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_and, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1892, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_2) {

        /* "django_templates_cythonized/base.py":1893
 *         if bits and not kwarg_format:
 *             if bits[0] != "and":
 *                 return kwargs             # <<<<<<<<<<<<<<
 *             del bits[:1]
 *     return kwargs
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_v_kwargs);
        __pyx_r = __pyx_v_kwargs;
        goto __pyx_L0;

        /* "django_templates_cythonized/base.py":1892
 *         kwargs[key] = parser.compile_filter(value)
 *         if bits and not kwarg_format:
 *             if bits[0] != "and":             # <<<<<<<<<<<<<<
 *                 return kwargs
 *             del bits[:1]
*/
      }

      /* "django_templates_cythonized/base.py":1894
 *             if bits[0] != "and":
 *                 return kwargs
 *             del bits[:1]             # <<<<<<<<<<<<<<
 *     return kwargs
*/
      if (__Pyx_PyObject_DelSlice(__pyx_v_bits, 0, 1, NULL, NULL, &__pyx_mstate_global->__pyx_slice[6], 0, 1, 1) < (0)) __PYX_ERR(0, 1894, __pyx_L1_error)

      /* "django_templates_cythonized/base.py":1891
 *             del bits[:3]
 *         kwargs[key] = parser.compile_filter(value)
 *         if bits and not kwarg_format:             # <<<<<<<<<<<<<<
 *             if bits[0] != "and":
 *                 return kwargs
*/
    }
  }

  /* "django_templates_cythonized/base.py":1895
 *                 return kwargs
 *             del bits[:1]
 *     return kwargs             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_r = __pyx_v_kwargs;
  goto __pyx_L0;

  /* "django_templates_cythonized/base.py":1851
 * 
 * 
 * def token_kwargs(bits, parser, support_legacy=False):             # <<<<<<<<<<<<<<
 *     """
 *     Parse token keyword arguments and return a dictionary of the arguments
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("django_templates_cythonized.base.token_kwargs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_match);
  __Pyx_XDECREF(__pyx_v_kwarg_format);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Template(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd078213, 0xbdfb5a7, 0xd02afb2, b'engine, extra_data, name, nodelist, origin, source')
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_10__pyx_unpickle_Template(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_10__pyx_unpickle_Template = {"__pyx_unpickle_Template", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_10__pyx_unpickle_Template, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_10__pyx_unpickle_Template(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Template (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Template", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Template", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Template", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_Template", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_9__pyx_unpickle_Template(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_9__pyx_unpickle_Template(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Template", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Template(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd078213, 0xbdfb5a7, 0xd02afb2, b'engine, extra_data, name, nodelist, origin, source')             # <<<<<<<<<<<<<<
 *     __pyx_result = Template.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xd078213, 0xbdfb5a7, 0xd02afb2, __pyx_k_engine_extra_data_name_nodelist); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd078213, 0xbdfb5a7, 0xd02afb2, b'engine, extra_data, name, nodelist, origin, source')
 *     __pyx_result = Template.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Template__set_state(<Template> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd078213, 0xbdfb5a7, 0xd02afb2, b'engine, extra_data, name, nodelist, origin, source')
 *     __pyx_result = Template.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Template__set_state(<Template> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Template.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Template__set_state(<Template> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Template__set_state(Template __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(2, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Template__set_state(((struct __pyx_obj_27django_templates_cythonized_4base_Template *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd078213, 0xbdfb5a7, 0xd02afb2, b'engine, extra_data, name, nodelist, origin, source')
 *     __pyx_result = Template.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Template__set_state(<Template> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Template__set_state(<Template> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Template__set_state(Template __pyx_result, __pyx_state: tuple):
 *     __pyx_result.engine = __pyx_state[0]; __pyx_result.extra_data = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.source = __pyx_state[5]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Template(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd078213, 0xbdfb5a7, 0xd02afb2, b'engine, extra_data, name, nodelist, origin, source')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_Template", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Template__set_state(<Template> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Template__set_state(Template __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.engine = __pyx_state[0]; __pyx_result.extra_data = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.source = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Template__set_state(struct __pyx_obj_27django_templates_cythonized_4base_Template *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Template__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Template__set_state(Template __pyx_result, __pyx_state: tuple):
 *     __pyx_result.engine = __pyx_state[0]; __pyx_result.extra_data = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.source = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->engine);
  __Pyx_DECREF(__pyx_v___pyx_result->engine);
  __pyx_v___pyx_result->engine = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 1);
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(2, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->extra_data);
  __Pyx_DECREF(__pyx_v___pyx_result->extra_data);
  __pyx_v___pyx_result->extra_data = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 2);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->name);
  __Pyx_DECREF(__pyx_v___pyx_result->name);
  __pyx_v___pyx_result->name = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 3);
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList))))) __PYX_ERR(2, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->nodelist);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->nodelist);
  __pyx_v___pyx_result->nodelist = ((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 4);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->origin);
  __Pyx_DECREF(__pyx_v___pyx_result->origin);
  __pyx_v___pyx_result->origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 5);
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(2, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->source);
  __Pyx_DECREF(__pyx_v___pyx_result->source);
  __pyx_v___pyx_result->source = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Template__set_state(Template __pyx_result, __pyx_state: tuple):
 *     __pyx_result.engine = __pyx_state[0]; __pyx_result.extra_data = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.source = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)             # <<<<<<<<<<<<<<
*/
  __pyx_t_2 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 6); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Template__set_state(<Template> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Template__set_state(Template __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.engine = __pyx_state[0]; __pyx_result.extra_data = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.source = __pyx_state[5]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 6)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_Template__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PartialTemplate(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x56e67d7, 0x8320296, 0xe1a451e, b'_source_end, _source_start, name, nodelist, origin')
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12__pyx_unpickle_PartialTemplate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_12__pyx_unpickle_PartialTemplate = {"__pyx_unpickle_PartialTemplate", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_12__pyx_unpickle_PartialTemplate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_12__pyx_unpickle_PartialTemplate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PartialTemplate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_PartialTemplate", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PartialTemplate", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PartialTemplate", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_PartialTemplate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_11__pyx_unpickle_PartialTemplate(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_11__pyx_unpickle_PartialTemplate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PartialTemplate", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_PartialTemplate(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x56e67d7, 0x8320296, 0xe1a451e, b'_source_end, _source_start, name, nodelist, origin')             # <<<<<<<<<<<<<<
 *     __pyx_result = PartialTemplate.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x56e67d7, 0x8320296, 0xe1a451e, __pyx_k_source_end__source_start_name_n); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x56e67d7, 0x8320296, 0xe1a451e, b'_source_end, _source_start, name, nodelist, origin')
 *     __pyx_result = PartialTemplate.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PartialTemplate__set_state(<PartialTemplate> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x56e67d7, 0x8320296, 0xe1a451e, b'_source_end, _source_start, name, nodelist, origin')
 *     __pyx_result = PartialTemplate.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PartialTemplate__set_state(<PartialTemplate> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = PartialTemplate.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PartialTemplate__set_state(<PartialTemplate> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PartialTemplate__set_state(PartialTemplate __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(2, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_PartialTemplate__set_state(((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x56e67d7, 0x8320296, 0xe1a451e, b'_source_end, _source_start, name, nodelist, origin')
 *     __pyx_result = PartialTemplate.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PartialTemplate__set_state(<PartialTemplate> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PartialTemplate__set_state(<PartialTemplate> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PartialTemplate__set_state(PartialTemplate __pyx_result, __pyx_state: tuple):
 *     __pyx_result._source_end = __pyx_state[0]; __pyx_result._source_start = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_PartialTemplate(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x56e67d7, 0x8320296, 0xe1a451e, b'_source_end, _source_start, name, nodelist, origin')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_PartialTemplate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PartialTemplate__set_state(<PartialTemplate> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PartialTemplate__set_state(PartialTemplate __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._source_end = __pyx_state[0]; __pyx_result._source_start = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_PartialTemplate__set_state(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PartialTemplate__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PartialTemplate__set_state(PartialTemplate __pyx_result, __pyx_state: tuple):
 *     __pyx_result._source_end = __pyx_state[0]; __pyx_result._source_start = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_source_end);
  __Pyx_DECREF(__pyx_v___pyx_result->_source_end);
  __pyx_v___pyx_result->_source_end = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_source_start);
  __Pyx_DECREF(__pyx_v___pyx_result->_source_start);
  __pyx_v___pyx_result->_source_start = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 2);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->name);
  __Pyx_DECREF(__pyx_v___pyx_result->name);
  __pyx_v___pyx_result->name = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 3);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->nodelist);
  __Pyx_DECREF(__pyx_v___pyx_result->nodelist);
  __pyx_v___pyx_result->nodelist = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 4);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->origin);
  __Pyx_DECREF(__pyx_v___pyx_result->origin);
  __pyx_v___pyx_result->origin = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PartialTemplate__set_state(PartialTemplate __pyx_result, __pyx_state: tuple):
 *     __pyx_result._source_end = __pyx_state[0]; __pyx_result._source_start = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_2 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_PartialTemplate__set_state(<PartialTemplate> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PartialTemplate__set_state(PartialTemplate __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._source_end = __pyx_state[0]; __pyx_result._source_start = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.nodelist = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_PartialTemplate__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_CFilterInfo(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x1ad86f3, 0x60c46bb, 0xd932f26, b'args, expects_localtime, func, is_safe, needs_autoescape')
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_14__pyx_unpickle_CFilterInfo(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_14__pyx_unpickle_CFilterInfo = {"__pyx_unpickle_CFilterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_14__pyx_unpickle_CFilterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_14__pyx_unpickle_CFilterInfo(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_CFilterInfo (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_CFilterInfo", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CFilterInfo", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CFilterInfo", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_CFilterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_13__pyx_unpickle_CFilterInfo(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_13__pyx_unpickle_CFilterInfo(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_CFilterInfo", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_CFilterInfo(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x1ad86f3, 0x60c46bb, 0xd932f26, b'args, expects_localtime, func, is_safe, needs_autoescape')             # <<<<<<<<<<<<<<
 *     __pyx_result = CFilterInfo.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x1ad86f3, 0x60c46bb, 0xd932f26, __pyx_k_args_expects_localtime_func_is_s); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x1ad86f3, 0x60c46bb, 0xd932f26, b'args, expects_localtime, func, is_safe, needs_autoescape')
 *     __pyx_result = CFilterInfo.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CFilterInfo__set_state(<CFilterInfo> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x1ad86f3, 0x60c46bb, 0xd932f26, b'args, expects_localtime, func, is_safe, needs_autoescape')
 *     __pyx_result = CFilterInfo.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_CFilterInfo__set_state(<CFilterInfo> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = CFilterInfo.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CFilterInfo__set_state(<CFilterInfo> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_CFilterInfo__set_state(CFilterInfo __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(2, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_CFilterInfo__set_state(((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x1ad86f3, 0x60c46bb, 0xd932f26, b'args, expects_localtime, func, is_safe, needs_autoescape')
 *     __pyx_result = CFilterInfo.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_CFilterInfo__set_state(<CFilterInfo> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CFilterInfo__set_state(<CFilterInfo> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_CFilterInfo__set_state(CFilterInfo __pyx_result, __pyx_state: tuple):
 *     __pyx_result.args = __pyx_state[0]; __pyx_result.expects_localtime = __pyx_state[1]; __pyx_result.func = __pyx_state[2]; __pyx_result.is_safe = __pyx_state[3]; __pyx_result.needs_autoescape = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_CFilterInfo(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x1ad86f3, 0x60c46bb, 0xd932f26, b'args, expects_localtime, func, is_safe, needs_autoescape')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_CFilterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_CFilterInfo__set_state(<CFilterInfo> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_CFilterInfo__set_state(CFilterInfo __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.args = __pyx_state[0]; __pyx_result.expects_localtime = __pyx_state[1]; __pyx_result.func = __pyx_state[2]; __pyx_result.is_safe = __pyx_state[3]; __pyx_result.needs_autoescape = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_CFilterInfo__set_state(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_CFilterInfo__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_CFilterInfo__set_state(CFilterInfo __pyx_result, __pyx_state: tuple):
 *     __pyx_result.args = __pyx_state[0]; __pyx_result.expects_localtime = __pyx_state[1]; __pyx_result.func = __pyx_state[2]; __pyx_result.is_safe = __pyx_state[3]; __pyx_result.needs_autoescape = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(2, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->args);
  __Pyx_DECREF(__pyx_v___pyx_result->args);
  __pyx_v___pyx_result->args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 1)); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error)
  __pyx_v___pyx_result->expects_localtime = __pyx_t_2;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 2);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->func);
  __Pyx_DECREF(__pyx_v___pyx_result->func);
  __pyx_v___pyx_result->func = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 3)); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error)
  __pyx_v___pyx_result->is_safe = __pyx_t_2;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 4)); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error)
  __pyx_v___pyx_result->needs_autoescape = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_CFilterInfo__set_state(CFilterInfo __pyx_result, __pyx_state: tuple):
 *     __pyx_result.args = __pyx_state[0]; __pyx_result.expects_localtime = __pyx_state[1]; __pyx_result.func = __pyx_state[2]; __pyx_result.is_safe = __pyx_state[3]; __pyx_result.needs_autoescape = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_CFilterInfo__set_state(<CFilterInfo> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_CFilterInfo__set_state(CFilterInfo __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.args = __pyx_state[0]; __pyx_result.expects_localtime = __pyx_state[1]; __pyx_result.func = __pyx_state[2]; __pyx_result.is_safe = __pyx_state[3]; __pyx_result.needs_autoescape = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_CFilterInfo__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_FilterExpression(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf4795e4, 0xdf0cc41, 0xafbb62c, b'_fast_filter, filters, is_var, token, var')
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16__pyx_unpickle_FilterExpression(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_16__pyx_unpickle_FilterExpression = {"__pyx_unpickle_FilterExpression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_16__pyx_unpickle_FilterExpression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_16__pyx_unpickle_FilterExpression(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_FilterExpression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_FilterExpression", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FilterExpression", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FilterExpression", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_FilterExpression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_15__pyx_unpickle_FilterExpression(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_15__pyx_unpickle_FilterExpression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FilterExpression", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_FilterExpression(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf4795e4, 0xdf0cc41, 0xafbb62c, b'_fast_filter, filters, is_var, token, var')             # <<<<<<<<<<<<<<
 *     __pyx_result = FilterExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xf4795e4, 0xdf0cc41, 0xafbb62c, __pyx_k_fast_filter_filters_is_var_toke); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf4795e4, 0xdf0cc41, 0xafbb62c, b'_fast_filter, filters, is_var, token, var')
 *     __pyx_result = FilterExpression.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FilterExpression__set_state(<FilterExpression> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf4795e4, 0xdf0cc41, 0xafbb62c, b'_fast_filter, filters, is_var, token, var')
 *     __pyx_result = FilterExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FilterExpression__set_state(<FilterExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = FilterExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FilterExpression__set_state(<FilterExpression> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_FilterExpression__set_state(FilterExpression __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(2, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_FilterExpression__set_state(((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf4795e4, 0xdf0cc41, 0xafbb62c, b'_fast_filter, filters, is_var, token, var')
 *     __pyx_result = FilterExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FilterExpression__set_state(<FilterExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FilterExpression__set_state(<FilterExpression> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_FilterExpression__set_state(FilterExpression __pyx_result, __pyx_state: tuple):
 *     __pyx_result._fast_filter = __pyx_state[0]; __pyx_result.filters = __pyx_state[1]; __pyx_result.is_var = __pyx_state[2]; __pyx_result.token = __pyx_state[3]; __pyx_result.var = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_FilterExpression(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xf4795e4, 0xdf0cc41, 0xafbb62c, b'_fast_filter, filters, is_var, token, var')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_FilterExpression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_FilterExpression__set_state(<FilterExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FilterExpression__set_state(FilterExpression __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._fast_filter = __pyx_state[0]; __pyx_result.filters = __pyx_state[1]; __pyx_result.is_var = __pyx_state[2]; __pyx_result.token = __pyx_state[3]; __pyx_result.var = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_FilterExpression__set_state(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FilterExpression__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_FilterExpression__set_state(FilterExpression __pyx_result, __pyx_state: tuple):
 *     __pyx_result._fast_filter = __pyx_state[0]; __pyx_result.filters = __pyx_state[1]; __pyx_result.is_var = __pyx_state[2]; __pyx_result.token = __pyx_state[3]; __pyx_result.var = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_PyLong_As_int(__Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 0)); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error)
  __pyx_v___pyx_result->_fast_filter = __pyx_t_1;
  __pyx_t_2 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 1);
  __Pyx_INCREF(__pyx_t_2);
  if (!(likely(PyList_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_2))) __PYX_ERR(2, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v___pyx_result->filters);
  __Pyx_DECREF(__pyx_v___pyx_result->filters);
  __pyx_v___pyx_result->filters = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 2)); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error)
  __pyx_v___pyx_result->is_var = __pyx_t_3;
  __pyx_t_2 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 3);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v___pyx_result->token);
  __Pyx_DECREF(__pyx_v___pyx_result->token);
  __pyx_v___pyx_result->token = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 4);
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v___pyx_result->var);
  __Pyx_DECREF(__pyx_v___pyx_result->var);
  __pyx_v___pyx_result->var = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_FilterExpression__set_state(FilterExpression __pyx_result, __pyx_state: tuple):
 *     __pyx_result._fast_filter = __pyx_state[0]; __pyx_result.filters = __pyx_state[1]; __pyx_result.is_var = __pyx_state[2]; __pyx_result.token = __pyx_state[3]; __pyx_result.var = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_FilterExpression__set_state(<FilterExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FilterExpression__set_state(FilterExpression __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._fast_filter = __pyx_state[0]; __pyx_result.filters = __pyx_state[1]; __pyx_result.is_var = __pyx_state[2]; __pyx_result.token = __pyx_state[3]; __pyx_result.var = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_FilterExpression__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Variable(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x55e1e17, 0xda50ed1, 0xc57a0f0, b'literal, lookups, message_context, translate, var')
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_18__pyx_unpickle_Variable(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_18__pyx_unpickle_Variable = {"__pyx_unpickle_Variable", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_18__pyx_unpickle_Variable, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_18__pyx_unpickle_Variable(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Variable (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Variable", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Variable", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Variable", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_Variable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_17__pyx_unpickle_Variable(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_17__pyx_unpickle_Variable(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Variable", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Variable(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x55e1e17, 0xda50ed1, 0xc57a0f0, b'literal, lookups, message_context, translate, var')             # <<<<<<<<<<<<<<
 *     __pyx_result = Variable.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x55e1e17, 0xda50ed1, 0xc57a0f0, __pyx_k_literal_lookups_message_context); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x55e1e17, 0xda50ed1, 0xc57a0f0, b'literal, lookups, message_context, translate, var')
 *     __pyx_result = Variable.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Variable__set_state(<Variable> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x55e1e17, 0xda50ed1, 0xc57a0f0, b'literal, lookups, message_context, translate, var')
 *     __pyx_result = Variable.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Variable__set_state(<Variable> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Variable.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Variable__set_state(<Variable> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Variable__set_state(Variable __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(2, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Variable__set_state(((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x55e1e17, 0xda50ed1, 0xc57a0f0, b'literal, lookups, message_context, translate, var')
 *     __pyx_result = Variable.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Variable__set_state(<Variable> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Variable__set_state(<Variable> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Variable__set_state(Variable __pyx_result, __pyx_state: tuple):
 *     __pyx_result.literal = __pyx_state[0]; __pyx_result.lookups = __pyx_state[1]; __pyx_result.message_context = __pyx_state[2]; __pyx_result.translate = __pyx_state[3]; __pyx_result.var = __pyx_state[4]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Variable(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x55e1e17, 0xda50ed1, 0xc57a0f0, b'literal, lookups, message_context, translate, var')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_Variable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Variable__set_state(<Variable> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Variable__set_state(Variable __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.literal = __pyx_state[0]; __pyx_result.lookups = __pyx_state[1]; __pyx_result.message_context = __pyx_state[2]; __pyx_result.translate = __pyx_state[3]; __pyx_result.var = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Variable__set_state(struct __pyx_obj_27django_templates_cythonized_4base_Variable *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Variable__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Variable__set_state(Variable __pyx_result, __pyx_state: tuple):
 *     __pyx_result.literal = __pyx_state[0]; __pyx_result.lookups = __pyx_state[1]; __pyx_result.message_context = __pyx_state[2]; __pyx_result.translate = __pyx_state[3]; __pyx_result.var = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->literal);
  __Pyx_DECREF(__pyx_v___pyx_result->literal);
  __pyx_v___pyx_result->literal = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->lookups);
  __Pyx_DECREF(__pyx_v___pyx_result->lookups);
  __pyx_v___pyx_result->lookups = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 2);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->message_context);
  __Pyx_DECREF(__pyx_v___pyx_result->message_context);
  __pyx_v___pyx_result->message_context = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 3)); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error)
  __pyx_v___pyx_result->translate = __pyx_t_2;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 4);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->var);
  __Pyx_DECREF(__pyx_v___pyx_result->var);
  __pyx_v___pyx_result->var = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Variable__set_state(Variable __pyx_result, __pyx_state: tuple):
 *     __pyx_result.literal = __pyx_state[0]; __pyx_result.lookups = __pyx_state[1]; __pyx_result.message_context = __pyx_state[2]; __pyx_result.translate = __pyx_state[3]; __pyx_result.var = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Variable__set_state(<Variable> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Variable__set_state(Variable __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.literal = __pyx_state[0]; __pyx_result.lookups = __pyx_state[1]; __pyx_result.message_context = __pyx_state[2]; __pyx_result.translate = __pyx_state[3]; __pyx_result.var = __pyx_state[4]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 5)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_Variable__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Node(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xaa2e377, 0xf954ab1, 0x88b5373, b'origin, token')
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_20__pyx_unpickle_Node(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_20__pyx_unpickle_Node = {"__pyx_unpickle_Node", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_20__pyx_unpickle_Node, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_20__pyx_unpickle_Node(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Node (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Node", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Node", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Node", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_Node", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_19__pyx_unpickle_Node(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_19__pyx_unpickle_Node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Node", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Node(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xaa2e377, 0xf954ab1, 0x88b5373, b'origin, token')             # <<<<<<<<<<<<<<
 *     __pyx_result = Node.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xaa2e377, 0xf954ab1, 0x88b5373, __pyx_k_origin_token); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xaa2e377, 0xf954ab1, 0x88b5373, b'origin, token')
 *     __pyx_result = Node.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Node__set_state(<Node> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xaa2e377, 0xf954ab1, 0x88b5373, b'origin, token')
 *     __pyx_result = Node.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Node__set_state(<Node> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Node.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Node__set_state(<Node> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Node__set_state(Node __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(2, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Node__set_state(((struct __pyx_obj_27django_templates_cythonized_4base_Node *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xaa2e377, 0xf954ab1, 0x88b5373, b'origin, token')
 *     __pyx_result = Node.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Node__set_state(<Node> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Node__set_state(<Node> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Node__set_state(Node __pyx_result, __pyx_state: tuple):
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.token = __pyx_state[1]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Node(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xaa2e377, 0xf954ab1, 0x88b5373, b'origin, token')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_Node", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Node__set_state(<Node> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Node__set_state(Node __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.token = __pyx_state[1]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_Node__set_state(struct __pyx_obj_27django_templates_cythonized_4base_Node *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Node__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Node__set_state(Node __pyx_result, __pyx_state: tuple):
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.token = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->origin);
  __Pyx_DECREF(__pyx_v___pyx_result->origin);
  __pyx_v___pyx_result->origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->token);
  __Pyx_DECREF(__pyx_v___pyx_result->token);
  __pyx_v___pyx_result->token = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Node__set_state(Node __pyx_result, __pyx_state: tuple):
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.token = __pyx_state[1]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)             # <<<<<<<<<<<<<<
*/
  __pyx_t_2 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 2); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Node__set_state(<Node> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Node__set_state(Node __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.token = __pyx_state[1]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_Node__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_NodeList(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x93c8155, 0x086b203, 0xeba66e4, b'_nodes, contains_nontext')
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_22__pyx_unpickle_NodeList(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_22__pyx_unpickle_NodeList = {"__pyx_unpickle_NodeList", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_22__pyx_unpickle_NodeList, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_22__pyx_unpickle_NodeList(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_NodeList (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_NodeList", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_NodeList", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_NodeList", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_NodeList", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_21__pyx_unpickle_NodeList(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_21__pyx_unpickle_NodeList(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_NodeList", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_NodeList(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x93c8155, 0x086b203, 0xeba66e4, b'_nodes, contains_nontext')             # <<<<<<<<<<<<<<
 *     __pyx_result = NodeList.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x93c8155, 0x086b203, 0xeba66e4, __pyx_k_nodes_contains_nontext); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x93c8155, 0x086b203, 0xeba66e4, b'_nodes, contains_nontext')
 *     __pyx_result = NodeList.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_NodeList__set_state(<NodeList> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x93c8155, 0x086b203, 0xeba66e4, b'_nodes, contains_nontext')
 *     __pyx_result = NodeList.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_NodeList__set_state(<NodeList> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = NodeList.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_NodeList__set_state(<NodeList> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_NodeList__set_state(NodeList __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(2, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_NodeList__set_state(((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x93c8155, 0x086b203, 0xeba66e4, b'_nodes, contains_nontext')
 *     __pyx_result = NodeList.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_NodeList__set_state(<NodeList> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_NodeList__set_state(<NodeList> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_NodeList__set_state(NodeList __pyx_result, __pyx_state: tuple):
 *     __pyx_result._nodes = __pyx_state[0]; __pyx_result.contains_nontext = __pyx_state[1]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_NodeList(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x93c8155, 0x086b203, 0xeba66e4, b'_nodes, contains_nontext')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_NodeList", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_NodeList__set_state(<NodeList> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_NodeList__set_state(NodeList __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._nodes = __pyx_state[0]; __pyx_result.contains_nontext = __pyx_state[1]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_NodeList__set_state(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_NodeList__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_NodeList__set_state(NodeList __pyx_result, __pyx_state: tuple):
 *     __pyx_result._nodes = __pyx_state[0]; __pyx_result.contains_nontext = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(2, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_nodes);
  __Pyx_DECREF(__pyx_v___pyx_result->_nodes);
  __pyx_v___pyx_result->_nodes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 1)); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error)
  __pyx_v___pyx_result->contains_nontext = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_NodeList__set_state(NodeList __pyx_result, __pyx_state: tuple):
 *     __pyx_result._nodes = __pyx_state[0]; __pyx_result.contains_nontext = __pyx_state[1]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)             # <<<<<<<<<<<<<<
*/
  __pyx_t_3 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_NodeList__set_state(<NodeList> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_NodeList__set_state(NodeList __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result._nodes = __pyx_state[0]; __pyx_result.contains_nontext = __pyx_state[1]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 2)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_NodeList__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_TextNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbef3cea, 0xc27908b, 0x06d4020, b'origin, s, token')
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_24__pyx_unpickle_TextNode(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_24__pyx_unpickle_TextNode = {"__pyx_unpickle_TextNode", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_24__pyx_unpickle_TextNode, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_24__pyx_unpickle_TextNode(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_TextNode (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_TextNode", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TextNode", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TextNode", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_TextNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_23__pyx_unpickle_TextNode(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_23__pyx_unpickle_TextNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TextNode", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_TextNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbef3cea, 0xc27908b, 0x06d4020, b'origin, s, token')             # <<<<<<<<<<<<<<
 *     __pyx_result = TextNode.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xbef3cea, 0xc27908b, 0x06d4020, __pyx_k_origin_s_token); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbef3cea, 0xc27908b, 0x06d4020, b'origin, s, token')
 *     __pyx_result = TextNode.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TextNode__set_state(<TextNode> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbef3cea, 0xc27908b, 0x06d4020, b'origin, s, token')
 *     __pyx_result = TextNode.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TextNode__set_state(<TextNode> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = TextNode.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TextNode__set_state(<TextNode> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_TextNode__set_state(TextNode __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(2, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_TextNode__set_state(((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbef3cea, 0xc27908b, 0x06d4020, b'origin, s, token')
 *     __pyx_result = TextNode.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TextNode__set_state(<TextNode> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TextNode__set_state(<TextNode> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_TextNode__set_state(TextNode __pyx_result, __pyx_state: tuple):
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.s = __pyx_state[1]; __pyx_result.token = __pyx_state[2]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_TextNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xbef3cea, 0xc27908b, 0x06d4020, b'origin, s, token')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_TextNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_TextNode__set_state(<TextNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TextNode__set_state(TextNode __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.s = __pyx_state[1]; __pyx_result.token = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_TextNode__set_state(struct __pyx_obj_27django_templates_cythonized_4base_TextNode *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TextNode__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_TextNode__set_state(TextNode __pyx_result, __pyx_state: tuple):
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.s = __pyx_state[1]; __pyx_result.token = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 1);
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(2, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->s);
  __Pyx_DECREF(__pyx_v___pyx_result->s);
  __pyx_v___pyx_result->s = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 2);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.token);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.token);
  __pyx_v___pyx_result->__pyx_base.token = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_TextNode__set_state(TextNode __pyx_result, __pyx_state: tuple):
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.s = __pyx_state[1]; __pyx_result.token = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)             # <<<<<<<<<<<<<<
*/
  __pyx_t_2 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_TextNode__set_state(<TextNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TextNode__set_state(TextNode __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.origin = __pyx_state[0]; __pyx_result.s = __pyx_state[1]; __pyx_result.token = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_TextNode__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_VariableNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xea43a84, 0x2b0b265, 0x24775a2, b'filter_expression, origin, token')
*/

/* Python wrapper */
static PyObject *__pyx_pw_27django_templates_cythonized_4base_26__pyx_unpickle_VariableNode(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_27django_templates_cythonized_4base_26__pyx_unpickle_VariableNode = {"__pyx_unpickle_VariableNode", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_26__pyx_unpickle_VariableNode, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_27django_templates_cythonized_4base_26__pyx_unpickle_VariableNode(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_VariableNode (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_VariableNode", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_VariableNode", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_VariableNode", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_VariableNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_27django_templates_cythonized_4base_25__pyx_unpickle_VariableNode(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_27django_templates_cythonized_4base_25__pyx_unpickle_VariableNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_VariableNode", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_VariableNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xea43a84, 0x2b0b265, 0x24775a2, b'filter_expression, origin, token')             # <<<<<<<<<<<<<<
 *     __pyx_result = VariableNode.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xea43a84, 0x2b0b265, 0x24775a2, __pyx_k_filter_expression_origin_token); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xea43a84, 0x2b0b265, 0x24775a2, b'filter_expression, origin, token')
 *     __pyx_result = VariableNode.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_VariableNode__set_state(<VariableNode> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xea43a84, 0x2b0b265, 0x24775a2, b'filter_expression, origin, token')
 *     __pyx_result = VariableNode.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_VariableNode__set_state(<VariableNode> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = VariableNode.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_VariableNode__set_state(<VariableNode> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_VariableNode__set_state(VariableNode __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(2, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_27django_templates_cythonized_4base___pyx_unpickle_VariableNode__set_state(((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xea43a84, 0x2b0b265, 0x24775a2, b'filter_expression, origin, token')
 *     __pyx_result = VariableNode.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_VariableNode__set_state(<VariableNode> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_VariableNode__set_state(<VariableNode> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_VariableNode__set_state(VariableNode __pyx_result, __pyx_state: tuple):
 *     __pyx_result.filter_expression = __pyx_state[0]; __pyx_result.origin = __pyx_state[1]; __pyx_result.token = __pyx_state[2]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_VariableNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xea43a84, 0x2b0b265, 0x24775a2, b'filter_expression, origin, token')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_VariableNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_VariableNode__set_state(<VariableNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_VariableNode__set_state(VariableNode __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.filter_expression = __pyx_state[0]; __pyx_result.origin = __pyx_state[1]; __pyx_result.token = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

static PyObject *__pyx_f_27django_templates_cythonized_4base___pyx_unpickle_VariableNode__set_state(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_VariableNode__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_VariableNode__set_state(VariableNode __pyx_result, __pyx_state: tuple):
 *     __pyx_result.filter_expression = __pyx_state[0]; __pyx_result.origin = __pyx_state[1]; __pyx_result.token = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 0);
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression))))) __PYX_ERR(2, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->filter_expression);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->filter_expression);
  __pyx_v___pyx_result->filter_expression = ((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 1);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyTuple_GET_ITEM(__pyx_v___pyx_state, 2);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.token);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.token);
  __pyx_v___pyx_result->__pyx_base.token = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_VariableNode__set_state(VariableNode __pyx_result, __pyx_state: tuple):
 *     __pyx_result.filter_expression = __pyx_state[0]; __pyx_result.origin = __pyx_state[1]; __pyx_result.token = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)             # <<<<<<<<<<<<<<
*/
  __pyx_t_2 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_VariableNode__set_state(<VariableNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_VariableNode__set_state(VariableNode __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __pyx_result.filter_expression = __pyx_state[0]; __pyx_result.origin = __pyx_state[1]; __pyx_result.token = __pyx_state[2]
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 3)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("django_templates_cythonized.base.__pyx_unpickle_VariableNode__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* #### Code section: module_exttypes ### */

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_CFilterInfo(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)o);
  p->func = Py_None; Py_INCREF(Py_None);
  p->args = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base_CFilterInfo(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *p = (struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base_CFilterInfo) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->func);
  Py_CLEAR(p->args);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base_CFilterInfo(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *p = (struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->func) {
    e = (*v)(p->func, a); if (e) return e;
  }
  if (p->args) {
    e = (*v)(p->args, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_27django_templates_cythonized_4base_CFilterInfo(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *p = (struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo *)o;
  tmp = ((PyObject*)p->func);
  p->func = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->args);
  p->args = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_func(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4func_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_func(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4func_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4func_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_args(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4args_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_args(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4args_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_4args_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_expects_localtime(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_expects_localtime(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_17expects_localtime_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_needs_autoescape(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_needs_autoescape(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_16needs_autoescape_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_is_safe(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_7is_safe_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_is_safe(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_7is_safe_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_27django_templates_cythonized_4base_CFilterInfo[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_27django_templates_cythonized_4base_CFilterInfo[] = {
  {"func", __pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_func, __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_func, 0, 0},
  {"args", __pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_args, __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_args, 0, 0},
  {"expects_localtime", __pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_expects_localtime, __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_expects_localtime, 0, 0},
  {"needs_autoescape", __pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_needs_autoescape, __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_needs_autoescape, 0, 0},
  {"is_safe", __pyx_getprop_27django_templates_cythonized_4base_11CFilterInfo_is_safe, __pyx_setprop_27django_templates_cythonized_4base_11CFilterInfo_is_safe, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base_CFilterInfo_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base_CFilterInfo},
  {Py_tp_doc, (void *)PyDoc_STR("C struct wrapper for filter metadata \342\200\224 replaces 5-tuple for C struct access.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base_CFilterInfo},
  {Py_tp_clear, (void *)__pyx_tp_clear_27django_templates_cythonized_4base_CFilterInfo},
  {Py_tp_methods, (void *)__pyx_methods_27django_templates_cythonized_4base_CFilterInfo},
  {Py_tp_getset, (void *)__pyx_getsets_27django_templates_cythonized_4base_CFilterInfo},
  {Py_tp_init, (void *)__pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base_CFilterInfo},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base_CFilterInfo_spec = {
  "django_templates_cythonized.base.CFilterInfo",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base_CFilterInfo_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base_CFilterInfo = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""CFilterInfo", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_CFilterInfo), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base_CFilterInfo, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("C struct wrapper for filter metadata \342\200\224 replaces 5-tuple for C struct access."), /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base_CFilterInfo, /*tp_traverse*/
  __pyx_tp_clear_27django_templates_cythonized_4base_CFilterInfo, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_27django_templates_cythonized_4base_CFilterInfo, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_27django_templates_cythonized_4base_CFilterInfo, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_27django_templates_cythonized_4base_11CFilterInfo_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base_CFilterInfo, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_Node __pyx_vtable_27django_templates_cythonized_4base_Node;

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_Node(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_27django_templates_cythonized_4base_Node *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_27django_templates_cythonized_4base_Node *)o);
  p->__pyx_vtab = __pyx_vtabptr_27django_templates_cythonized_4base_Node;
  p->token = Py_None; Py_INCREF(Py_None);
  p->origin = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base_Node(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base_Node *p = (struct __pyx_obj_27django_templates_cythonized_4base_Node *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base_Node) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->token);
  Py_CLEAR(p->origin);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base_Node(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base_Node *p = (struct __pyx_obj_27django_templates_cythonized_4base_Node *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->token) {
    e = (*v)(p->token, a); if (e) return e;
  }
  if (p->origin) {
    e = (*v)(p->origin, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_27django_templates_cythonized_4base_Node(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_27django_templates_cythonized_4base_Node *p = (struct __pyx_obj_27django_templates_cythonized_4base_Node *)o;
  tmp = ((PyObject*)p->token);
  p->token = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->origin);
  p->origin = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_4Node_token(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_4Node_5token_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_4Node_token(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_4Node_5token_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_4Node_5token_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_4Node_origin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_4Node_6origin_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_4Node_origin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_4Node_6origin_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_4Node_6origin_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_27django_templates_cythonized_4base_Node[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_4Node_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_4Node_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_27django_templates_cythonized_4base_Node[] = {
  {"token", __pyx_getprop_27django_templates_cythonized_4base_4Node_token, __pyx_setprop_27django_templates_cythonized_4base_4Node_token, 0, 0},
  {"origin", __pyx_getprop_27django_templates_cythonized_4base_4Node_origin, __pyx_setprop_27django_templates_cythonized_4base_4Node_origin, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base_Node_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base_Node},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base_Node},
  {Py_tp_clear, (void *)__pyx_tp_clear_27django_templates_cythonized_4base_Node},
  {Py_tp_methods, (void *)__pyx_methods_27django_templates_cythonized_4base_Node},
  {Py_tp_getset, (void *)__pyx_getsets_27django_templates_cythonized_4base_Node},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base_Node},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base_Node_spec = {
  "django_templates_cythonized.base.Node",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_Node),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base_Node_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base_Node = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""Node", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_Node), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base_Node, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base_Node, /*tp_traverse*/
  __pyx_tp_clear_27django_templates_cythonized_4base_Node, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_27django_templates_cythonized_4base_Node, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_27django_templates_cythonized_4base_Node, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base_Node, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_TextNode __pyx_vtable_27django_templates_cythonized_4base_TextNode;

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_TextNode(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_27django_templates_cythonized_4base_TextNode *p;
  PyObject *o = __pyx_tp_new_27django_templates_cythonized_4base_Node(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_27django_templates_cythonized_4base_Node*)__pyx_vtabptr_27django_templates_cythonized_4base_TextNode;
  p->s = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base_TextNode(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base_TextNode *p = (struct __pyx_obj_27django_templates_cythonized_4base_TextNode *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base_TextNode) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->s);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_27django_templates_cythonized_4base_Node(o);
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8TextNode_s(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8TextNode_1s_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8TextNode_s(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8TextNode_1s_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8TextNode_1s_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_27django_templates_cythonized_4base_TextNode[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8TextNode_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8TextNode_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_27django_templates_cythonized_4base_TextNode[] = {
  {"s", __pyx_getprop_27django_templates_cythonized_4base_8TextNode_s, __pyx_setprop_27django_templates_cythonized_4base_8TextNode_s, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base_TextNode_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base_TextNode},
  {Py_tp_repr, (void *)__pyx_pw_27django_templates_cythonized_4base_8TextNode_3__repr__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base_Node},
  {Py_tp_clear, (void *)__pyx_tp_clear_27django_templates_cythonized_4base_Node},
  {Py_tp_methods, (void *)__pyx_methods_27django_templates_cythonized_4base_TextNode},
  {Py_tp_getset, (void *)__pyx_getsets_27django_templates_cythonized_4base_TextNode},
  {Py_tp_init, (void *)__pyx_pw_27django_templates_cythonized_4base_8TextNode_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base_TextNode},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base_TextNode_spec = {
  "django_templates_cythonized.base.TextNode",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_TextNode),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base_TextNode_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base_TextNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""TextNode", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_TextNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base_TextNode, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_27django_templates_cythonized_4base_8TextNode_3__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base_Node, /*tp_traverse*/
  __pyx_tp_clear_27django_templates_cythonized_4base_Node, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_27django_templates_cythonized_4base_TextNode, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_27django_templates_cythonized_4base_TextNode, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_27django_templates_cythonized_4base_8TextNode_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base_TextNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_NodeList __pyx_vtable_27django_templates_cythonized_4base_NodeList;

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_NodeList(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_27django_templates_cythonized_4base_NodeList *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)o);
  p->__pyx_vtab = __pyx_vtabptr_27django_templates_cythonized_4base_NodeList;
  p->_nodes = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base_NodeList(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base_NodeList *p = (struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base_NodeList) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_nodes);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base_NodeList(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base_NodeList *p = (struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_nodes) {
    e = (*v)(p->_nodes, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_27django_templates_cythonized_4base_NodeList(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_27django_templates_cythonized_4base_NodeList *p = (struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)o;
  tmp = ((PyObject*)p->_nodes);
  p->_nodes = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_sq_item_27django_templates_cythonized_4base_NodeList(PyObject *o, Py_ssize_t i) {
  PyObject *r;
  PyObject *x = PyLong_FromSsize_t(i); if(!x) return 0;
  #if CYTHON_USE_TYPE_SLOTS || (!CYTHON_USE_TYPE_SPECS && __PYX_LIMITED_VERSION_HEX < 0x030A0000)
  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
  #else
  r = ((binaryfunc)PyType_GetSlot(Py_TYPE(o), Py_mp_subscript))(o, x);
  #endif
  Py_DECREF(x);
  return r;
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8NodeList__nodes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8NodeList_6_nodes_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8NodeList__nodes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8NodeList_6_nodes_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8NodeList_6_nodes_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8NodeList_contains_nontext(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8NodeList_16contains_nontext_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8NodeList_contains_nontext(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8NodeList_16contains_nontext_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_27django_templates_cythonized_4base_NodeList[] = {
  {"append", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8NodeList_13append, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8NodeList_19__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8NodeList_21__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_27django_templates_cythonized_4base_NodeList[] = {
  {"_nodes", __pyx_getprop_27django_templates_cythonized_4base_8NodeList__nodes, __pyx_setprop_27django_templates_cythonized_4base_8NodeList__nodes, 0, 0},
  {"contains_nontext", __pyx_getprop_27django_templates_cythonized_4base_8NodeList_contains_nontext, __pyx_setprop_27django_templates_cythonized_4base_8NodeList_contains_nontext, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base_NodeList_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base_NodeList},
  {Py_tp_repr, (void *)__pyx_pw_27django_templates_cythonized_4base_8NodeList_11__repr__},
  {Py_nb_bool, (void *)__pyx_pw_27django_templates_cythonized_4base_8NodeList_9__bool__},
  {Py_sq_length, (void *)__pyx_pw_27django_templates_cythonized_4base_8NodeList_3__len__},
  {Py_sq_item, (void *)__pyx_sq_item_27django_templates_cythonized_4base_NodeList},
  {Py_mp_length, (void *)__pyx_pw_27django_templates_cythonized_4base_8NodeList_3__len__},
  {Py_mp_subscript, (void *)__pyx_pw_27django_templates_cythonized_4base_8NodeList_7__getitem__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base_NodeList},
  {Py_tp_clear, (void *)__pyx_tp_clear_27django_templates_cythonized_4base_NodeList},
  {Py_tp_iter, (void *)__pyx_pw_27django_templates_cythonized_4base_8NodeList_5__iter__},
  {Py_tp_methods, (void *)__pyx_methods_27django_templates_cythonized_4base_NodeList},
  {Py_tp_getset, (void *)__pyx_getsets_27django_templates_cythonized_4base_NodeList},
  {Py_tp_init, (void *)__pyx_pw_27django_templates_cythonized_4base_8NodeList_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base_NodeList},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base_NodeList_spec = {
  "django_templates_cythonized.base.NodeList",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_NodeList),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base_NodeList_slots,
};
#else

static PyNumberMethods __pyx_tp_as_number_NodeList = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  __pyx_pw_27django_templates_cythonized_4base_8NodeList_9__bool__, /*nb_bool*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_int*/
  0, /*nb_long (reserved)*/
  0, /*nb_float*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  0, /*nb_matrix_multiply*/
  0, /*nb_inplace_matrix_multiply*/
};

static PySequenceMethods __pyx_tp_as_sequence_NodeList = {
  __pyx_pw_27django_templates_cythonized_4base_8NodeList_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  __pyx_sq_item_27django_templates_cythonized_4base_NodeList, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_NodeList = {
  __pyx_pw_27django_templates_cythonized_4base_8NodeList_3__len__, /*mp_length*/
  __pyx_pw_27django_templates_cythonized_4base_8NodeList_7__getitem__, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_27django_templates_cythonized_4base_NodeList = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""NodeList", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_NodeList), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base_NodeList, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_27django_templates_cythonized_4base_8NodeList_11__repr__, /*tp_repr*/
  &__pyx_tp_as_number_NodeList, /*tp_as_number*/
  &__pyx_tp_as_sequence_NodeList, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_NodeList, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base_NodeList, /*tp_traverse*/
  __pyx_tp_clear_27django_templates_cythonized_4base_NodeList, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_27django_templates_cythonized_4base_8NodeList_5__iter__, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_27django_templates_cythonized_4base_NodeList, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_27django_templates_cythonized_4base_NodeList, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_27django_templates_cythonized_4base_8NodeList_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base_NodeList, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_Template __pyx_vtable_27django_templates_cythonized_4base_Template;

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_Template(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_27django_templates_cythonized_4base_Template *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_27django_templates_cythonized_4base_Template *)o);
  p->__pyx_vtab = __pyx_vtabptr_27django_templates_cythonized_4base_Template;
  p->name = Py_None; Py_INCREF(Py_None);
  p->origin = Py_None; Py_INCREF(Py_None);
  p->engine = Py_None; Py_INCREF(Py_None);
  p->source = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->nodelist = ((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)Py_None); Py_INCREF(Py_None);
  p->extra_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base_Template(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base_Template *p = (struct __pyx_obj_27django_templates_cythonized_4base_Template *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base_Template) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->name);
  Py_CLEAR(p->origin);
  Py_CLEAR(p->engine);
  Py_CLEAR(p->source);
  Py_CLEAR(p->nodelist);
  Py_CLEAR(p->extra_data);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base_Template(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base_Template *p = (struct __pyx_obj_27django_templates_cythonized_4base_Template *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->name) {
    e = (*v)(p->name, a); if (e) return e;
  }
  if (p->origin) {
    e = (*v)(p->origin, a); if (e) return e;
  }
  if (p->engine) {
    e = (*v)(p->engine, a); if (e) return e;
  }
  if (p->nodelist) {
    e = (*v)(((PyObject *)p->nodelist), a); if (e) return e;
  }
  if (p->extra_data) {
    e = (*v)(p->extra_data, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_27django_templates_cythonized_4base_Template(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_27django_templates_cythonized_4base_Template *p = (struct __pyx_obj_27django_templates_cythonized_4base_Template *)o;
  tmp = ((PyObject*)p->name);
  p->name = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->origin);
  p->origin = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->engine);
  p->engine = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->nodelist);
  p->nodelist = ((struct __pyx_obj_27django_templates_cythonized_4base_NodeList *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->extra_data);
  p->extra_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Template_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Template_4name_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Template_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_4name_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_4name_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Template_origin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Template_6origin_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Template_origin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_6origin_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_6origin_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Template_engine(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Template_6engine_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Template_engine(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_6engine_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_6engine_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Template_source(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Template_6source_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Template_source(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_6source_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_6source_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Template_nodelist(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Template_8nodelist_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Template_nodelist(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_8nodelist_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_8nodelist_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Template_extra_data(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Template_10extra_data_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Template_extra_data(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_10extra_data_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Template_10extra_data_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_27django_templates_cythonized_4base_Template[] = {
  {"get_exception_info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Template_11get_exception_info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_27django_templates_cythonized_4base_8Template_10get_exception_info},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Template_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Template_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_27django_templates_cythonized_4base_Template[] = {
  {"name", __pyx_getprop_27django_templates_cythonized_4base_8Template_name, __pyx_setprop_27django_templates_cythonized_4base_8Template_name, 0, 0},
  {"origin", __pyx_getprop_27django_templates_cythonized_4base_8Template_origin, __pyx_setprop_27django_templates_cythonized_4base_8Template_origin, 0, 0},
  {"engine", __pyx_getprop_27django_templates_cythonized_4base_8Template_engine, __pyx_setprop_27django_templates_cythonized_4base_8Template_engine, 0, 0},
  {"source", __pyx_getprop_27django_templates_cythonized_4base_8Template_source, __pyx_setprop_27django_templates_cythonized_4base_8Template_source, 0, 0},
  {"nodelist", __pyx_getprop_27django_templates_cythonized_4base_8Template_nodelist, __pyx_setprop_27django_templates_cythonized_4base_8Template_nodelist, 0, 0},
  {"extra_data", __pyx_getprop_27django_templates_cythonized_4base_8Template_extra_data, __pyx_setprop_27django_templates_cythonized_4base_8Template_extra_data, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base_Template_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base_Template},
  {Py_tp_repr, (void *)__pyx_pw_27django_templates_cythonized_4base_8Template_3__repr__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base_Template},
  {Py_tp_clear, (void *)__pyx_tp_clear_27django_templates_cythonized_4base_Template},
  {Py_tp_methods, (void *)__pyx_methods_27django_templates_cythonized_4base_Template},
  {Py_tp_getset, (void *)__pyx_getsets_27django_templates_cythonized_4base_Template},
  {Py_tp_init, (void *)__pyx_pw_27django_templates_cythonized_4base_8Template_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base_Template},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base_Template_spec = {
  "django_templates_cythonized.base.Template",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_Template),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base_Template_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base_Template = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""Template", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_Template), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base_Template, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_27django_templates_cythonized_4base_8Template_3__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base_Template, /*tp_traverse*/
  __pyx_tp_clear_27django_templates_cythonized_4base_Template, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_27django_templates_cythonized_4base_Template, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_27django_templates_cythonized_4base_Template, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_27django_templates_cythonized_4base_8Template_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base_Template, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_FilterExpression __pyx_vtable_27django_templates_cythonized_4base_FilterExpression;

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_FilterExpression(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)o);
  p->__pyx_vtab = __pyx_vtabptr_27django_templates_cythonized_4base_FilterExpression;
  p->token = Py_None; Py_INCREF(Py_None);
  p->filters = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->var = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base_FilterExpression(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *p = (struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base_FilterExpression) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->token);
  Py_CLEAR(p->filters);
  Py_CLEAR(p->var);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base_FilterExpression(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *p = (struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->token) {
    e = (*v)(p->token, a); if (e) return e;
  }
  if (p->filters) {
    e = (*v)(p->filters, a); if (e) return e;
  }
  if (p->var) {
    e = (*v)(p->var, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_27django_templates_cythonized_4base_FilterExpression(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *p = (struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)o;
  tmp = ((PyObject*)p->token);
  p->token = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->filters);
  p->filters = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->var);
  p->var = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_16FilterExpression_token(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5token_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression_token(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5token_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5token_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_16FilterExpression_filters(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7filters_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression_filters(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7filters_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7filters_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_16FilterExpression_var(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3var_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression_var(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3var_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_3var_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_16FilterExpression_is_var(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_6is_var_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression_is_var(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_6is_var_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_16FilterExpression__fast_filter(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression__fast_filter(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_12_fast_filter_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_27django_templates_cythonized_4base_FilterExpression[] = {
  {"args_check", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_5args_check, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_27django_templates_cythonized_4base_FilterExpression[] = {
  {"token", __pyx_getprop_27django_templates_cythonized_4base_16FilterExpression_token, __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression_token, 0, 0},
  {"filters", __pyx_getprop_27django_templates_cythonized_4base_16FilterExpression_filters, __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression_filters, 0, 0},
  {"var", __pyx_getprop_27django_templates_cythonized_4base_16FilterExpression_var, __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression_var, 0, 0},
  {"is_var", __pyx_getprop_27django_templates_cythonized_4base_16FilterExpression_is_var, __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression_is_var, 0, 0},
  {"_fast_filter", __pyx_getprop_27django_templates_cythonized_4base_16FilterExpression__fast_filter, __pyx_setprop_27django_templates_cythonized_4base_16FilterExpression__fast_filter, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base_FilterExpression_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base_FilterExpression},
  {Py_tp_repr, (void *)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_9__repr__},
  {Py_tp_str, (void *)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7__str__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    Parse a variable token and its optional filters (all as a single string),\n    and return a list of tuples of the filter name and arguments.\n    Sample::\n\n        >>> token = 'variable|default:\"Default value\"|date:\"Y-m-d\"'\n        >>> p = Parser('')\n        >>> fe = FilterExpression(token, p)\n        >>> len(fe.filters)\n        2\n        >>> fe.var\n        <Variable: 'variable'>\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base_FilterExpression},
  {Py_tp_clear, (void *)__pyx_tp_clear_27django_templates_cythonized_4base_FilterExpression},
  {Py_tp_methods, (void *)__pyx_methods_27django_templates_cythonized_4base_FilterExpression},
  {Py_tp_getset, (void *)__pyx_getsets_27django_templates_cythonized_4base_FilterExpression},
  {Py_tp_init, (void *)__pyx_pw_27django_templates_cythonized_4base_16FilterExpression_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base_FilterExpression},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base_FilterExpression_spec = {
  "django_templates_cythonized.base.FilterExpression",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base_FilterExpression_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base_FilterExpression = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""FilterExpression", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base_FilterExpression, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_7__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    Parse a variable token and its optional filters (all as a single string),\n    and return a list of tuples of the filter name and arguments.\n    Sample::\n\n        >>> token = 'variable|default:\"Default value\"|date:\"Y-m-d\"'\n        >>> p = Parser('')\n        >>> fe = FilterExpression(token, p)\n        >>> len(fe.filters)\n        2\n        >>> fe.var\n        <Variable: 'variable'>\n    "), /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base_FilterExpression, /*tp_traverse*/
  __pyx_tp_clear_27django_templates_cythonized_4base_FilterExpression, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_27django_templates_cythonized_4base_FilterExpression, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_27django_templates_cythonized_4base_FilterExpression, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_27django_templates_cythonized_4base_16FilterExpression_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base_FilterExpression, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_VariableNode __pyx_vtable_27django_templates_cythonized_4base_VariableNode;

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_VariableNode(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *p;
  PyObject *o = __pyx_tp_new_27django_templates_cythonized_4base_Node(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_27django_templates_cythonized_4base_Node*)__pyx_vtabptr_27django_templates_cythonized_4base_VariableNode;
  p->filter_expression = ((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base_VariableNode(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *p = (struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base_VariableNode) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->filter_expression);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_27django_templates_cythonized_4base_Node(o);
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base_VariableNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *p = (struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)o;
  e = __pyx_tp_traverse_27django_templates_cythonized_4base_Node(o, v, a); if (e) return e;
  if (p->filter_expression) {
    e = (*v)(((PyObject *)p->filter_expression), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_27django_templates_cythonized_4base_VariableNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *p = (struct __pyx_obj_27django_templates_cythonized_4base_VariableNode *)o;
  __pyx_tp_clear_27django_templates_cythonized_4base_Node(o);
  tmp = ((PyObject*)p->filter_expression);
  p->filter_expression = ((struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_12VariableNode_filter_expression(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_12VariableNode_17filter_expression_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_12VariableNode_filter_expression(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_12VariableNode_17filter_expression_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_12VariableNode_17filter_expression_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_27django_templates_cythonized_4base_VariableNode[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_12VariableNode_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_12VariableNode_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_27django_templates_cythonized_4base_VariableNode[] = {
  {"filter_expression", __pyx_getprop_27django_templates_cythonized_4base_12VariableNode_filter_expression, __pyx_setprop_27django_templates_cythonized_4base_12VariableNode_filter_expression, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base_VariableNode_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base_VariableNode},
  {Py_tp_repr, (void *)__pyx_pw_27django_templates_cythonized_4base_12VariableNode_3__repr__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base_VariableNode},
  {Py_tp_clear, (void *)__pyx_tp_clear_27django_templates_cythonized_4base_VariableNode},
  {Py_tp_methods, (void *)__pyx_methods_27django_templates_cythonized_4base_VariableNode},
  {Py_tp_getset, (void *)__pyx_getsets_27django_templates_cythonized_4base_VariableNode},
  {Py_tp_init, (void *)__pyx_pw_27django_templates_cythonized_4base_12VariableNode_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base_VariableNode},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base_VariableNode_spec = {
  "django_templates_cythonized.base.VariableNode",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base_VariableNode_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base_VariableNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""VariableNode", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_VariableNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base_VariableNode, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_27django_templates_cythonized_4base_12VariableNode_3__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base_VariableNode, /*tp_traverse*/
  __pyx_tp_clear_27django_templates_cythonized_4base_VariableNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_27django_templates_cythonized_4base_VariableNode, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_27django_templates_cythonized_4base_VariableNode, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_27django_templates_cythonized_4base_12VariableNode_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base_VariableNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_PartialTemplate __pyx_vtable_27django_templates_cythonized_4base_PartialTemplate;

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_PartialTemplate(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)o);
  p->__pyx_vtab = __pyx_vtabptr_27django_templates_cythonized_4base_PartialTemplate;
  p->nodelist = Py_None; Py_INCREF(Py_None);
  p->origin = Py_None; Py_INCREF(Py_None);
  p->name = Py_None; Py_INCREF(Py_None);
  p->_source_start = Py_None; Py_INCREF(Py_None);
  p->_source_end = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base_PartialTemplate(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *p = (struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base_PartialTemplate) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->nodelist);
  Py_CLEAR(p->origin);
  Py_CLEAR(p->name);
  Py_CLEAR(p->_source_start);
  Py_CLEAR(p->_source_end);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base_PartialTemplate(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *p = (struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->nodelist) {
    e = (*v)(p->nodelist, a); if (e) return e;
  }
  if (p->origin) {
    e = (*v)(p->origin, a); if (e) return e;
  }
  if (p->name) {
    e = (*v)(p->name, a); if (e) return e;
  }
  if (p->_source_start) {
    e = (*v)(p->_source_start, a); if (e) return e;
  }
  if (p->_source_end) {
    e = (*v)(p->_source_end, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_27django_templates_cythonized_4base_PartialTemplate(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *p = (struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *)o;
  tmp = ((PyObject*)p->nodelist);
  p->nodelist = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->origin);
  p->origin = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->name);
  p->name = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_source_start);
  p->_source_start = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_source_end);
  p->_source_end = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate_source(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6source_1__get__(o);
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate_nodelist(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate_nodelist(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_8nodelist_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate_origin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6origin_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate_origin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6origin_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_6origin_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_4name_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_4name_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_4name_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate__source_start(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate__source_start(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13_source_start_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate__source_end(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate__source_end(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11_source_end_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_27django_templates_cythonized_4base_PartialTemplate[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_27django_templates_cythonized_4base_PartialTemplate[] = {
  {"source", __pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate_source, 0, 0, 0},
  {"nodelist", __pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate_nodelist, __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate_nodelist, 0, 0},
  {"origin", __pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate_origin, __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate_origin, 0, 0},
  {"name", __pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate_name, __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate_name, 0, 0},
  {"_source_start", __pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate__source_start, __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate__source_start, 0, 0},
  {"_source_end", __pyx_getprop_27django_templates_cythonized_4base_15PartialTemplate__source_end, __pyx_setprop_27django_templates_cythonized_4base_15PartialTemplate__source_end, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base_PartialTemplate_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base_PartialTemplate},
  {Py_tp_doc, (void *)PyDoc_STR("\n    A lightweight Template lookalike used for template partials.\n\n    Wraps nodelist as a partial, in order to be able to bind context.\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base_PartialTemplate},
  {Py_tp_clear, (void *)__pyx_tp_clear_27django_templates_cythonized_4base_PartialTemplate},
  {Py_tp_methods, (void *)__pyx_methods_27django_templates_cythonized_4base_PartialTemplate},
  {Py_tp_getset, (void *)__pyx_getsets_27django_templates_cythonized_4base_PartialTemplate},
  {Py_tp_init, (void *)__pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base_PartialTemplate},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base_PartialTemplate_spec = {
  "django_templates_cythonized.base.PartialTemplate",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base_PartialTemplate_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base_PartialTemplate = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""PartialTemplate", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base_PartialTemplate, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    A lightweight Template lookalike used for template partials.\n\n    Wraps nodelist as a partial, in order to be able to bind context.\n    "), /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base_PartialTemplate, /*tp_traverse*/
  __pyx_tp_clear_27django_templates_cythonized_4base_PartialTemplate, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_27django_templates_cythonized_4base_PartialTemplate, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_27django_templates_cythonized_4base_PartialTemplate, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_27django_templates_cythonized_4base_15PartialTemplate_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base_PartialTemplate, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_27django_templates_cythonized_4base_Variable __pyx_vtable_27django_templates_cythonized_4base_Variable;

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base_Variable(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_27django_templates_cythonized_4base_Variable *p;
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 0);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_27django_templates_cythonized_4base_Variable *)o);
  p->__pyx_vtab = __pyx_vtabptr_27django_templates_cythonized_4base_Variable;
  p->var = Py_None; Py_INCREF(Py_None);
  p->literal = Py_None; Py_INCREF(Py_None);
  p->lookups = Py_None; Py_INCREF(Py_None);
  p->message_context = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base_Variable(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base_Variable *p = (struct __pyx_obj_27django_templates_cythonized_4base_Variable *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base_Variable) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->var);
  Py_CLEAR(p->literal);
  Py_CLEAR(p->lookups);
  Py_CLEAR(p->message_context);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base_Variable(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base_Variable *p = (struct __pyx_obj_27django_templates_cythonized_4base_Variable *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->var) {
    e = (*v)(p->var, a); if (e) return e;
  }
  if (p->literal) {
    e = (*v)(p->literal, a); if (e) return e;
  }
  if (p->lookups) {
    e = (*v)(p->lookups, a); if (e) return e;
  }
  if (p->message_context) {
    e = (*v)(p->message_context, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_27django_templates_cythonized_4base_Variable(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_27django_templates_cythonized_4base_Variable *p = (struct __pyx_obj_27django_templates_cythonized_4base_Variable *)o;
  tmp = ((PyObject*)p->var);
  p->var = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->literal);
  p->literal = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->lookups);
  p->lookups = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->message_context);
  p->message_context = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Variable_var(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Variable_3var_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Variable_var(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Variable_3var_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Variable_3var_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Variable_literal(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Variable_7literal_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Variable_literal(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Variable_7literal_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Variable_7literal_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Variable_lookups(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Variable_7lookups_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Variable_lookups(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Variable_7lookups_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Variable_7lookups_5__del__(o);
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Variable_translate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Variable_9translate_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Variable_translate(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Variable_9translate_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_27django_templates_cythonized_4base_8Variable_message_context(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_27django_templates_cythonized_4base_8Variable_15message_context_1__get__(o);
}

static int __pyx_setprop_27django_templates_cythonized_4base_8Variable_message_context(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_27django_templates_cythonized_4base_8Variable_15message_context_3__set__(o, v);
  }
  else {
    return __pyx_pw_27django_templates_cythonized_4base_8Variable_15message_context_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_27django_templates_cythonized_4base_Variable[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Variable_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_27django_templates_cythonized_4base_8Variable_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_27django_templates_cythonized_4base_Variable[] = {
  {"var", __pyx_getprop_27django_templates_cythonized_4base_8Variable_var, __pyx_setprop_27django_templates_cythonized_4base_8Variable_var, 0, 0},
  {"literal", __pyx_getprop_27django_templates_cythonized_4base_8Variable_literal, __pyx_setprop_27django_templates_cythonized_4base_8Variable_literal, 0, 0},
  {"lookups", __pyx_getprop_27django_templates_cythonized_4base_8Variable_lookups, __pyx_setprop_27django_templates_cythonized_4base_8Variable_lookups, 0, 0},
  {"translate", __pyx_getprop_27django_templates_cythonized_4base_8Variable_translate, __pyx_setprop_27django_templates_cythonized_4base_8Variable_translate, 0, 0},
  {"message_context", __pyx_getprop_27django_templates_cythonized_4base_8Variable_message_context, __pyx_setprop_27django_templates_cythonized_4base_8Variable_message_context, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base_Variable_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base_Variable},
  {Py_tp_repr, (void *)__pyx_pw_27django_templates_cythonized_4base_8Variable_5__repr__},
  {Py_tp_str, (void *)__pyx_pw_27django_templates_cythonized_4base_8Variable_7__str__},
  {Py_tp_doc, (void *)PyDoc_STR("\n    A template variable, resolvable against a given context. The variable may\n    be a hard-coded string (if it begins and ends with single or double quote\n    marks)::\n\n        >>> c = {'article': {'section':'News'}}\n        >>> Variable('article.section').resolve(c)\n        'News'\n        >>> Variable('article').resolve(c)\n        {'section': 'News'}\n        >>> class AClass: pass\n        >>> c = AClass()\n        >>> c.article = AClass()\n        >>> c.article.section = 'News'\n\n    (The example assumes VARIABLE_ATTRIBUTE_SEPARATOR is '.')\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base_Variable},
  {Py_tp_clear, (void *)__pyx_tp_clear_27django_templates_cythonized_4base_Variable},
  {Py_tp_methods, (void *)__pyx_methods_27django_templates_cythonized_4base_Variable},
  {Py_tp_getset, (void *)__pyx_getsets_27django_templates_cythonized_4base_Variable},
  {Py_tp_init, (void *)__pyx_pw_27django_templates_cythonized_4base_8Variable_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base_Variable},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base_Variable_spec = {
  "django_templates_cythonized.base.Variable",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_Variable),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base_Variable_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base_Variable = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""Variable", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base_Variable), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base_Variable, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_27django_templates_cythonized_4base_8Variable_5__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_27django_templates_cythonized_4base_8Variable_7__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    A template variable, resolvable against a given context. The variable may\n    be a hard-coded string (if it begins and ends with single or double quote\n    marks)::\n\n        >>> c = {'article': {'section':'News'}}\n        >>> Variable('article.section').resolve(c)\n        'News'\n        >>> Variable('article').resolve(c)\n        {'section': 'News'}\n        >>> class AClass: pass\n        >>> c = AClass()\n        >>> c.article = AClass()\n        >>> c.article.section = 'News'\n\n    (The example assumes VARIABLE_ATTRIBUTE_SEPARATOR is '.')\n    "), /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base_Variable, /*tp_traverse*/
  __pyx_tp_clear_27django_templates_cythonized_4base_Variable, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_27django_templates_cythonized_4base_Variable, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_27django_templates_cythonized_4base_Variable, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_27django_templates_cythonized_4base_8Variable_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base_Variable, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct__genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct__genexpr > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct__genexpr[--__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct__genexpr];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct__genexpr(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *p = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct__genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_n);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct__genexpr < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr))))
  {
    __pyx_mstate_global->__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct__genexpr[__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct__genexpr++] = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct__genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *p = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_n) {
    e = (*v)(p->__pyx_v_n, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct__genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct__genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct__genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr_spec = {
  "django_templates_cythonized.base.__pyx_scope_struct__genexpr",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""__pyx_scope_struct__genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct__genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct__genexpr, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct__genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct__genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter[--__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *p = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_p);
  Py_CLEAR(p->__pyx_v_template_source);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter))))
  {
    __pyx_mstate_global->__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter[__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter++] = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *p = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_p) {
    e = (*v)(p->__pyx_v_p, a); if (e) return e;
  }
  if (p->__pyx_v_template_source) {
    e = (*v)(p->__pyx_v_template_source, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter_spec = {
  "django_templates_cythonized.base.__pyx_scope_struct_1_linebreak_iter",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""__pyx_scope_struct_1_linebreak_iter", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions[--__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *p = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_end);
  Py_CLEAR(p->__pyx_v_last);
  Py_CLEAR(p->__pyx_v_match);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_start);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions))))
  {
    __pyx_mstate_global->__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions[__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions++] = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *p = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_end) {
    e = (*v)(p->__pyx_v_end, a); if (e) return e;
  }
  if (p->__pyx_v_last) {
    e = (*v)(p->__pyx_v_last, a); if (e) return e;
  }
  if (p->__pyx_v_match) {
    e = (*v)(p->__pyx_v_match, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(p->__pyx_v_self, a); if (e) return e;
  }
  if (p->__pyx_v_start) {
    e = (*v)(p->__pyx_v_start, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions_spec = {
  "django_templates_cythonized.base.__pyx_scope_struct_2__tag_re_split_positions",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""__pyx_scope_struct_2__tag_re_split_positions", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split))))
  {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split[--__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split];
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(Py_TYPE(o));
    #endif
    memset(o, 0, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split));
    #if CYTHON_COMPILING_IN_LIMITED_API
    (void) PyObject_Init(o, t);
    #else
    (void) PyObject_INIT(o, t);
    #endif
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = __Pyx_AllocateExtensionType(t, 1);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split(PyObject *o) {
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *p = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_position);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split, sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split))))
  {
    __pyx_mstate_global->__pyx_freelist_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split[__pyx_mstate_global->__pyx_freecount_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split++] = ((struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *)o);
  } else
  #endif
  {
    PyTypeObject *tp = Py_TYPE(o);
    #if CYTHON_USE_TYPE_SLOTS
    (*tp->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
    #if CYTHON_USE_TYPE_SPECS
    Py_DECREF(tp);
    #endif
  }
}

static int __pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *p = (struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_position) {
    e = (*v)(p->__pyx_v_position, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(p->__pyx_v_self, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split},
  {Py_tp_new, (void *)__pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split},
  {0, 0},
};
static PyType_Spec __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split_spec = {
  "django_templates_cythonized.base.__pyx_scope_struct_3__tag_re_split",
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split_slots,
};
#else

static PyTypeObject __pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split = {
  PyVarObject_HEAD_INIT(0, 0)
  "django_templates_cythonized.base.""__pyx_scope_struct_3__tag_re_split", /*tp_name*/
  sizeof(struct __pyx_obj_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};
/* #### Code section: initfunc_declarations ### */
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/
/* #### Code section: init_module ### */

static int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  {
    __pyx_t_1 = __Pyx_ApiExport_GetApiDict(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    const char * __pyx_export_signature = __Pyx_PyBytes_AsString(__pyx_mstate_global->__pyx_kp_b_PyObject_PyObject_PyObject_PyObj);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (unlikely(!__pyx_export_signature)) __PYX_ERR(0, 1, __pyx_L1_error)
    #endif
    const char * __pyx_export_name = __pyx_export_signature + 544;
    void (*const __pyx_export_pointers[])(void) = {(void (*)(void))&__pyx_f_27django_templates_cythonized_4base__fast_escape, (void (*)(void))&__pyx_f_27django_templates_cythonized_4base__fast_escape_raw, (void (*)(void))&__pyx_f_27django_templates_cythonized_4base_render_value_in_context, (void (*)(void))&__pyx_f_27django_templates_cythonized_4base__render_var_with_value, (void (*)(void))&__pyx_f_27django_templates_cythonized_4base__render_var_fast, (void (*)(void))&__pyx_f_27django_templates_cythonized_4base__resolve_fe_raw, (void (*)(void))&__pyx_f_27django_templates_cythonized_4base__fe_is_direct_loopvar, (void (*)(void)) NULL};
    void (*const *__pyx_export_pointer)(void) = __pyx_export_pointers;
    const char *__pyx_export_current_signature = __pyx_export_signature;
    while (*__pyx_export_pointer) {
      if (__Pyx_ExportFunction(__pyx_t_1, __pyx_export_name, *__pyx_export_pointer, __pyx_export_current_signature) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
      ++__pyx_export_pointer;
      __pyx_export_name = strchr(__pyx_export_name, '\0') + 1;
      __pyx_export_signature = strchr(__pyx_export_signature, '\0') + 1;
      if (*__pyx_export_signature != '\0') __pyx_export_current_signature = __pyx_export_signature;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base_CFilterInfo_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo)) __PYX_ERR(0, 846, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base_CFilterInfo_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo) < (0)) __PYX_ERR(0, 846, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo = &__pyx_type_27django_templates_cythonized_4base_CFilterInfo;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo) < (0)) __PYX_ERR(0, 846, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CFilterInfo, (PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo) < (0)) __PYX_ERR(0, 846, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo) < (0)) __PYX_ERR(0, 846, __pyx_L1_error)
  __pyx_vtabptr_27django_templates_cythonized_4base_Node = &__pyx_vtable_27django_templates_cythonized_4base_Node;
  __pyx_vtable_27django_templates_cythonized_4base_Node.render = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Node *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_4Node_render;
  __pyx_vtable_27django_templates_cythonized_4base_Node.render_annotated = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Node *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_4Node_render_annotated;
  __pyx_vtable_27django_templates_cythonized_4base_Node.get_nodes_by_type = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Node *, PyObject *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_4Node_get_nodes_by_type;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base_Node_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node)) __PYX_ERR(0, 1222, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base_Node_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node) < (0)) __PYX_ERR(0, 1222, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node = &__pyx_type_27django_templates_cythonized_4base_Node;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node) < (0)) __PYX_ERR(0, 1222, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node, __pyx_vtabptr_27django_templates_cythonized_4base_Node) < (0)) __PYX_ERR(0, 1222, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node) < (0)) __PYX_ERR(0, 1222, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Node, (PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node) < (0)) __PYX_ERR(0, 1222, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Node) < (0)) __PYX_ERR(0, 1222, __pyx_L1_error)
  __pyx_vtabptr_27django_templates_cythonized_4base_TextNode = &__pyx_vtable_27django_templates_cythonized_4base_TextNode;
  __pyx_vtable_27django_templates_cythonized_4base_TextNode.__pyx_base = *__pyx_vtabptr_27django_templates_cythonized_4base_Node;
  __pyx_vtable_27django_templates_cythonized_4base_TextNode.__pyx_base.render = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Node *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_8TextNode_render;
  __pyx_vtable_27django_templates_cythonized_4base_TextNode.__pyx_base.render_annotated = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Node *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_8TextNode_render_annotated;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base_TextNode_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode)) __PYX_ERR(0, 1388, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base_TextNode_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode) < (0)) __PYX_ERR(0, 1388, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode = &__pyx_type_27django_templates_cythonized_4base_TextNode;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode->tp_base = __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode) < (0)) __PYX_ERR(0, 1388, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode, __pyx_vtabptr_27django_templates_cythonized_4base_TextNode) < (0)) __PYX_ERR(0, 1388, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode) < (0)) __PYX_ERR(0, 1388, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TextNode, (PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode) < (0)) __PYX_ERR(0, 1388, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_TextNode) < (0)) __PYX_ERR(0, 1388, __pyx_L1_error)
  __pyx_vtabptr_27django_templates_cythonized_4base_NodeList = &__pyx_vtable_27django_templates_cythonized_4base_NodeList;
  __pyx_vtable_27django_templates_cythonized_4base_NodeList.render = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_8NodeList_render;
  __pyx_vtable_27django_templates_cythonized_4base_NodeList.get_nodes_by_type = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_NodeList *, PyObject *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_8NodeList_get_nodes_by_type;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base_NodeList_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList)) __PYX_ERR(0, 1282, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base_NodeList_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList) < (0)) __PYX_ERR(0, 1282, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList = &__pyx_type_27django_templates_cythonized_4base_NodeList;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList) < (0)) __PYX_ERR(0, 1282, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList, __pyx_vtabptr_27django_templates_cythonized_4base_NodeList) < (0)) __PYX_ERR(0, 1282, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList) < (0)) __PYX_ERR(0, 1282, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NodeList, (PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList) < (0)) __PYX_ERR(0, 1282, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_NodeList) < (0)) __PYX_ERR(0, 1282, __pyx_L1_error)
  __pyx_vtabptr_27django_templates_cythonized_4base_Template = &__pyx_vtable_27django_templates_cythonized_4base_Template;
  __pyx_vtable_27django_templates_cythonized_4base_Template._render = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Template *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_8Template__render;
  __pyx_vtable_27django_templates_cythonized_4base_Template.render = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Template *, PyObject *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_8Template_render;
  __pyx_vtable_27django_templates_cythonized_4base_Template.compile_nodelist = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Template *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_8Template_compile_nodelist;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base_Template_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template)) __PYX_ERR(0, 215, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base_Template_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template) < (0)) __PYX_ERR(0, 215, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template = &__pyx_type_27django_templates_cythonized_4base_Template;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template) < (0)) __PYX_ERR(0, 215, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template, __pyx_vtabptr_27django_templates_cythonized_4base_Template) < (0)) __PYX_ERR(0, 215, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template) < (0)) __PYX_ERR(0, 215, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Template_2, (PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template) < (0)) __PYX_ERR(0, 215, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Template) < (0)) __PYX_ERR(0, 215, __pyx_L1_error)
  __pyx_vtabptr_27django_templates_cythonized_4base_FilterExpression = &__pyx_vtable_27django_templates_cythonized_4base_FilterExpression;
  __pyx_vtable_27django_templates_cythonized_4base_FilterExpression.resolve = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch, struct __pyx_opt_args_27django_templates_cythonized_4base_16FilterExpression_resolve *__pyx_optional_args))__pyx_f_27django_templates_cythonized_4base_16FilterExpression_resolve;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base_FilterExpression_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression)) __PYX_ERR(0, 858, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base_FilterExpression_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression) < (0)) __PYX_ERR(0, 858, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression = &__pyx_type_27django_templates_cythonized_4base_FilterExpression;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression) < (0)) __PYX_ERR(0, 858, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression, __pyx_vtabptr_27django_templates_cythonized_4base_FilterExpression) < (0)) __PYX_ERR(0, 858, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression) < (0)) __PYX_ERR(0, 858, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FilterExpression, (PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression) < (0)) __PYX_ERR(0, 858, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression) < (0)) __PYX_ERR(0, 858, __pyx_L1_error)
  __pyx_vtabptr_27django_templates_cythonized_4base_VariableNode = &__pyx_vtable_27django_templates_cythonized_4base_VariableNode;
  __pyx_vtable_27django_templates_cythonized_4base_VariableNode.__pyx_base = *__pyx_vtabptr_27django_templates_cythonized_4base_Node;
  __pyx_vtable_27django_templates_cythonized_4base_VariableNode.__pyx_base.render = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Node *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_12VariableNode_render;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base_VariableNode_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode)) __PYX_ERR(0, 1826, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base_VariableNode_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode) < (0)) __PYX_ERR(0, 1826, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode = &__pyx_type_27django_templates_cythonized_4base_VariableNode;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode->tp_base = __pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode) < (0)) __PYX_ERR(0, 1826, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode, __pyx_vtabptr_27django_templates_cythonized_4base_VariableNode) < (0)) __PYX_ERR(0, 1826, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode) < (0)) __PYX_ERR(0, 1826, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VariableNode, (PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode) < (0)) __PYX_ERR(0, 1826, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_VariableNode) < (0)) __PYX_ERR(0, 1826, __pyx_L1_error)
  __pyx_vtabptr_27django_templates_cythonized_4base_PartialTemplate = &__pyx_vtable_27django_templates_cythonized_4base_PartialTemplate;
  __pyx_vtable_27django_templates_cythonized_4base_PartialTemplate.get_exception_info = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_15PartialTemplate_get_exception_info;
  __pyx_vtable_27django_templates_cythonized_4base_PartialTemplate.find_partial_source = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *, PyObject *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_15PartialTemplate_find_partial_source;
  __pyx_vtable_27django_templates_cythonized_4base_PartialTemplate._render = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_15PartialTemplate__render;
  __pyx_vtable_27django_templates_cythonized_4base_PartialTemplate.render = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_PartialTemplate *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_15PartialTemplate_render;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base_PartialTemplate_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate)) __PYX_ERR(0, 395, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base_PartialTemplate_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate) < (0)) __PYX_ERR(0, 395, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate = &__pyx_type_27django_templates_cythonized_4base_PartialTemplate;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate) < (0)) __PYX_ERR(0, 395, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate, __pyx_vtabptr_27django_templates_cythonized_4base_PartialTemplate) < (0)) __PYX_ERR(0, 395, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate) < (0)) __PYX_ERR(0, 395, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PartialTemplate, (PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate) < (0)) __PYX_ERR(0, 395, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate) < (0)) __PYX_ERR(0, 395, __pyx_L1_error)
  __pyx_vtabptr_27django_templates_cythonized_4base_Variable = &__pyx_vtable_27django_templates_cythonized_4base_Variable;
  __pyx_vtable_27django_templates_cythonized_4base_Variable.resolve = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Variable *, PyObject *, int __pyx_skip_dispatch))__pyx_f_27django_templates_cythonized_4base_8Variable_resolve;
  __pyx_vtable_27django_templates_cythonized_4base_Variable._resolve_lookup = (PyObject *(*)(struct __pyx_obj_27django_templates_cythonized_4base_Variable *, PyObject *))__pyx_f_27django_templates_cythonized_4base_8Variable__resolve_lookup;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base_Variable_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable)) __PYX_ERR(0, 1008, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base_Variable_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable) < (0)) __PYX_ERR(0, 1008, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable = &__pyx_type_27django_templates_cythonized_4base_Variable;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable) < (0)) __PYX_ERR(0, 1008, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable, __pyx_vtabptr_27django_templates_cythonized_4base_Variable) < (0)) __PYX_ERR(0, 1008, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable) < (0)) __PYX_ERR(0, 1008, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Variable, (PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable) < (0)) __PYX_ERR(0, 1008, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base_Variable) < (0)) __PYX_ERR(0, 1008, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr)) __PYX_ERR(0, 211, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr) < (0)) __PYX_ERR(0, 211, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr = &__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct__genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr) < (0)) __PYX_ERR(0, 211, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct__genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter)) __PYX_ERR(0, 474, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter) < (0)) __PYX_ERR(0, 474, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter = &__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter) < (0)) __PYX_ERR(0, 474, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_1_linebreak_iter->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions)) __PYX_ERR(0, 593, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions) < (0)) __PYX_ERR(0, 593, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions = &__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions) < (0)) __PYX_ERR(0, 593, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_2__tag_re_split_positions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split)) __PYX_ERR(0, 603, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split_spec, __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split) < (0)) __PYX_ERR(0, 603, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split = &__pyx_type_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split) < (0)) __PYX_ERR(0, 603, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split->tp_dictoffset && __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_27django_templates_cythonized_4base___pyx_scope_struct_3__tag_re_split->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule("django_templates_cythonized.context"); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_7context_BaseContext = __Pyx_ImportType_3_2_4(__pyx_t_1, "django_templates_cythonized.context", "BaseContext",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_27django_templates_cythonized_7context_BaseContext), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_27django_templates_cythonized_7context_BaseContext),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_27django_templates_cythonized_7context_BaseContext), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_27django_templates_cythonized_7context_BaseContext),
  #else
  sizeof(struct __pyx_obj_27django_templates_cythonized_7context_BaseContext), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_27django_templates_cythonized_7context_BaseContext),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_7context_BaseContext) __PYX_ERR(3, 3, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_7context_RenderContext = __Pyx_ImportType_3_2_4(__pyx_t_1, "django_templates_cythonized.context", "RenderContext",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_27django_templates_cythonized_7context_RenderContext), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_27django_templates_cythonized_7context_RenderContext),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_27django_templates_cythonized_7context_RenderContext), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_27django_templates_cythonized_7context_RenderContext),
  #else
  sizeof(struct __pyx_obj_27django_templates_cythonized_7context_RenderContext), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_27django_templates_cythonized_7context_RenderContext),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_7context_RenderContext) __PYX_ERR(3, 6, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_27django_templates_cythonized_7context_Context = __Pyx_ImportType_3_2_4(__pyx_t_1, "django_templates_cythonized.context", "Context",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_27django_templates_cythonized_7context_Context), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_27django_templates_cythonized_7context_Context),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_27django_templates_cythonized_7context_Context), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_27django_templates_cythonized_7context_Context),
  #else
  sizeof(struct __pyx_obj_27django_templates_cythonized_7context_Context), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_27django_templates_cythonized_7context_Context),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_27django_templates_cythonized_7context_Context) __PYX_ERR(3, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  {
    __pyx_t_1 = PyImport_ImportModule("django_templates_cythonized.formats"); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    const char * __pyx_import_signature = __Pyx_PyBytes_AsString(__pyx_mstate_global->__pyx_kp_b_PyObject_PyObject_int___pyx_skip);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (unlikely(!__pyx_import_signature)) __PYX_ERR(0, 1, __pyx_L1_error)
    #endif
    const char * __pyx_import_name = __pyx_import_signature + 157;
    void (**const __pyx_import_pointers[])(void) = {(void (**)(void))&__pyx_f_27django_templates_cythonized_7formats_localize, (void (**)(void))&__pyx_f_27django_templates_cythonized_7formats__float_is_str_fast, (void (**)(void)) NULL};
    void (**const *__pyx_import_pointer)(void) = __pyx_import_pointers;
    const char *__pyx_import_current_signature = __pyx_import_signature;
    while (*__pyx_import_pointer) {
      if (__Pyx_ImportFunction_3_2_4(__pyx_t_1, __pyx_import_name, *__pyx_import_pointer, __pyx_import_current_signature) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
      ++__pyx_import_pointer;
      __pyx_import_name = strchr(__pyx_import_name, '\0') + 1;
      __pyx_import_signature = strchr(__pyx_import_signature, '\0') + 1;
      if (*__pyx_import_signature != '\0') __pyx_import_current_signature = __pyx_import_signature;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  {
    __pyx_t_1 = PyImport_ImportModule("django_templates_cythonized.html"); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    const char * __pyx_import_signature = __Pyx_PyBytes_AsString(__pyx_mstate_global->__pyx_kp_b_PyObject_PyObject_int___pyx_skip_2);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (unlikely(!__pyx_import_signature)) __PYX_ERR(0, 1, __pyx_L1_error)
    #endif
    const char * __pyx_import_name = __pyx_import_signature + 48;
    void (**const __pyx_import_pointers[])(void) = {(void (**)(void))&__pyx_f_27django_templates_cythonized_4html_conditional_escape, (void (**)(void)) NULL};
    void (**const *__pyx_import_pointer)(void) = __pyx_import_pointers;
    const char *__pyx_import_current_signature = __pyx_import_signature;
    while (*__pyx_import_pointer) {
      if (__Pyx_ImportFunction_3_2_4(__pyx_t_1, __pyx_import_name, *__pyx_import_pointer, __pyx_import_current_signature) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
      ++__pyx_import_pointer;
      __pyx_import_name = strchr(__pyx_import_name, '\0') + 1;
      __pyx_import_signature = strchr(__pyx_import_signature, '\0') + 1;
      if (*__pyx_import_signature != '\0') __pyx_import_current_signature = __pyx_import_signature;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  {
    __pyx_t_1 = PyImport_ImportModule("django_templates_cythonized.timezone"); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    const char * __pyx_import_signature = __Pyx_PyBytes_AsString(__pyx_mstate_global->__pyx_kp_b_PyObject_PyObject_int___pyx_skip_3);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (unlikely(!__pyx_import_signature)) __PYX_ERR(0, 1, __pyx_L1_error)
    #endif
    const char * __pyx_import_name = __pyx_import_signature + 151;
    void (**const __pyx_import_pointers[])(void) = {(void (**)(void))&__pyx_f_27django_templates_cythonized_8timezone_template_localtime, (void (**)(void)) NULL};
    void (**const *__pyx_import_pointer)(void) = __pyx_import_pointers;
    const char *__pyx_import_current_signature = __pyx_import_signature;
    while (*__pyx_import_pointer) {
      if (__Pyx_ImportFunction_3_2_4(__pyx_t_1, __pyx_import_name, *__pyx_import_pointer, __pyx_import_current_signature) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
      ++__pyx_import_pointer;
      __pyx_import_name = strchr(__pyx_import_name, '\0') + 1;
      __pyx_import_signature = strchr(__pyx_import_signature, '\0') + 1;
      if (*__pyx_import_signature != '\0') __pyx_import_current_signature = __pyx_import_signature;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_base(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_base},
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE},
  #endif
  #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE
  {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},
  #endif
  {0, NULL}
};
#endif

#ifdef __cplusplus
namespace {
  struct PyModuleDef __pyx_moduledef =
  #else
  static struct PyModuleDef __pyx_moduledef =
  #endif
  {
      PyModuleDef_HEAD_INIT,
      "base",
      __pyx_k_This_is_the_Django_template_sys, /* m_doc */
    #if CYTHON_USE_MODULE_STATE
      sizeof(__pyx_mstatetype), /* m_size */
    #else
      (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */
    #endif
      __pyx_methods /* m_methods */,
    #if CYTHON_PEP489_MULTI_PHASE_INIT
      __pyx_moduledef_slots, /* m_slots */
    #else
      NULL, /* m_reload */
    #endif
    #if CYTHON_USE_MODULE_STATE
      __pyx_m_traverse, /* m_traverse */
      __pyx_m_clear, /* m_clear */
      NULL /* m_free */
    #else
      NULL, /* m_traverse */
      NULL, /* m_clear */
      NULL /* m_free */
    #endif
  };
  #ifdef __cplusplus
} /* anonymous namespace */
#endif

/* PyModInitFuncType */
#ifndef CYTHON_NO_PYINIT_EXPORT
  #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#else
  #ifdef __cplusplus
  #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
  #else
  #define __Pyx_PyMODINIT_FUNC PyObject *
  #endif
#endif

__Pyx_PyMODINIT_FUNC PyInit_base(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_base(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
/* ModuleCreationPEP489 */
#if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\
      || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000))
static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) {
    {
        PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think
        if (!module) {
            PyErr_Clear(); // just try the 3.8-3.12 version
            module = PyImport_ImportModule("_xxsubinterpreters");
            if (!module) goto bad;
        }
        PyObject *current = PyObject_CallMethod(module, "get_current", NULL);
        Py_DECREF(module);
        if (!current) goto bad;
        if (PyTuple_Check(current)) {
            PyObject *new_current = PySequence_GetItem(current, 0);
            Py_DECREF(current);
            current = new_current;
            if (!new_current) goto bad;
        }
        long long as_c_int = PyLong_AsLongLong(current);
        Py_DECREF(current);
        return as_c_int;
    }
  bad:
    PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n");
    return -1;
}
#endif
#if !CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    static PY_INT64_T main_interpreter_id = -1;
#if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
    PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
#elif CYTHON_COMPILING_IN_GRAAL
    PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
#elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\
      || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000))
    PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId();
#elif CYTHON_COMPILING_IN_LIMITED_API
    PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get());
#else
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
#endif
    if (unlikely(current_id == -1)) {
        return -1;
    }
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return 0;
    } else if (unlikely(main_interpreter_id != current_id)) {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
#endif
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
{
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    CYTHON_UNUSED_VAR(def);
    #if !CYTHON_USE_MODULE_STATE
    if (__Pyx_check_single_interpreter())
        return NULL;
    #endif
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_base(PyObject *__pyx_pyinit_module)
#endif
{
  int stringtab_initialized = 0;
  #if CYTHON_USE_MODULE_STATE
  int pystate_addmodule_run = 0;
  #endif
  __pyx_mstatetype *__pyx_mstate = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'base' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #else
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_t_1 = __pyx_pyinit_module;
  Py_INCREF(__pyx_t_1);
  #else
  __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #if CYTHON_USE_MODULE_STATE
  {
    int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef);
    __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "base" pseudovariable */
    if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    pystate_addmodule_run = 1;
  }
  #else
  __pyx_m = __pyx_t_1;
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED);
  #endif
  __pyx_mstate = __pyx_mstate_global;
  CYTHON_UNUSED_VAR(__pyx_t_1);
  __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_mstate->__pyx_d);
  __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /* ImportRefnannyAPI */
  #if CYTHON_REFNANNY
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
  if (!__Pyx_RefNanny) {
    PyErr_Clear();
    __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
    if (!__Pyx_RefNanny)
        Py_FatalError("failed to import 'refnanny' module");
  }
  #endif
  
__Pyx_RefNannySetupContext("PyInit_base", 0);
  __Pyx_init_runtime_version();
  if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Library function declarations ---*/
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  stringtab_initialized = 1;
  if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__pyx_module_is_main_django_templates_cythonized__base) {
    if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_3, __pyx_mstate_global->__pyx_n_u_main) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "django_templates_cythonized.base")) {
      if (unlikely((PyDict_SetItemString(modules, "django_templates_cythonized.base", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code(__pyx_mstate);
  (void)__Pyx_modinit_variable_export_code(__pyx_mstate);
  if (unlikely((__Pyx_modinit_function_export_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_init_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code(__pyx_mstate);
  if (unlikely((__Pyx_modinit_function_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Execution code ---*/

  /* "django_templates_cythonized/base.py":54
 * 
 * import cython
 * import html as _stdlib_html             # <<<<<<<<<<<<<<
 * import inspect
 * import logging
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_html, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stdlib_html, __pyx_t_2) < (0)) __PYX_ERR(0, 54, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":55
 * import cython
 * import html as _stdlib_html
 * import inspect             # <<<<<<<<<<<<<<
 * import logging
 * import re
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_inspect, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_inspect, __pyx_t_2) < (0)) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":56
 * import html as _stdlib_html
 * import inspect
 * import logging             # <<<<<<<<<<<<<<
 * import re
 * import warnings
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_logging, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_logging, __pyx_t_2) < (0)) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":57
 * import inspect
 * import logging
 * import re             # <<<<<<<<<<<<<<
 * import warnings
 * from datetime import datetime as _datetime_type
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_re, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_re, __pyx_t_2) < (0)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":58
 * import logging
 * import re
 * import warnings             # <<<<<<<<<<<<<<
 * from datetime import datetime as _datetime_type
 * from django.template.base import TokenType
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_warnings, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_warnings, __pyx_t_2) < (0)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":59
 * import re
 * import warnings
 * from datetime import datetime as _datetime_type             # <<<<<<<<<<<<<<
 * from django.template.base import TokenType
 * 
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_datetime};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_datetime, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_datetime};
    __pyx_t_3 = 0; {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 59, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      switch (__pyx_t_3) {
        case 0:
        if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_datetime_type, __pyx_t_4) < (0)) __PYX_ERR(0, 59, __pyx_L1_error)
        break;
        default:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":60
 * import warnings
 * from datetime import datetime as _datetime_type
 * from django.template.base import TokenType             # <<<<<<<<<<<<<<
 * 
 * from .context import BaseContext
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_TokenType};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_template_base, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_TokenType};
    __pyx_t_3 = 0; {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 60, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 60, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":62
 * from django.template.base import TokenType
 * 
 * from .context import BaseContext             # <<<<<<<<<<<<<<
 * 
 * # C-level cimports: in compiled mode, these use cpdef fast path (C-level call);
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_BaseContext};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_context, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_django_templates_cythonized_cont, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_BaseContext};
    __pyx_t_3 = 0; {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 62, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 62, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":70
 * from cython.cimports.django_templates_cythonized.html import conditional_escape
 * from cython.cimports.django_templates_cythonized.timezone import template_localtime
 * from .safestring import SafeData, SafeString, mark_safe             # <<<<<<<<<<<<<<
 * from django.utils.deprecation import django_file_prefixes
 * from django.utils.inspect import lazy_annotations
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_SafeData,__pyx_mstate_global->__pyx_n_u_SafeString,__pyx_mstate_global->__pyx_n_u_mark_safe};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_safestring, __pyx_imported_names, 3, __pyx_mstate_global->__pyx_kp_u_django_templates_cythonized_safe, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_SafeData,__pyx_mstate_global->__pyx_n_u_SafeString,__pyx_mstate_global->__pyx_n_u_mark_safe};
    for (__pyx_t_3=0; __pyx_t_3 < 3; __pyx_t_3++) {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 70, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":71
 * from cython.cimports.django_templates_cythonized.timezone import template_localtime
 * from .safestring import SafeData, SafeString, mark_safe
 * from django.utils.deprecation import django_file_prefixes             # <<<<<<<<<<<<<<
 * from django.utils.inspect import lazy_annotations
 * from django.utils.regex_helper import _lazy_re_compile
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_django_file_prefixes};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_deprecation, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_django_file_prefixes};
    __pyx_t_3 = 0; {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 71, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 71, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":72
 * from .safestring import SafeData, SafeString, mark_safe
 * from django.utils.deprecation import django_file_prefixes
 * from django.utils.inspect import lazy_annotations             # <<<<<<<<<<<<<<
 * from django.utils.regex_helper import _lazy_re_compile
 * from django.utils.text import get_text_list, smart_split, unescape_string_literal
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_lazy_annotations};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_inspect, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_lazy_annotations};
    __pyx_t_3 = 0; {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 72, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 72, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":73
 * from django.utils.deprecation import django_file_prefixes
 * from django.utils.inspect import lazy_annotations
 * from django.utils.regex_helper import _lazy_re_compile             # <<<<<<<<<<<<<<
 * from django.utils.text import get_text_list, smart_split, unescape_string_literal
 * from django.utils.translation import gettext_lazy, pgettext_lazy
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_lazy_re_compile};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_regex_helper, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_lazy_re_compile};
    __pyx_t_3 = 0; {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 73, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 73, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":74
 * from django.utils.inspect import lazy_annotations
 * from django.utils.regex_helper import _lazy_re_compile
 * from django.utils.text import get_text_list, smart_split, unescape_string_literal             # <<<<<<<<<<<<<<
 * from django.utils.translation import gettext_lazy, pgettext_lazy
 * 
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_text_list,__pyx_mstate_global->__pyx_n_u_smart_split,__pyx_mstate_global->__pyx_n_u_unescape_string_literal};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_text, __pyx_imported_names, 3, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_text_list,__pyx_mstate_global->__pyx_n_u_smart_split,__pyx_mstate_global->__pyx_n_u_unescape_string_literal};
    for (__pyx_t_3=0; __pyx_t_3 < 3; __pyx_t_3++) {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 74, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 74, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":75
 * from django.utils.regex_helper import _lazy_re_compile
 * from django.utils.text import get_text_list, smart_split, unescape_string_literal
 * from django.utils.translation import gettext_lazy, pgettext_lazy             # <<<<<<<<<<<<<<
 * 
 * from .exceptions import TemplateDoesNotExist, TemplateSyntaxError
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_gettext_lazy,__pyx_mstate_global->__pyx_n_u_pgettext_lazy};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_django_utils_translation, __pyx_imported_names, 2, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_gettext_lazy,__pyx_mstate_global->__pyx_n_u_pgettext_lazy};
    for (__pyx_t_3=0; __pyx_t_3 < 2; __pyx_t_3++) {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 75, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 75, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":77
 * from django.utils.translation import gettext_lazy, pgettext_lazy
 * 
 * from .exceptions import TemplateDoesNotExist, TemplateSyntaxError             # <<<<<<<<<<<<<<
 * 
 * 
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_TemplateDoesNotExist,__pyx_mstate_global->__pyx_n_u_TemplateSyntaxError};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_exceptions, __pyx_imported_names, 2, __pyx_mstate_global->__pyx_kp_u_django_templates_cythonized_exce, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_TemplateDoesNotExist,__pyx_mstate_global->__pyx_n_u_TemplateSyntaxError};
    for (__pyx_t_3=0; __pyx_t_3 < 2; __pyx_t_3++) {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 77, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 77, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":81
 * 
 * # template syntax constants
 * FILTER_SEPARATOR = "|"             # <<<<<<<<<<<<<<
 * FILTER_ARGUMENT_SEPARATOR = ":"
 * VARIABLE_ATTRIBUTE_SEPARATOR = "."
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FILTER_SEPARATOR, __pyx_mstate_global->__pyx_kp_u__16) < (0)) __PYX_ERR(0, 81, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":82
 * # template syntax constants
 * FILTER_SEPARATOR = "|"
 * FILTER_ARGUMENT_SEPARATOR = ":"             # <<<<<<<<<<<<<<
 * VARIABLE_ATTRIBUTE_SEPARATOR = "."
 * BLOCK_TAG_START = "{%"
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FILTER_ARGUMENT_SEPARATOR, __pyx_mstate_global->__pyx_kp_u__23) < (0)) __PYX_ERR(0, 82, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":83
 * FILTER_SEPARATOR = "|"
 * FILTER_ARGUMENT_SEPARATOR = ":"
 * VARIABLE_ATTRIBUTE_SEPARATOR = "."             # <<<<<<<<<<<<<<
 * BLOCK_TAG_START = "{%"
 * BLOCK_TAG_END = "%}"
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VARIABLE_ATTRIBUTE_SEPARATOR, __pyx_mstate_global->__pyx_kp_u__3) < (0)) __PYX_ERR(0, 83, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":84
 * FILTER_ARGUMENT_SEPARATOR = ":"
 * VARIABLE_ATTRIBUTE_SEPARATOR = "."
 * BLOCK_TAG_START = "{%"             # <<<<<<<<<<<<<<
 * BLOCK_TAG_END = "%}"
 * VARIABLE_TAG_START = "{{"
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BLOCK_TAG_START, __pyx_mstate_global->__pyx_kp_u__24) < (0)) __PYX_ERR(0, 84, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":85
 * VARIABLE_ATTRIBUTE_SEPARATOR = "."
 * BLOCK_TAG_START = "{%"
 * BLOCK_TAG_END = "%}"             # <<<<<<<<<<<<<<
 * VARIABLE_TAG_START = "{{"
 * VARIABLE_TAG_END = "}}"
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BLOCK_TAG_END, __pyx_mstate_global->__pyx_kp_u__25) < (0)) __PYX_ERR(0, 85, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":86
 * BLOCK_TAG_START = "{%"
 * BLOCK_TAG_END = "%}"
 * VARIABLE_TAG_START = "{{"             # <<<<<<<<<<<<<<
 * VARIABLE_TAG_END = "}}"
 * COMMENT_TAG_START = "{#"
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VARIABLE_TAG_START, __pyx_mstate_global->__pyx_kp_u__26) < (0)) __PYX_ERR(0, 86, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":87
 * BLOCK_TAG_END = "%}"
 * VARIABLE_TAG_START = "{{"
 * VARIABLE_TAG_END = "}}"             # <<<<<<<<<<<<<<
 * COMMENT_TAG_START = "{#"
 * COMMENT_TAG_END = "#}"
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VARIABLE_TAG_END, __pyx_mstate_global->__pyx_kp_u__27) < (0)) __PYX_ERR(0, 87, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":88
 * VARIABLE_TAG_START = "{{"
 * VARIABLE_TAG_END = "}}"
 * COMMENT_TAG_START = "{#"             # <<<<<<<<<<<<<<
 * COMMENT_TAG_END = "#}"
 * SINGLE_BRACE_START = "{"
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COMMENT_TAG_START, __pyx_mstate_global->__pyx_kp_u__28) < (0)) __PYX_ERR(0, 88, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":89
 * VARIABLE_TAG_END = "}}"
 * COMMENT_TAG_START = "{#"
 * COMMENT_TAG_END = "#}"             # <<<<<<<<<<<<<<
 * SINGLE_BRACE_START = "{"
 * SINGLE_BRACE_END = "}"
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COMMENT_TAG_END, __pyx_mstate_global->__pyx_kp_u__29) < (0)) __PYX_ERR(0, 89, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":90
 * COMMENT_TAG_START = "{#"
 * COMMENT_TAG_END = "#}"
 * SINGLE_BRACE_START = "{"             # <<<<<<<<<<<<<<
 * SINGLE_BRACE_END = "}"
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINGLE_BRACE_START, __pyx_mstate_global->__pyx_kp_u__30) < (0)) __PYX_ERR(0, 90, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":91
 * COMMENT_TAG_END = "#}"
 * SINGLE_BRACE_START = "{"
 * SINGLE_BRACE_END = "}"             # <<<<<<<<<<<<<<
 * 
 * # what to report as the origin for templates that come from non-loader sources
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINGLE_BRACE_END, __pyx_mstate_global->__pyx_kp_u__31) < (0)) __PYX_ERR(0, 91, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":95
 * # what to report as the origin for templates that come from non-loader sources
 * # (e.g. strings)
 * UNKNOWN_SOURCE = "<unknown source>"             # <<<<<<<<<<<<<<
 * 
 * # Match BLOCK_TAG_*, VARIABLE_TAG_*, and COMMENT_TAG_* tags and capture the
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_UNKNOWN_SOURCE, __pyx_mstate_global->__pyx_kp_u_unknown_source) < (0)) __PYX_ERR(0, 95, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":100
 * # entire tag, including start/end delimiters. Using re.compile() is faster
 * # than instantiating SimpleLazyObject with _lazy_re_compile().
 * tag_re = re.compile(r"({%.*?%}|{{.*?}}|{#.*?#})")             # <<<<<<<<<<<<<<
 * 
 * logger = logging.getLogger("django.template")
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_compile); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u__32};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_tag_re, __pyx_t_2) < (0)) __PYX_ERR(0, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":102
 * tag_re = re.compile(r"({%.*?%}|{{.*?}}|{#.*?#})")
 * 
 * logger = logging.getLogger("django.template")             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_logging); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_getLogger); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_django_template};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_logger, __pyx_t_2) < (0)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":105
 * 
 * 
 * class VariableDoesNotExist(Exception):             # <<<<<<<<<<<<<<
 *     def __init__(self, msg, params=()):
 *         self.msg = msg
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_5, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_5 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 105, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":106
 * 
 * class VariableDoesNotExist(Exception):
 *     def __init__(self, msg, params=()):             # <<<<<<<<<<<<<<
 *         self.msg = msg
 *         self.params = params
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_20VariableDoesNotExist_1__init__, 0, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist___init, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[5]);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":110
 *         self.params = params
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.msg % self.params
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_20VariableDoesNotExist_3__str__, 0, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist___str, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_2) < (0)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":105
 * 
 * 
 * class VariableDoesNotExist(Exception):             # <<<<<<<<<<<<<<
 *     def __init__(self, msg, params=()):
 *         self.msg = msg
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist, __pyx_t_5, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VariableDoesNotExist, __pyx_t_2) < (0)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":114
 * 
 * 
 * class Origin:             # <<<<<<<<<<<<<<
 *     def __init__(self, name, template_name=None, loader=None):
 *         self.name = name
*/
  __pyx_t_5 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_Origin, __pyx_mstate_global->__pyx_n_u_Origin, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "django_templates_cythonized/base.py":115
 * 
 * class Origin:
 *     def __init__(self, name, template_name=None, loader=None):             # <<<<<<<<<<<<<<
 *         self.name = name
 *         self.template_name = template_name
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Origin_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Origin___init, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_mstate_global->__pyx_tuple[6]);
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_6) < (0)) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":120
 *         self.loader = loader
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Origin_3__str__, 0, __pyx_mstate_global->__pyx_n_u_Origin___str, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_6) < (0)) __PYX_ERR(0, 120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":123
 *         return self.name
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s name=%r>" % (self.__class__.__qualname__, self.name)
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Origin_5__repr__, 0, __pyx_mstate_global->__pyx_n_u_Origin___repr, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_6) < (0)) __PYX_ERR(0, 123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":126
 *         return "<%s name=%r>" % (self.__class__.__qualname__, self.name)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return isinstance(other, Origin) and self.name == other.name and self.loader == other.loader
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Origin_7__eq__, 0, __pyx_mstate_global->__pyx_n_u_Origin___eq, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_eq, __pyx_t_6) < (0)) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":129
 *         return isinstance(other, Origin) and self.name == other.name and self.loader == other.loader
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def loader_name(self):
 *         if self.loader:
*/
  __pyx_t_4 = NULL;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Origin_9loader_name, 0, __pyx_mstate_global->__pyx_n_u_Origin_loader_name, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_loader_name, __pyx_t_6) < (0)) __PYX_ERR(0, 129, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":114
 * 
 * 
 * class Origin:             # <<<<<<<<<<<<<<
 *     def __init__(self, name, template_name=None, loader=None):
 *         self.name = name
*/
  __pyx_t_6 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_Origin, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Origin, __pyx_t_6) < (0)) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":138
 * 
 * 
 * def _flatten_includes(nodelist, engine, seen):             # <<<<<<<<<<<<<<
 *     """
 *     Walk a NodeList and replace qualifying IncludeNodes with inlined nodes
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_1_flatten_includes, 0, __pyx_mstate_global->__pyx_n_u_flatten_includes, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_flatten_includes, __pyx_t_5) < (0)) __PYX_ERR(0, 138, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":239
 *         )
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def _render(self, context: Context):
 *         return self.nodelist.render(context)
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 239, __pyx_L1_error)
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8Template_5_render, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Template__render, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template, __pyx_mstate_global->__pyx_n_u_render, __pyx_t_6) < (0)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":243
 *         return self.nodelist.render(context)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context):
 *         "Display stage -- can be called many times"
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8Template_7render, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Template_render, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template, __pyx_mstate_global->__pyx_n_u_render_2, __pyx_t_6) < (0)) __PYX_ERR(0, 243, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":279
 *             rc.dicts.pop()
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def compile_nodelist(self):
 *         """
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8Template_9compile_nodelist, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Template_compile_nodelist, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template, __pyx_mstate_global->__pyx_n_u_compile_nodelist, __pyx_t_6) < (0)) __PYX_ERR(0, 279, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":315
 *             raise
 * 
 *     def get_exception_info(self, exception, token):             # <<<<<<<<<<<<<<
 *         """
 *         Return a dictionary containing contextual line information of where
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8Template_11get_exception_info, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Template_get_exception_info, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template, __pyx_mstate_global->__pyx_n_u_get_exception_info, __pyx_t_6) < (0)) __PYX_ERR(0, 315, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8Template_13__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Template___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Template, (type(self), 0xd078213, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Template__set_state(self, __pyx_state)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8Template_15__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Template___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Template, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < (0)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":417
 *         self._source_end = source_end
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def get_exception_info(self, exception, token):
 *         template = self.origin.loader.get_template(self.origin.template_name)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_3get_exception_info, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PartialTemplate_get_exception_in, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate, __pyx_mstate_global->__pyx_n_u_get_exception_info, __pyx_t_6) < (0)) __PYX_ERR(0, 417, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":422
 *         return template.get_exception_info(exception, token)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def find_partial_source(self, full_source):
 *         if (
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_5find_partial_source, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PartialTemplate_find_partial_sou, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate, __pyx_mstate_global->__pyx_n_u_find_partial_source, __pyx_t_6) < (0)) __PYX_ERR(0, 422, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":444
 *         return self.find_partial_source(template.source)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def _render(self, context: Context):
 *         return self.nodelist.render(context)
*/
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 444, __pyx_L1_error)
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_7_render, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PartialTemplate__render, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_6);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate, __pyx_mstate_global->__pyx_n_u_render, __pyx_t_5) < (0)) __PYX_ERR(0, 444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":448
 *         return self.nodelist.render(context)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         # Inline push_state + bind_template (same as Template.render).
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 448, __pyx_L1_error)
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_9render, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PartialTemplate_render, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate, __pyx_mstate_global->__pyx_n_u_render_2, __pyx_t_6) < (0)) __PYX_ERR(0, 448, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PartialTemplate___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PartialTemplate, (type(self), 0x56e67d7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PartialTemplate__set_state(self, __pyx_state)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_15PartialTemplate_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PartialTemplate___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_PartialTemplate, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < (0)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":474
 * 
 * 
 * def linebreak_iter(template_source):             # <<<<<<<<<<<<<<
 *     yield 0
 *     p = template_source.find("\n")
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_3linebreak_iter, 0, __pyx_mstate_global->__pyx_n_u_linebreak_iter, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_linebreak_iter, __pyx_t_6) < (0)) __PYX_ERR(0, 474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":483
 * 
 * 
 * class Token:             # <<<<<<<<<<<<<<
 *     def __init__(self, token_type, contents, position=None, lineno=None):
 *         """
*/
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_Token, __pyx_mstate_global->__pyx_n_u_Token, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, (PyObject *) NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "django_templates_cythonized/base.py":484
 * 
 * class Token:
 *     def __init__(self, token_type, contents, position=None, lineno=None):             # <<<<<<<<<<<<<<
 *         """
 *         A token representing a string from the template.
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_5Token_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Token___init, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[6]);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_5) < (0)) __PYX_ERR(0, 484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":508
 *         self.position = position
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         token_name = self.token_type.name.capitalize()
 *         return '<%s token: "%s...">' % (
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_5Token_3__repr__, 0, __pyx_mstate_global->__pyx_n_u_Token___repr, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_5) < (0)) __PYX_ERR(0, 508, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":515
 *         )
 * 
 *     def split_contents(self):             # <<<<<<<<<<<<<<
 *         split = []
 *         bits = smart_split(self.contents)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_5Token_5split_contents, 0, __pyx_mstate_global->__pyx_n_u_Token_split_contents, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_split_contents, __pyx_t_5) < (0)) __PYX_ERR(0, 515, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":483
 * 
 * 
 * class Token:             # <<<<<<<<<<<<<<
 *     def __init__(self, token_type, contents, position=None, lineno=None):
 *         """
*/
  __pyx_t_5 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_Token, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Token, __pyx_t_5) < (0)) __PYX_ERR(0, 483, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":531
 * 
 * 
 * class Lexer:             # <<<<<<<<<<<<<<
 *     def __init__(self, template_string):
 *         self.template_string = template_string
*/
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_Lexer, __pyx_mstate_global->__pyx_n_u_Lexer, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, (PyObject *) NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "django_templates_cythonized/base.py":532
 * 
 * class Lexer:
 *     def __init__(self, template_string):             # <<<<<<<<<<<<<<
 *         self.template_string = template_string
 *         self.verbatim = False
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_5Lexer_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Lexer___init, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_5) < (0)) __PYX_ERR(0, 532, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":536
 *         self.verbatim = False
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return '<%s template_string="%s...", verbatim=%s>' % (
 *             self.__class__.__qualname__,
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_5Lexer_3__repr__, 0, __pyx_mstate_global->__pyx_n_u_Lexer___repr, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_5) < (0)) __PYX_ERR(0, 536, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":543
 *         )
 * 
 *     def tokenize(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return a list of tokens from a given template_string.
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_5Lexer_5tokenize, 0, __pyx_mstate_global->__pyx_n_u_Lexer_tokenize, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_tokenize, __pyx_t_5) < (0)) __PYX_ERR(0, 543, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":557
 *         return result
 * 
 *     def create_token(self, token_string, position, lineno, in_tag):             # <<<<<<<<<<<<<<
 *         """
 *         Convert the given token string into a new Token object and return it.
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_5Lexer_7create_token, 0, __pyx_mstate_global->__pyx_n_u_Lexer_create_token, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_create_token, __pyx_t_5) < (0)) __PYX_ERR(0, 557, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":531
 * 
 * 
 * class Lexer:             # <<<<<<<<<<<<<<
 *     def __init__(self, template_string):
 *         self.template_string = template_string
*/
  __pyx_t_5 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_Lexer, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Lexer, __pyx_t_5) < (0)) __PYX_ERR(0, 531, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":592
 * 
 * 
 * class DebugLexer(Lexer):             # <<<<<<<<<<<<<<
 *     def _tag_re_split_positions(self):
 *         last = 0
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Lexer); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PEP560_update_bases(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_6, __pyx_mstate_global->__pyx_n_u_DebugLexer, __pyx_mstate_global->__pyx_n_u_DebugLexer, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_6 != __pyx_t_5) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_5) < 0))) __PYX_ERR(0, 592, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":593
 * 
 * class DebugLexer(Lexer):
 *     def _tag_re_split_positions(self):             # <<<<<<<<<<<<<<
 *         last = 0
 *         for match in tag_re.finditer(self.template_string):
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_10DebugLexer_1_tag_re_split_positions, 0, __pyx_mstate_global->__pyx_n_u_DebugLexer__tag_re_split_positio, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_tag_re_split_positions, __pyx_t_5) < (0)) __PYX_ERR(0, 593, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":603
 * 
 *     # This parallels the use of tag_re.split() in Lexer.tokenize().
 *     def _tag_re_split(self):             # <<<<<<<<<<<<<<
 *         for position in self._tag_re_split_positions():
 *             yield self.template_string[slice(*position)], position
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_10DebugLexer_4_tag_re_split, 0, __pyx_mstate_global->__pyx_n_u_DebugLexer__tag_re_split, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_tag_re_split, __pyx_t_5) < (0)) __PYX_ERR(0, 603, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":607
 *             yield self.template_string[slice(*position)], position
 * 
 *     def tokenize(self):             # <<<<<<<<<<<<<<
 *         """
 *         Split a template string into tokens and annotates each token with its
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_10DebugLexer_7tokenize, 0, __pyx_mstate_global->__pyx_n_u_DebugLexer_tokenize, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_tokenize, __pyx_t_5) < (0)) __PYX_ERR(0, 607, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":592
 * 
 * 
 * class DebugLexer(Lexer):             # <<<<<<<<<<<<<<
 *     def _tag_re_split_positions(self):
 *         last = 0
*/
  __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DebugLexer, __pyx_t_6, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DebugLexer, __pyx_t_5) < (0)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":626
 * 
 * 
 * class Parser:             # <<<<<<<<<<<<<<
 *     def __init__(self, tokens, libraries=None, builtins=None, origin=None):
 *         # Reverse the tokens so delete_first_token(), prepend_token(), and
*/
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_Parser, __pyx_mstate_global->__pyx_n_u_Parser, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, (PyObject *) NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "django_templates_cythonized/base.py":627
 * 
 * class Parser:
 *     def __init__(self, tokens, libraries=None, builtins=None, origin=None):             # <<<<<<<<<<<<<<
 *         # Reverse the tokens so delete_first_token(), prepend_token(), and
 *         # next_token() can operate at the end of the list in constant time.
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Parser___init, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[1]);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 627, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":651
 *         self.origin = origin
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<%s tokens=%r>" % (self.__class__.__qualname__, self.tokens)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_3__repr__, 0, __pyx_mstate_global->__pyx_n_u_Parser___repr, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_2) < (0)) __PYX_ERR(0, 651, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":654
 *         return "<%s tokens=%r>" % (self.__class__.__qualname__, self.tokens)
 * 
 *     def parse(self, parse_until=None):             # <<<<<<<<<<<<<<
 *         """
 *         Iterate through the parser tokens and compiles each one into a node.
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_5parse, 0, __pyx_mstate_global->__pyx_n_u_Parser_parse, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[7]);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_parse, __pyx_t_2) < (0)) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":716
 *         return nodelist
 * 
 *     def skip_past(self, endtag):             # <<<<<<<<<<<<<<
 *         while self.tokens:
 *             token = self.next_token()
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_7skip_past, 0, __pyx_mstate_global->__pyx_n_u_Parser_skip_past, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_skip_past, __pyx_t_2) < (0)) __PYX_ERR(0, 716, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":723
 *         self.unclosed_block_tag([endtag])
 * 
 *     def extend_nodelist(self, nodelist, node, token):             # <<<<<<<<<<<<<<
 *         # Check that non-text nodes don't appear before an extends tag.
 *         if node.must_be_first and nodelist.contains_nontext:
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_9extend_nodelist, 0, __pyx_mstate_global->__pyx_n_u_Parser_extend_nodelist, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_extend_nodelist, __pyx_t_2) < (0)) __PYX_ERR(0, 723, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":742
 *         nodelist.append(node)
 * 
 *     def error(self, token, e):             # <<<<<<<<<<<<<<
 *         """
 *         Return an exception annotated with the originating token. Since the
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_11error, 0, __pyx_mstate_global->__pyx_n_u_Parser_error, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_error, __pyx_t_2) < (0)) __PYX_ERR(0, 742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":755
 *         return e
 * 
 *     def invalid_block_tag(self, token, command, parse_until=None):             # <<<<<<<<<<<<<<
 *         if parse_until:
 *             raise self.error(
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_13invalid_block_tag, 0, __pyx_mstate_global->__pyx_n_u_Parser_invalid_block_tag, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[7]);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_invalid_block_tag, __pyx_t_2) < (0)) __PYX_ERR(0, 755, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":773
 *         )
 * 
 *     def unclosed_block_tag(self, parse_until):             # <<<<<<<<<<<<<<
 *         command, token = self.command_stack.pop()
 *         msg = "Unclosed tag on line %d: '%s'. Looking for one of: %s." % (
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_15unclosed_block_tag, 0, __pyx_mstate_global->__pyx_n_u_Parser_unclosed_block_tag, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_unclosed_block_tag, __pyx_t_2) < (0)) __PYX_ERR(0, 773, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":782
 *         raise self.error(token, msg)
 * 
 *     def next_token(self):             # <<<<<<<<<<<<<<
 *         return self.tokens.pop()
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_17next_token, 0, __pyx_mstate_global->__pyx_n_u_Parser_next_token, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_next_token, __pyx_t_2) < (0)) __PYX_ERR(0, 782, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":785
 *         return self.tokens.pop()
 * 
 *     def prepend_token(self, token):             # <<<<<<<<<<<<<<
 *         self.tokens.append(token)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_19prepend_token, 0, __pyx_mstate_global->__pyx_n_u_Parser_prepend_token, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_prepend_token, __pyx_t_2) < (0)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":788
 *         self.tokens.append(token)
 * 
 *     def delete_first_token(self):             # <<<<<<<<<<<<<<
 *         del self.tokens[-1]
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_21delete_first_token, 0, __pyx_mstate_global->__pyx_n_u_Parser_delete_first_token, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_delete_first_token, __pyx_t_2) < (0)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":791
 *         del self.tokens[-1]
 * 
 *     def add_library(self, lib):             # <<<<<<<<<<<<<<
 *         self.tags.update(lib.tags)
 *         self.filters.update(lib.filters)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_23add_library, 0, __pyx_mstate_global->__pyx_n_u_Parser_add_library, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_add_library, __pyx_t_2) < (0)) __PYX_ERR(0, 791, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":795
 *         self.filters.update(lib.filters)
 * 
 *     def compile_filter(self, token):             # <<<<<<<<<<<<<<
 *         """
 *         Convenient wrapper for FilterExpression
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_25compile_filter, 0, __pyx_mstate_global->__pyx_n_u_Parser_compile_filter, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_compile_filter, __pyx_t_2) < (0)) __PYX_ERR(0, 795, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":801
 *         return FilterExpression(token, self)
 * 
 *     def find_filter(self, filter_name):             # <<<<<<<<<<<<<<
 *         if filter_name in self.filters:
 *             return self.filters[filter_name]
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6Parser_27find_filter, 0, __pyx_mstate_global->__pyx_n_u_Parser_find_filter, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_find_filter, __pyx_t_2) < (0)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":626
 * 
 * 
 * class Parser:             # <<<<<<<<<<<<<<
 *     def __init__(self, tokens, libraries=None, builtins=None, origin=None):
 *         # Reverse the tokens so delete_first_token(), prepend_token(), and
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_Parser, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Parser, __pyx_t_2) < (0)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":817
 * %(strsq)s)
 * """ % {
 *     "strdq": r'"[^"\\]*(?:\\.[^"\\]*)*"',  # double-quoted string             # <<<<<<<<<<<<<<
 *     "strsq": r"'[^'\\]*(?:\\.[^'\\]*)*'",  # single-quoted string
 *     "i18n_open": re.escape("_("),
*/
  __pyx_t_6 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_strdq, __pyx_mstate_global->__pyx_kp_u__33) < (0)) __PYX_ERR(0, 817, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_strsq, __pyx_mstate_global->__pyx_kp_u__34) < (0)) __PYX_ERR(0, 817, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":819
 *     "strdq": r'"[^"\\]*(?:\\.[^"\\]*)*"',  # double-quoted string
 *     "strsq": r"'[^'\\]*(?:\\.[^'\\]*)*'",  # single-quoted string
 *     "i18n_open": re.escape("_("),             # <<<<<<<<<<<<<<
 *     "i18n_close": re.escape(")"),
 * }
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 819, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_escape); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 819, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u__18};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_i18n_open, __pyx_t_2) < (0)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":820
 *     "strsq": r"'[^'\\]*(?:\\.[^'\\]*)*'",  # single-quoted string
 *     "i18n_open": re.escape("_("),
 *     "i18n_close": re.escape(")"),             # <<<<<<<<<<<<<<
 * }
 * constant_string = constant_string.replace("\n", "")
*/
  __pyx_t_8 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_escape); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u__12};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_i18n_close, __pyx_t_2) < (0)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":816
 * %(strdq)s|
 * %(strsq)s)
 * """ % {             # <<<<<<<<<<<<<<
 *     "strdq": r'"[^"\\]*(?:\\.[^"\\]*)*"',  # double-quoted string
 *     "strsq": r"'[^'\\]*(?:\\.[^'\\]*)*'",  # single-quoted string
*/
  __pyx_t_2 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_i18n_open_s_strdq_s_i18n_close, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_constant_string, __pyx_t_2) < (0)) __PYX_ERR(0, 811, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":822
 *     "i18n_close": re.escape(")"),
 * }
 * constant_string = constant_string.replace("\n", "")             # <<<<<<<<<<<<<<
 * 
 * filter_raw_string = r"""
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_constant_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_mstate_global->__pyx_tuple[2], NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_constant_string, __pyx_t_2) < (0)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "django_templates_cythonized/base.py":836
 *          )?
 *  )""" % {
 *     "constant": constant_string,             # <<<<<<<<<<<<<<
 *     "var_chars": r"\w\.\+-",
 *     "filter_sep": re.escape(FILTER_SEPARATOR),
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_constant_string); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_constant, __pyx_t_6) < (0)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_var_chars, __pyx_mstate_global->__pyx_kp_u_w) < (0)) __PYX_ERR(0, 836, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":838
 *     "constant": constant_string,
 *     "var_chars": r"\w\.\+-",
 *     "filter_sep": re.escape(FILTER_SEPARATOR),             # <<<<<<<<<<<<<<
 *     "arg_sep": re.escape(FILTER_ARGUMENT_SEPARATOR),
 * }
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_re); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_escape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_FILTER_SEPARATOR); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8};
    __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_filter_sep, __pyx_t_6) < (0)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":839
 *     "var_chars": r"\w\.\+-",
 *     "filter_sep": re.escape(FILTER_SEPARATOR),
 *     "arg_sep": re.escape(FILTER_ARGUMENT_SEPARATOR),             # <<<<<<<<<<<<<<
 * }
 * 
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_re); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_escape); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_FILTER_ARGUMENT_SEPARATOR); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_8};
    __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 839, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_arg_sep, __pyx_t_6) < (0)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":835
 *              )
 *          )?
 *  )""" % {             # <<<<<<<<<<<<<<
 *     "constant": constant_string,
 *     "var_chars": r"\w\.\+-",
*/
  __pyx_t_6 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_P_constant_constant_s_P_var_var, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_filter_raw_string, __pyx_t_6) < (0)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":842
 * }
 * 
 * filter_re = _lazy_re_compile(filter_raw_string, re.VERBOSE)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_lazy_re_compile); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_filter_raw_string); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_VERBOSE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_8, __pyx_t_9};
    __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_filter_re, __pyx_t_6) < (0)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_11CFilterInfo_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CFilterInfo___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CFilterInfo, (type(self), 0x1ad86f3, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CFilterInfo__set_state(self, __pyx_state)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_11CFilterInfo_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CFilterInfo___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_CFilterInfo, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < (0)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "django_templates_cythonized/base.py":943
 *                     self._fast_filter = FFILTER_STRINGFORMAT_S
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:
*/
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 943, __pyx_L1_error)
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_16FilterExpression_3resolve, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FilterExpression_resolve, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[8]);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_6);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression, __pyx_mstate_global->__pyx_n_u_resolve, __pyx_t_5) < (0)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":982
 *         return obj
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def args_check(name, func, provided):
 *         provided = list(provided)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_16FilterExpression_5args_check, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FilterExpression_args_check, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression, __pyx_mstate_global->__pyx_n_u_args_check, __pyx_t_5) < (0)) __PYX_ERR(0, 982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_6 = NULL;
  __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression, __pyx_mstate_global->__pyx_n_u_args_check); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_9};
    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
  }
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression, __pyx_mstate_global->__pyx_n_u_args_check, __pyx_t_5) < (0)) __PYX_ERR(0, 982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_16FilterExpression_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FilterExpression___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FilterExpression, (type(self), 0xf4795e4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FilterExpression__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_16FilterExpression_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FilterExpression___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_FilterExpression, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":1081
 *                 self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def resolve(self, context):
 *         """Resolve this variable against a given context."""
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8Variable_3resolve, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Variable_resolve, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1081, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable, __pyx_mstate_global->__pyx_n_u_resolve, __pyx_t_5) < (0)) __PYX_ERR(0, 1081, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8Variable_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Variable___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Variable, (type(self), 0x55e1e17, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Variable__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8Variable_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Variable___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Variable, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":1230
 *         token = None
 *         origin = None
 *     must_be_first = False             # <<<<<<<<<<<<<<
 *     child_nodelists = ("nodelist",)
 * 
*/
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node, __pyx_mstate_global->__pyx_n_u_must_be_first, Py_False) < (0)) __PYX_ERR(0, 1230, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1231
 *         origin = None
 *     must_be_first = False
 *     child_nodelists = ("nodelist",)             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node, __pyx_mstate_global->__pyx_n_u_child_nodelists, __pyx_mstate_global->__pyx_tuple[9]) < (0)) __PYX_ERR(0, 1231, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1233
 *     child_nodelists = ("nodelist",)
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         """
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_4Node_1render, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Node_render, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_9, __pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node, __pyx_mstate_global->__pyx_n_u_render_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "django_templates_cythonized/base.py":1240
 *         pass
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render_annotated(self, context: Context):
 *         """
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 1240, __pyx_L1_error)
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_4Node_3render_annotated, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Node_render_annotated, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node, __pyx_mstate_global->__pyx_n_u_render_annotated, __pyx_t_5) < (0)) __PYX_ERR(0, 1240, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":1265
 *             raise
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def get_nodes_by_type(self, nodetype):
 *         """
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_4Node_5get_nodes_by_type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Node_get_nodes_by_type, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node, __pyx_mstate_global->__pyx_n_u_get_nodes_by_type, __pyx_t_5) < (0)) __PYX_ERR(0, 1265, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_4Node_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Node___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Node, (type(self), 0xaa2e377, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Node__set_state(self, __pyx_state)
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_4Node_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Node___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_Node, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":1310
 *         return repr(self._nodes)
 * 
 *     def append(self, node):             # <<<<<<<<<<<<<<
 *         self._nodes.append(node)
 * 
*/
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8NodeList_13append, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeList_append, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList, __pyx_mstate_global->__pyx_n_u_append, __pyx_t_5) < (0)) __PYX_ERR(0, 1310, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":1313
 *         self._nodes.append(node)
 * 
 *     @cython.wraparound(False)             # <<<<<<<<<<<<<<
 *     @cython.ccall
 *     def render(self, context: Context):
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 1313, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8NodeList_15render, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeList_render, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_9, __pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList, __pyx_mstate_global->__pyx_n_u_render_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1313, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "django_templates_cythonized/base.py":1379
 *         return SafeString("".join(parts))
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def get_nodes_by_type(self, nodetype):
 *         "Return a list of all nodes of the given type"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8NodeList_17get_nodes_by_type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeList_get_nodes_by_type, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList, __pyx_mstate_global->__pyx_n_u_get_nodes_by_type, __pyx_t_9) < (0)) __PYX_ERR(0, 1379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8NodeList_19__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeList___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_NodeList, (type(self), 0x93c8155, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_NodeList__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8NodeList_21__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NodeList___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_NodeList, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "django_templates_cythonized/base.py":1389
 * 
 * class TextNode(Node):
 *     child_nodelists = ()             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, s):
*/
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode, __pyx_mstate_global->__pyx_n_u_child_nodelists, __pyx_mstate_global->__pyx_empty_tuple) < (0)) __PYX_ERR(0, 1389, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1397
 *         return "<%s: %r>" % (self.__class__.__name__, self.s[:25])
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         return self.s
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8TextNode_5render, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TextNode_render, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode, __pyx_mstate_global->__pyx_n_u_render_2, __pyx_t_5) < (0)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":1401
 *         return self.s
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render_annotated(self, context: Context):
 *         """
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 1401, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8TextNode_7render_annotated, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TextNode_render_annotated, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_9, __pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode, __pyx_mstate_global->__pyx_n_u_render_annotated, __pyx_t_9) < (0)) __PYX_ERR(0, 1401, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8TextNode_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TextNode___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TextNode, (type(self), 0xbef3cea, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TextNode__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8TextNode_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TextNode___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_TextNode, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "django_templates_cythonized/base.py":1412
 * 
 * 
 * @cython.ccall             # <<<<<<<<<<<<<<
 * def render_value_in_context(value, context: Context):
 *     """
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 1412, __pyx_L1_error)
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_6render_value_in_context, 0, __pyx_mstate_global->__pyx_n_u_render_value_in_context, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_render_value_in_context, __pyx_t_5) < (0)) __PYX_ERR(0, 1412, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":1451
 * 
 * 
 * _RESOLVE_FALLBACK: object = object()             # <<<<<<<<<<<<<<
 * 
 * # Fast filter dispatch codes for C-level builtin filter bypass.
*/
  __pyx_t_9 = NULL;
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
    __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_object, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RESOLVE_FALLBACK, __pyx_t_5) < (0)) __PYX_ERR(0, 1451, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "django_templates_cythonized/base.py":1454
 * 
 * # Fast filter dispatch codes for C-level builtin filter bypass.
 * FFILTER_NONE: cython.int = 0             # <<<<<<<<<<<<<<
 * FFILTER_LOWER: cython.int = 1
 * FFILTER_UPPER: cython.int = 2
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FFILTER_NONE, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(0, 1454, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1455
 * # Fast filter dispatch codes for C-level builtin filter bypass.
 * FFILTER_NONE: cython.int = 0
 * FFILTER_LOWER: cython.int = 1             # <<<<<<<<<<<<<<
 * FFILTER_UPPER: cython.int = 2
 * FFILTER_CAPFIRST: cython.int = 3
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FFILTER_LOWER, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(0, 1455, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1456
 * FFILTER_NONE: cython.int = 0
 * FFILTER_LOWER: cython.int = 1
 * FFILTER_UPPER: cython.int = 2             # <<<<<<<<<<<<<<
 * FFILTER_CAPFIRST: cython.int = 3
 * FFILTER_STRINGFORMAT_S: cython.int = 4
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FFILTER_UPPER, __pyx_mstate_global->__pyx_int_2) < (0)) __PYX_ERR(0, 1456, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1457
 * FFILTER_LOWER: cython.int = 1
 * FFILTER_UPPER: cython.int = 2
 * FFILTER_CAPFIRST: cython.int = 3             # <<<<<<<<<<<<<<
 * FFILTER_STRINGFORMAT_S: cython.int = 4
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FFILTER_CAPFIRST, __pyx_mstate_global->__pyx_int_3) < (0)) __PYX_ERR(0, 1457, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1458
 * FFILTER_UPPER: cython.int = 2
 * FFILTER_CAPFIRST: cython.int = 3
 * FFILTER_STRINGFORMAT_S: cython.int = 4             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FFILTER_STRINGFORMAT_S, __pyx_mstate_global->__pyx_int_4) < (0)) __PYX_ERR(0, 1458, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1827
 * 
 * class VariableNode(Node):
 *     child_nodelists = ()             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, filter_expression):
*/
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode, __pyx_mstate_global->__pyx_n_u_child_nodelists, __pyx_mstate_global->__pyx_empty_tuple) < (0)) __PYX_ERR(0, 1827, __pyx_L1_error)

  /* "django_templates_cythonized/base.py":1835
 *         return "<Variable Node: %s>" % self.filter_expression
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def render(self, context: Context):
 *         try:
*/
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_context, __pyx_mstate_global->__pyx_n_u_Context) < (0)) __PYX_ERR(0, 1835, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_12VariableNode_5render, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VariableNode_render, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_9, __pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode, __pyx_mstate_global->__pyx_n_u_render_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1835, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_12VariableNode_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VariableNode___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(2, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_VariableNode, (type(self), 0xea43a84, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_VariableNode__set_state(self, __pyx_state)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_12VariableNode_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VariableNode___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_27django_templates_cythonized_4base_VariableNode, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(2, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "django_templates_cythonized/base.py":1848
 * 
 * # Regex for token keyword arguments
 * kwarg_re = _lazy_re_compile(r"(?:(\w+)=)?(.+)")             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_lazy_re_compile); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_w_2};
    __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_kwarg_re, __pyx_t_9) < (0)) __PYX_ERR(0, 1848, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "django_templates_cythonized/base.py":1851
 * 
 * 
 * def token_kwargs(bits, parser, support_legacy=False):             # <<<<<<<<<<<<<<
 *     """
 *     Parse token keyword arguments and return a dictionary of the arguments
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_8token_kwargs, 0, __pyx_mstate_global->__pyx_n_u_token_kwargs, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[8]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_token_kwargs, __pyx_t_9) < (0)) __PYX_ERR(0, 1851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Template(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xd078213, 0xbdfb5a7, 0xd02afb2, b'engine, extra_data, name, nodelist, origin, source')
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_10__pyx_unpickle_Template, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Template, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Template, __pyx_t_9) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_12__pyx_unpickle_PartialTemplate, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PartialTemplate, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_PartialTemplate, __pyx_t_9) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_CFilterInfo(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x1ad86f3, 0x60c46bb, 0xd932f26, b'args, expects_localtime, func, is_safe, needs_autoescape')
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_14__pyx_unpickle_CFilterInfo, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_CFilterInfo, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_CFilterInfo, __pyx_t_9) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_16__pyx_unpickle_FilterExpression, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FilterExpression, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_FilterExpression, __pyx_t_9) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Variable(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x55e1e17, 0xda50ed1, 0xc57a0f0, b'literal, lookups, message_context, translate, var')
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_18__pyx_unpickle_Variable, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Variable, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Variable, __pyx_t_9) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_20__pyx_unpickle_Node, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Node, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Node, __pyx_t_9) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_NodeList(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x93c8155, 0x086b203, 0xeba66e4, b'_nodes, contains_nontext')
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_22__pyx_unpickle_NodeList, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_NodeList, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_NodeList, __pyx_t_9) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * cdef extern from *:             # <<<<<<<<<<<<<<
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_24__pyx_unpickle_TextNode, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TextNode, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_TextNode, __pyx_t_9) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_VariableNode(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xea43a84, 0x2b0b265, 0x24775a2, b'filter_expression, origin, token')
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_27django_templates_cythonized_4base_26__pyx_unpickle_VariableNode, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_VariableNode, NULL, __pyx_mstate_global->__pyx_n_u_django_templates_cythonized_base, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_VariableNode, __pyx_t_9) < (0)) __PYX_ERR(2, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "django_templates_cythonized/base.py":1
 * """             # <<<<<<<<<<<<<<
 * This is the Django template system.
 * 
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_9) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  if (__pyx_m) {
    if (__pyx_mstate->__pyx_d && stringtab_initialized) {
      __Pyx_AddTraceback("init django_templates_cythonized.base", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    #if !CYTHON_USE_MODULE_STATE
    Py_CLEAR(__pyx_m);
    #else
    Py_DECREF(__pyx_m);
    if (pystate_addmodule_run) {
      PyObject *tp, *value, *tb;
      PyErr_Fetch(&tp, &value, &tb);
      PyState_RemoveModule(&__pyx_moduledef);
      PyErr_Restore(tp, value, tb);
    }
    #endif
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init django_templates_cythonized.base");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #else
  return __pyx_m;
  #endif
}
/* #### Code section: pystring_table ### */
/* #### Code section: cached_builtins ### */

static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) {
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_property); if (!__pyx_builtin_property) __PYX_ERR(0, 129, __pyx_L1_error)
  __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(0, 982, __pyx_L1_error)
  __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(0, 1451, __pyx_L1_error)
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 358, __pyx_L1_error)
  __pyx_builtin_reversed = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_reversed); if (!__pyx_builtin_reversed) __PYX_ERR(0, 630, __pyx_L1_error)

  /* Cached unbound methods */
  __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_items.method_name = &__pyx_mstate->__pyx_n_u_items;
  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;
  __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_values.method_name = &__pyx_mstate->__pyx_n_u_values;
  __pyx_mstate->__pyx_umethod_PyList_Type_pop.type = (PyObject*)&PyList_Type;
  __pyx_mstate->__pyx_umethod_PyList_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cached_constants ### */

static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "django_templates_cythonized/base.py":176
 *             ):
 *                 tpl_name = fe.var
 *                 if not tpl_name.startswith(("./", "../")) and tpl_name not in seen and tpl_name not in flattened_here:             # <<<<<<<<<<<<<<
 *                     try:
 *                         included_tpl = engine.get_template(tpl_name)
*/
  __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u__4, __pyx_mstate_global->__pyx_kp_u__5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);

  /* "django_templates_cythonized/base.py":265
 *                 # overridden bind_template; plain Context just sets .template.
 *                 if hasattr(context, "_processors_index"):
 *                     with context.bind_template(self):             # <<<<<<<<<<<<<<
 *                         return self._render(context)
 *                 else:
*/
  __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(0, 265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]);

  /* "django_templates_cythonized/base.py":312
 *                 raw_message = e.args[0]
 *                 e.raw_error_message = raw_message
 *                 e.args = (f"Template: {self.origin.name}, {raw_message}", *e.args[1:])             # <<<<<<<<<<<<<<
 *             raise
 * 
*/
  __pyx_mstate_global->__pyx_slice[0] = PySlice_New(__pyx_mstate_global->__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[0])) __PYX_ERR(0, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[0]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[0]);

  /* "django_templates_cythonized/base.py":512
 *         return '<%s token: "%s...">' % (
 *             token_name,
 *             self.contents[:20].replace("\n", ""),             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_mstate_global->__pyx_slice[1] = PySlice_New(Py_None, __pyx_mstate_global->__pyx_int_20, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[1])) __PYX_ERR(0, 512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[1]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[1]);
  __pyx_mstate_global->__pyx_tuple[2] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u__6, __pyx_mstate_global->__pyx_kp_u__7); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(0, 512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]);

  /* "django_templates_cythonized/base.py":520
 *         for bit in bits:
 *             # Handle translation-marked template pieces
 *             if bit.startswith(('_("', "_('")):             # <<<<<<<<<<<<<<
 *                 sentinel = bit[2] + ")"
 *                 trans_bit = [bit]
*/
  __pyx_mstate_global->__pyx_tuple[3] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u__10, __pyx_mstate_global->__pyx_kp_u__11); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[3]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[3]);

  /* "django_templates_cythonized/base.py":569
 *             # different, but it's not likely that the TAG_START values will
 *             # change anytime soon.
 *             token_start = token_string[0:2]             # <<<<<<<<<<<<<<
 *             if token_start == BLOCK_TAG_START:
 *                 content = token_string[2:-2].strip()
*/
  __pyx_mstate_global->__pyx_slice[2] = PySlice_New(__pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_2, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[2])) __PYX_ERR(0, 569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[2]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[2]);

  /* "django_templates_cythonized/base.py":571
 *             token_start = token_string[0:2]
 *             if token_start == BLOCK_TAG_START:
 *                 content = token_string[2:-2].strip()             # <<<<<<<<<<<<<<
 *                 if self.verbatim:
 *                     # Then a verbatim block is being processed.
*/
  __pyx_mstate_global->__pyx_slice[3] = PySlice_New(__pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_int_neg_2, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[3])) __PYX_ERR(0, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[3]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[3]);

  /* "django_templates_cythonized/base.py":578
 *                     # Otherwise, the current verbatim block is ending.
 *                     self.verbatim = False
 *                 elif content[:9] in ("verbatim", "verbatim "):             # <<<<<<<<<<<<<<
 *                     # Then a verbatim block is starting.
 *                     self.verbatim = "end%s" % content
*/
  __pyx_mstate_global->__pyx_slice[4] = PySlice_New(Py_None, __pyx_mstate_global->__pyx_int_9, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[4])) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[4]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[4]);

  /* "django_templates_cythonized/base.py":1064
 *                 # time.
 *                 self.translate = True
 *                 var = var[2:-1]             # <<<<<<<<<<<<<<
 *             # If it's wrapped with quotes (single or double), then
 *             # we're also dealing with a literal.
*/
  __pyx_mstate_global->__pyx_slice[5] = PySlice_New(__pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_int_neg_1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[5])) __PYX_ERR(0, 1064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[5]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[5]);

  /* "django_templates_cythonized/base.py":1092
 *         if self.translate:
 *             is_safe = isinstance(value, SafeData)
 *             msgid = value.replace("%", "%%")             # <<<<<<<<<<<<<<
 *             msgid = mark_safe(msgid) if is_safe else msgid
 *             if self.message_context:
*/
  __pyx_mstate_global->__pyx_tuple[4] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u__20, __pyx_mstate_global->__pyx_kp_u__21); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(0, 1092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[4]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[4]);

  /* "django_templates_cythonized/base.py":1884
 *                 return kwargs
 *             key, value = match.groups()
 *             del bits[:1]             # <<<<<<<<<<<<<<
 *         else:
 *             if len(bits) < 3 or bits[1] != "as":
*/
  __pyx_mstate_global->__pyx_slice[6] = PySlice_New(Py_None, __pyx_mstate_global->__pyx_int_1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[6])) __PYX_ERR(0, 1884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[6]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[6]);

  /* "django_templates_cythonized/base.py":1889
 *                 return kwargs
 *             key, value = bits[2], bits[0]
 *             del bits[:3]             # <<<<<<<<<<<<<<
 *         kwargs[key] = parser.compile_filter(value)
 *         if bits and not kwarg_format:
*/
  __pyx_mstate_global->__pyx_slice[7] = PySlice_New(Py_None, __pyx_mstate_global->__pyx_int_3, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[7])) __PYX_ERR(0, 1889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[7]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[7]);

  /* "django_templates_cythonized/base.py":106
 * 
 * class VariableDoesNotExist(Exception):
 *     def __init__(self, msg, params=()):             # <<<<<<<<<<<<<<
 *         self.msg = msg
 *         self.params = params
*/
  __pyx_mstate_global->__pyx_tuple[5] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[5]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[5]);

  /* "django_templates_cythonized/base.py":115
 * 
 * class Origin:
 *     def __init__(self, name, template_name=None, loader=None):             # <<<<<<<<<<<<<<
 *         self.name = name
 *         self.template_name = template_name
*/
  __pyx_mstate_global->__pyx_tuple[6] = PyTuple_Pack(2, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[6])) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[6]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[6]);

  /* "django_templates_cythonized/base.py":654
 *         return "<%s tokens=%r>" % (self.__class__.__qualname__, self.tokens)
 * 
 *     def parse(self, parse_until=None):             # <<<<<<<<<<<<<<
 *         """
 *         Iterate through the parser tokens and compiles each one into a node.
*/
  __pyx_mstate_global->__pyx_tuple[7] = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[7])) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[7]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[7]);

  /* "django_templates_cythonized/base.py":943
 *                     self._fast_filter = FFILTER_STRINGFORMAT_S
 * 
 *     @cython.ccall             # <<<<<<<<<<<<<<
 *     def resolve(self, context: Context, ignore_failures=False):
 *         if self.is_var:
*/
  __pyx_mstate_global->__pyx_tuple[8] = PyTuple_Pack(1, Py_False); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[8]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[8]);

  /* "django_templates_cythonized/base.py":1231
 *         origin = None
 *     must_be_first = False
 *     child_nodelists = ("nodelist",)             # <<<<<<<<<<<<<<
 * 
 *     @cython.ccall
*/
  __pyx_mstate_global->__pyx_tuple[9] = PyTuple_Pack(1, __pyx_mstate_global->__pyx_n_u_nodelist); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(0, 1231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[9]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[9]);
  #if CYTHON_IMMORTAL_CONSTANTS
  {
    PyObject **table = __pyx_mstate->__pyx_tuple;
    for (Py_ssize_t i=0; i<10; ++i) {
      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
      #if PY_VERSION_HEX < 0x030E0000
      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
      #else
      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
      #endif
      {
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
      }
      #else
      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
      #endif
    }
  }
  #endif
  #if CYTHON_IMMORTAL_CONSTANTS
  {
    PyObject **table = __pyx_mstate->__pyx_slice;
    for (Py_ssize_t i=0; i<8; ++i) {
      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
      #if PY_VERSION_HEX < 0x030E0000
      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
      #else
      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
      #endif
      {
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
      }
      #else
      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
      #endif
    }
  }
  #endif
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}
/* #### Code section: init_constants ### */

static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
  CYTHON_UNUSED_VAR(__pyx_mstate);
  {
    const struct { const unsigned int length: 10; } index[] = {{1},{39},{33},{33},{32},{46},{47},{26},{29},{57},{32},{26},{20},{20},{23},{4},{179},{269},{76},{10},{21},{19},{43},{61},{3},{3},{1},{1},{3},{3},{1},{1},{2},{1},{1},{2},{2},{1},{2},{2},{2},{2},{2},{2},{1},{1},{1},{25},{24},{24},{1},{2},{3},{1},{0},{5},{2},{8},{12},{41},{7},{15},{35},{35},{34},{38},{39},{38},{6},{5},{12},{8},{2},{102},{22},{9},{29},{6},{9},{10},{4},{2},{14},{18},{12},{9},{8},{16},{15},{9},{7},{15},{5},{13},{15},{11},{11},{29},{31},{7},{15},{17},{7},{10},{24},{34},{19},{6},{16},{13},{12},{22},{13},{25},{16},{16},{34},{36},{27},{24},{11},{5},{14},{14},{18},{14},{4},{8},{26},{28},{15},{26},{15},{22},{24},{22},{11},{21},{6},{13},{15},{15},{14},{18},{6},{15},{15},{18},{21},{25},{12},{22},{18},{24},{17},{12},{20},{16},{25},{15},{33},{35},{23},{35},{34},{22},{20},{17},{16},{18},{8},{10},{4},{20},{19},{8},{26},{28},{16},{25},{27},{15},{8},{26},{28},{15},{25},{5},{9},{14},{14},{20},{14},{3},{28},{16},{18},{7},{8},{20},{29},{28},{12},{30},{32},{19},{26},{28},{16},{1},{3},{11},{5},{4},{11},{3},{6},{7},{4},{10},{2},{18},{4},{10},{6},{4},{13},{3},{4},{6},{7},{8},{10},{7},{8},{15},{9},{17},{18},{5},{7},{13},{7},{14},{12},{16},{15},{5},{20},{8},{12},{15},{16},{7},{8},{7},{13},{5},{12},{13},{17},{1},{8},{14},{5},{8},{18},{8},{5},{5},{7},{20},{20},{32},{24},{20},{25},{17},{24},{4},{24},{7},{6},{1},{3},{8},{6},{6},{9},{9},{6},{5},{6},{8},{9},{10},{8},{17},{15},{13},{10},{2},{17},{11},{17},{9},{10},{7},{4},{11},{19},{8},{7},{17},{34},{14},{11},{4},{8},{7},{9},{11},{18},{12},{17},{12},{13},{14},{11},{12},{12},{6},{4},{1},{10},{9},{15},{6},{3},{14},{12},{8},{7},{7},{17},{13},{7},{6},{16},{5},{3},{12},{8},{6},{4},{16},{16},{3},{9},{4},{14},{6},{6},{11},{11},{6},{7},{5},{8},{9},{5},{7},{13},{10},{15},{3},{13},{1},{10},{4},{8},{16},{7},{4},{10},{4},{8},{6},{5},{8},{3},{6},{2},{6},{5},{1},{6},{5},{11},{6},{6},{13},{4},{3},{8},{11},{13},{17},{8},{8},{12},{14},{12},{11},{10},{26},{31},{19},{23},{30},{23},{23},{23},{27},{14},{12},{17},{2},{10},{17},{13},{7},{6},{16},{14},{23},{7},{8},{7},{6},{8},{1},{10},{4},{4},{4},{8},{12},{10},{12},{19},{9},{23},{18},{9},{11},{6},{10},{12},{12},{4},{5},{14},{5},{10},{5},{12},{12},{7},{5},{17},{5},{5},{14},{6},{13},{23},{4},{8},{17},{14},{18},{13},{15},{15},{8},{5},{5},{12},{10},{11},{12},{10},{8},{6},{3},{5},{8},{9},{18},{23},{7},{6},{6},{5},{4},{12},{5},{6},{3},{7},{9},{8},{8},{4},{8},{675},{184},{66},{169},{80},{30},{11},{11},{2},{289},{222},{5},{111},{30},{114},{53},{137},{245},{125},{35},{115},{226},{18},{52},{253},{13},{28},{84},{19},{13},{39},{37},{82},{77},{44},{40},{147},{18},{56},{527},{17},{37},{16},{389},{39},{9},{12},{14},{15},{13},{18},{69},{40},{433},{11},{124},{161},{136},{133},{101},{111},{127},{232},{203},{2},{2},{11},{116},{11},{11},{57},{55},{58},{55},{55},{55},{282},{202}};
    #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (6647 bytes) */
const char* const cstring = "(\265/\375`\3309m\317\000:\312\204+H\340\314\314\0030\314\363<\326\3025\236`l\236\347y\236\347\371\270\026\263\261\206l/%\355\336\0202F\345\216\026\366\323\242\322\346P\203\276\320w\332r\013\244C\327\317\316\356\260\326 \204\202\203\362\257\005_\236\306V\330\010\342\010\224\002}\002\267\002/\374F\362\336U\336Kf6\306\306\231\227\214\306%6\316\314\320\310\364l\344\020\223iq\211y\211\275bdbb\257\032\031\230\231,\366\32223\256\350\330k\006\363\322\322\3622{\252j\326<\325\256[+\347q\030\226Y\314\213\003\007\231\2565'\333\222\257Z\267\322Z\313\n\357[e\026\033g2\226\230\227v\031gz\303\212\014\214\n+\244\265Ja]X9\010\271i\335\354n\304\0138\223\335\264\225\353D\021\021\335\245\350\rmO.\364\017\321\004\345\267\217\013\032\345\304ls\2744u\351\252\212\027V\263\326\223\022\273\211\232\026\254n\301\323Y\271r\225\352,\224\253\251FK\\\246\005iS\211\270t\255\211*U\244D9\257\355\3369\312[=u\323\036\224\\\307$u\327\255\324\206\356\234n\226\345\n\313\343\254(\322Y\224\343ZT\227\345\026EP>Z\255\226\305\203V\353A+E\245\022a\243\372h\300j\3354\010qs\363!\302\346\203\325\203B\365\354\354\360\364\244R\032\264R;\253\236\235V\017\n\265\323\323\263\263\323\223J\355\230\210&\251T\n\205GL\355\210,\325J\177\254tJ\366V\304aMZo\343\330\226\306\356\316\2466Q\004\327\242[\3444\221\355-\016\245\247\312\016'%\357\351I\2424\242I\253D\271\315\326\322\270n\243)'\3276\355\255\331\271\315\031\226h\221\242E\333\272W)\023V\310\356\006\205\3436*Zt\226\312\273^\245\032\364\033\223\224\225\030\022\242\263\272^\245lPxX\235\265J\241\260(\232\222'3)+\021\026-\336\317\335\302u\346j\226\242Jot\253X\336E\264o\265\344\034\255\275\210\255\316\325^K\353\274\367}\222\264\266\213\235%yN\211nq\244d\304\301\314kFD\315\265w\256\234f\236\274\304a{+l\032\023#\232p\030\223S\265\022K\363\334:\364eM\205\350)\033\261\307o\242\332\336\322r\267\264\330}\2528\316\212\250)\252zJeCM\335\231\366\323\304\331\225)\221\243\346)\336\310\364\244\211=V\305\275Rl\233\025\273Y\356\364\024\327T\354\246-e\327\264&\266iO,M\026\261\245\022MV\276q|""\0259\016+\232\364\225\263\344^7\016)r\\\332E\336\327\255\262\270m\367\316q\"\232\232\254\312I\036\027Yn[\265zJ\254\245\"\273n\266\213\354\026\371I\333\346\272ub\211\2325\221MQ\261<\333t\345$\301\\\030\253\340\362-\275\253\037\340M0\313\353z]|\310\233FA\027\334\341\004\323\274\343[\343I~c4\n~`\331Kzg>\200\227\031\020\005w\314 \016c\224\ror_\247w\3457\334\320\325\310\371\014xSE\360\344i\\\235oD\200\342\243\341\304hb4\021\306\024\340\023\334 \204)|\204\202\037\023\333\325\000\363\nD\177t3\370D\025\3010v)\370\nB?\214\t\300+\324\205(\370\361 n\3513@\000\366#\021\247\342\022V\201?`\222\367\364\206\357\211\024,\221\202\241OP\242\020p\"\034\005G_s\031\270\031\242\240\313W\240\"\370\211!\204>GS\235\022\266\263\254s7\020\273\252\2465\275j\n\n\212\021\226\212\232+$\232$\202nE\021\n\n\326\252\201(\323\233A;\357m\273r\265U\367\272C[\216\266\372d\325]\272\342h\275m\374l\273\252k\246\326%\307\221&\2725\333\365\311\356\316\366\332\311;\312y\357\255\326\372\334m\216\325\361\363F\232*\256\355Z\367\3305%S\255\246\252\252\366\025mu\307m\225\226\356t/9/Q\232\266\365t\345g[\246\233\3458\344m\335\245\347\231\242\372F\353\334<;_\331\215\333\335z\374\326u7\365\251\262\0355;_\333\323Dm\246y\342X\234\256\332z:[\367\366\324\334fKa\264>\333\222\267P\372I\253\233\332\354\273\275\362\232\336kz\352\316\232\274\276\256\\\353\336\222\351y\356\264<;\272\327\225\253'\307\321<n\343+\331\317V\253s\236Y+\327M\226Z\367]\343\245\346e\331w\315\\\325\263%uk\356\362l{\211\273\221\233\306Imj\335O\262<7k\342R\226Mi\235\245\3615\255q\032W7\311\266\273\263m\272\246&\211\366\372\356\273\227\272\237\033\345\347^9[\333\372%\223Q\211\275:\274f4*\263Qe|\211\215\035^+1\032\031\231\216\251\221\211\331\020C3\343\275x\233E{2\336\213Mc:OYf\036^3\331f7\213\354\2652\306T\364\013F\266aeT\201\201\031[\364\253\003\214\214\354\025\3235\036\213\321,\274^Z\323j\273U\255\232\267\256\3628\252\265y\246\353\312\271\346\247\251\342R\262\267\356u\235a\273\3269n\2562%\327=\232\356\250V\325\315v\223\257\344\252\362U\243\246\346e\033\3011""v\305%p\310\306\227s1I\352{\250qK:\r\230k\002\233\371\025\300\234\226\010L\014\310\211Q\326\260\203\007\n>\351\343\206\256\320\237\215pm\004f\370\325d\014\007\266\226/\312\310\340\017\274B\277\262|\336\234\r\030d\316\375\026\310\252x\347\225\000VB\360Cw\375\3049\230\367\256\314\033\206\301/\035aE\313\274g\323\334\301\306\261x\002\352\243:\006\310=x\300|r\221\016\340\310%\036\333\375\340\273\350\250\321\037\2410~\241\237G\254\363\032\370&j\247\017C4\227x\026\346)\235\314#\354\202K^6\007o\030\343\0257*xR\270\322\3709\004@\266+\342\263\240\271\010j|\027\025\363\215\315\267\221\375\022\250\002\204\021\377|\202\275/\336\3459BS\370\252>o\317\325\031_\227l\201\365g=.X|\001\347\274\344\336\224I#\207\305-]\254L\237\245'`\307\0264>o\313\273x$>\305!vs\356]\3407LA\020\037\376\207\226\377AN\341\335\253\232Q\272\314+\3412\225~i4\233;\214\023\254\225,\366c\260\377\002\272\200\033,\374\223\274\212I`\026\244]0\n\352\020?\304\207\377\000\330\177\010~*\271\214\240\340\243r\362\226%\310'\331D\365G^T\370\303\321\367\214\262(f\201\033\354\306\267\3461\\o\007\257\263@\340M\267\024\372\327\354zY\r{dtb\346\345/E|\0217\377\246\346\327\300>\014\344\303\336T\306\317\000\001\000\371\t\023V|\205\323/%v\201C\250\327\002u1o\233\273\313\231\270\247\212\371\325\360\03007\200;\n\177.\030\037\003\036\201E\230B\377\361\032n(*)`\340\023\220\202\271w\243\020\214>8v>\346C\334>\273\\\227\234\037\361'\277\363\232x\027\2274\372\370\234;\240t_|\027\037xE\372\237\027D'\344G#_\010\347\020V\301<\311\352-}\t\337\310<\232\360X\020\034M\300d\223X\304k\363\037\332\234W\302\3133\273~\td\0021\010\274\361~\336\t\236\203\324\375\t\373\323\211M\030\347\375\340G\337nX\005\316\020\3067\244W\361\035\245\340\370\212\274\2114\303\200&?\021\261\r\376\320z\017Sp\277\014\336\356y\256\006i\316\271#\356\201\270\245'\030\005\267\227\340y\326w\277\"\236\343\302\345\023\021\240\020\345X`n\t\006\223`|\207H\024$P1\357\016\370\003OxY>\364\244\213@\024\264 @Qq\"\367\306\336\010o\306\373\3625\356\350\222\374\007\312\r\347\321u\271\000""\334QE\320\345\036\020\005\363\350\275h\373v\362I\252\364\307\236\313\363\\\374\213\025_\373\021\252tF'\034\210\004ev\000FY\306vUJ\024FZ|\206\320|\340\200_\335\330\366I\240\241\320\342cMTP| \312\363''`\314\017-\241\231}\364\327\"\341\243\016\374QF\341](\346\307\022\341\363\254\336\024\367\300\355gA.\020C\360\010\315\261\016\006\031\275(\364\034D\025L\2629\347n\330\017<\276G\350\177b\220yo\220k\342\261\274\271\231\231\001q\3400\216\237\235n\375k\372\323\017*`\312J\334^\210\205\374J\t\013v \235\016\224\246 \233\rD\222\240\021#@66\240\331\014\004\003\003\312\220\001\364\302P\202\367y\350Gi\237\006\373$\260\004T\375\316\232\330\337\010\221\313x\207\263\001\361A\310\276\0130\004\224\375\002\3744d\262t\2219\302\361W\323\341T\211\237]@\227\037G\350\340\226\363s\310O\322\314|\215\231\214\222iZ\034\177\003\236\275\251\360\003\007\000m`1)vu\370\035`\177\006D\001i~6y\347\002\262?\036K\303\033z=>6,\320\013\304\002b\371\364PP\234\340\331\375]\377]\375\352\355\337\312_\256\000\333\337\200_\017@<\001va\201'?VNq\360I#>\201k>\001I~\005d\r\026X$l\221\301\001(\270\032\031/]\213\253#\217\310.q(\206\320\361C3\037F\000\212\n\007*\023\003\202<\005*d\r\023`\0040\205P\350)\220\234\342\010\035\246\014*\245\354M\231\346\020h\372\335b\021\226\251|AL,\276\343WA\346\201\037\304'pHG\220\304s\204P\341\330\276m\304\037Q\363kv?Sf\2603\232\021\274+\010\300\212\007\354D\372T|\037>\213\320\202\000\241\225\233\021\232-~\201\000\024\342\211\217\t\017\337\003\315\367\000$\001g?\235\234\222{\214 \236\231^\325Gf\211GP\337B\312\203?\202rA\034\334\220\201\n\242\007\311H\216\311\027x\244\037\206\007\237\302\351\222Y\246o\322hI\301\214\270\002\234\021\343\226B\014\277Q*\231\000\314\000\276\230\033\262\316\206[\341\357%\273d\231\231\354s\221_S\353\010o\344\000\274\361e0\332\271%p\371\222\004'\031'\336\001\006\376\250\346\341E\275\240W\264\360\370#$/;\357\270\202\224'E\360\035\3341\247\021\302:80\t\237; 5\020P\342&\244v\277\2607\300K3\341\237\017\032\027\005\257s`\016I:\331V\252^\032\257\300c~=\200\344O\203\334""\272\300\025`\n\234N\277R.\001\2038\301\272\014O \346\200_/\007\351bd \2070\250\3637\213,\205\210\241\021\021I\222$\035s@0\200\270H*\031\320\252\314\017\343\264\313DQT\022\021\204\310\310\214\210\210\004\"\242 %\005)H\241\003\241vy\024'\337\036\304\345\232\241>\217\302\373\225\316\333\361\002X\004b\022\326w\\\262)\352|\271\250=\323O\022l\244\020\204\324\200\341\275\010\216\210pUG\036A\\\013\241\306\2216\207Q\203{4\341[E\201\316\352:\360\250l\302\252\244\304!\206t\014\224/\372\377\035\372Y\371\262\366\276\034?\260\200U\366\364\177}c9\035\241\262\352w\232\350Q5G\220\321\002\032`\307t\252\343_$$\346\362pbQ\274\230\235\310ST\014\253&\270\2435.&\267\275\201\021J\315u\007k;\204\371\2360\327Z\325\377\207\177i\255\350\302\206\355R\225\233\344\035/\323\255\227Z51[\003Y\332\230\t\357%~-WKJ\312\254\341\324\346\026\251\334\355\316\032-\336\360\346\302\032\0355\313I\224\276\324Q>\201\006\373\335\315FH\25088\352\310\315\272FXq)y^\213\220\343M.H\327I\341\303`\010\007\354\353\242uuP\035\3745\322\025\302\0252zC\204\267\341\236\026y\373\375\225\303Fo\014\017\020\260z\220\277o\356\356j\005\247\264vMqu&\312p\204\007\322)\026\364\245\000\312\006\005\205\"\201r^k\213\217\323A\354\2423$\324\222\235\032WL\002\032\177%\tY'\260l&kq\375Q\220M\347f\355\322>g6\234y\270U\346\362})\022\177\203aAf\322X\203\323\254Q\005H\244\037\005\357\343\322ge\3673\256\353\375@\212\233\370\023\213\024\243aH\207\212\023\035\331\244\311)\306\225\236jVgg\205c\322\350]\206\217I|\307Q\321Y\007\363b8=\210%\316Y\213\371HJ\002\034h>\241\202\310\331\336\n\357\214vY\213N\014\204\240\r*\324\311L\201)b\211\377\336\242\276zj\237\210(\364\203\276pr\222\300W\276i\316\317\213\232\300'\276\221\"B\025\243a\206\260\277\354E\035\200\004\222pn0a\377\177\306:%\347\014\344m9X\320\273\000\326Km\344 L+\371\331=\351\351\021x\3228\010KF4\014\271\035\220\217s\177\374\245\322\207\345'\341\335M=y\034,\t\304\335,\220\357\222\231p\257\033\013\214L\305\334\314\n\217\316m\316\020\250\306\214\377\327\225\333\260\2073D|\342N\024\031\214\345\034""\033\006\000\256\022l\310o\254\307\035\232\270Ve\201\244\217\204r,\306\315\236\014L6\t,\325\206'\251\377\250\374=^\325%\320\235\236\265\230\252\327\372\221\254[\031\016\027H\341\223\033\316\327\020XF\3340\"\036\261Th\206\325\232\276\212J\354\300\363%\004\307\331\tk\327xo\324(V\025\030\327\200\310\255\201\241E6G]b\214k9y&\3005\361\332\360\220X\005\266!\203o\346t\361\240.<\267H\321\340\230\270\375\300\212n%\2308\302\260\234\2376h\204\322\020b\n\332\3667u\340\007\321\021\305\232\276\330\343\232\035\235\265U\362 \222\013\207:\234n\212\267\360\320Cr\363\240\321j\214\340\373\274\004\305\204\364G\024\316\315H\347\030\032\256d&\2017\350\026\264\001\014\374_C\313 \r\220\352\311p\0033\233\001\000\212d\016i\241\251Hk\270\345\307\237G$\333\310D\324\306(\274;\265l\013!\261\027\313\367n\337\020|c\303EC\213\242\235\224\367L\017\225\263\313\352}\014\\\363]=\343\014\361\277m\220\224<P@\025}_\030*T\354Y\244\377\320\323\304<K\034l\220rl9\rR\262*\350\226@8\374\033?\363\207A\004%Q\3614\222\220`\3233\245\370\200\216Uq\210\202\312\311\031\230\254(sl\202\010\206J\013\347\261\315d\033\257\216\276\246\037;\033p\032\321\346-\227i\006\272\017\035\244\346/\032\025@kP\223\000$\021\311u\372Bwq\333\026|p4\212+\303\2102\t\003\331\rB\002\240\257\323\342\337\356\327\014z \256\251N\304\315Lg\020k\352B\220\362\346\t\302@\263@\320\374yeH?\363\242@\304\213\200h9\177\316\224\236\363c\\\307\016\013\265\030\031\177\345\370\333T\361&\004\224`$\223\315\236\265\330~\333\363\302N\347\323\227\326\367h\360W\021\261%:\341\212\227\372T]\th\2112\233J\332b\223V\267JA\207<\\m\374\351cz\273T\316?^X\t\373\025\007\220\340\323\025\306I\222\301}\245\262\343\025i\021y/\262\r\215\320\233w<&\212\032\031\025\304\003s\016\304k\374K\356M\270\264\307\026Z\027\360iJ0\320\201\236\002\352p\350I\022\014\373\214\320\242]\305\360\304)\340\205\223\271\257\302C$k5M}r\215\355\305J\030\245\003\226\t5\350\214\252\246\325Z\361\322\362(\031Y\0252Dk\"z&\324\216\324h\357\001\324\342\240\332\320\235Sb\207\330\324\310\345X\371\214\263\241\335""\206\364p\014\315\004\030u\\\240\315\330\255\270\013M\351\374FwL+\004\2720c\305\024\216\2221\360\266$`*G\200\373\2021\216\245\017\337\324\255{\345\237\302b\253,\303 \361<ft\376\215\304\361]\262\225\032\031un'\263\300LO\210>[\325\000\2502\247\303\271%\034x\247\370\223\3060\020\021\366\030@<\356\213\356\267\002\366H\014';\210\206+\375+\244i\361\305\226\332<@\324t\212\321\202\333\205\276~&G(\027k\312\265\237\225\211\265\267\301J\334\370\250T\312\236\n\223*/\323\020\350;\262^\271\037\261M\271!=|\013\300L\347\023\r\331a$\3332\3521,\356\364YM\326QR\005\270gU[\221\242\225\340\264\020%B[\325\332pFS\344G1\026^nb*l\205\276_\201\224\337?\007\300\252\026Wh\221\223d\247\306m\257,\313\016\350\205W\260\000V*\037\027<R\220\016\267 \242\354i\242\264\320J\333 %\234\336\315vH\206\307\n\177\323\035j\345\226\251\302\006\356\303t\374\224c\215Rp\331\300\233$\013\357\214OP\355\rs\263Q\233\260:!#\354\340b\023\234\327K7#tl\36626l\256\276z\324\357\247`A2\374\032\322\223\371o\337(\017\320\2266\256\272\2141FB%\231\232r\202\0379h\300\332\003\211\2636\275\334W!m\353\r\266\225\223\2625\201\230\221\337\273!\033\270\346u\351J\317t\341\023u\201\304\034q\362\030\307[\261\355\246\374\253S\022\360\017D\341nnMy\025^Db\026K%\021J6~w\344P\373\0315xPtSm\0279\023\361\000JS\305\240U\t`J\200\373&\243M\255\275\320\212\006\224\232lFZ{\374\270\270\306\340&\346\206\304\246\276]\316\213\024yL\245N\215\036 =\3360M\005n\346\2770k\025\322I\346)\336\030\024n\243\001r\201oM\274jirA=\004\227\335\306\267\202V\247;q.\226>\242\207\363\177\320s\021\020\256z\375\363\307*\303\320x\310\302\000\022_D\262\222:\234\022\332\274\004\\\324\271\013\361\013\372;\243\177\204\301\277\254\022\213uT\222~\350\263\235\375\342\3461/\r\264\212\273.\205\025\202gQ\010\037\363\211\024K\002l\300D\316\214)2$,`w\204\267(\026Yh\227],\025\344,1\327\321E\016<\032n%\370\203\211\261\\\246@S\177)\347\270Xo\024IHD\002&\\C\035K\203\003\000AE\244Q\342u\336\343h\256n\2234z\361M\277\250\277\032L\033\204\264\3444\032Q\035\215=\203\362\305\323\026\030U\007\214""\261\244UY[`\276\202\036\264>w\033.\262\250\332\277\253\310=\2704\373\032\350\333,\010xDI\3515v\221\241shH\270A\033\230\230\244)b$w\234\346E<U!Q\021ui2\010\305a\250l\356\336\212Ac\321\026t[|\234\007\306K&\364^\264\264\235\\\022f\270\013\310Q\031\311\260{\330u\342=\242\354[\n\232\017q\255\013\031\301\250\000 F5\362\372A'j\326\321%\312@$I\253\352\317\202D4-\021\275\205!7EH\2237A\024\247t\256\254s\221\327\021\344\361\360\023\347d#\314K\251\212\030gUv\250B\250_\2124y\003\225\2173\340$\207\252\362\256\236\347\224]\360Q\035\013\246\334<\226\016e\301xf\272\271m\332\\\330\255\376\022=\320\026\207%\033@(\206\334\2637#\350\347/\352\247V\236k\266\315T\354\336\177OGcp\230PT\352\232\317\303:\272\224\"S\231H\245\376\243\237&\000\263m\302n.\373\260\305\251n\022\342etG\035)\316ID\022!\021\337\3134|}!\357(\263\200\003\366\247\302\252\232\177\306\"z\367\027\014\r)H\013~\005\324\371\223\006\262\235\223\265x3\202OO\246\234\3763S\374\263\nT!\361\302\351[\204g,\263.\303b\275\245\036\345m\022\005\314\037E\013\026\024\354\336\336\265:M\236\201\034\221YM\250\004\267\321C\367\313ZME\325\033\206\342\344y\013C\302\024\323>\346\254\220f\005\260(\347\253w\332\224K\334p\240qV\250gVQ\025\030M\251+\000q\000\273\344_\227\203\223\231-\202\001\310d\n\021v\214\207A\257\320~\265`{B\325S3\251\314g/\266\t\027\241'H\231\245\216\221q\323\212p\332\005C\000\245\374+\341\371\312\207\326\375E\024\221\357m\n\310\367b\366\274\271\224}8r\372C\347\366\344d\302\317\007;\316\321\253\344\2161]hDa\310\314\222\326\342:\251\025\351\306'mOm\256\032\340g\002\331#\345 \321\017c\346xi\201G\340r\206d\255\010\354-\376\371S\3752\206`~Q\2156c\344\330\177\035\\G\202\335\025 \267D\257|\371O\347\200\330\247\240\016\244\3006[\260<\025\036$\027\243\304&\376\222.m\323\217{x\303\367\323\345\275\0315\267\204\005\024$\022P{\322|D\317\3411u\273\005=\352\021{\340\022Z\363\006\333\324Z\227~\274\362\362\346\201\n\377\023r\006m\\\332\204C\000\316\342\263rF\360;\307F'.i\375\224[\260c\341d\025\254\212\271B\250\363j}\316\n\220\375\004\330A\002""\rK\216\352\302\313L\352\320}\271Z\211\274\014\007\3543\312\216{C\347\"\007\tV\255\244\262|RZ\262V\022\373\340T=$\034\341]\356\374w\034U\014\337f\0005Z~\205D`\332\217m\323\005\251\234\220\316}\3648\3460{\324\227\215\240\203\321\254\211\324\000G\010]\235\244P\272\231\005h\207S\312\2361FNX\366\0002^\347\n+\027\221\216\302\210V\350\256|\342Plb\223`\321\240We\202\241\344{X\010\251\027\255\264\371N\336{\224\003\216\251\225@\201\207'\2469\311D\330I=\240\302t{\024\237d\3567\000S\236Q\220\211\234\312\261\342I\250\222<\310\315\3579\204\032\246\016K\311E(8T\355uh\025\242\215o\355\212D}D\334\246\306\267\313\n\206\367bL\227\037=\323h5\251[\177\306\214\367\302\216\351\315\265\245yYz_\261\240\022\3360\345\002}6\220\251\254\031\013\361\022\021hHk\333\257\2044\317 a}@\264h\231p8\353\2151\032\377\324\201\270\274'\323V\205\177\010\274\265w/Z\023=P\235\275\344\363\210\364\320\251\360\313\315\230\306LL\312\3349.q>\357YB \263\357UA\372A\224H\226q\240\221A\014_\263\217s7d\341\264\216ka,\367\206\\}\306Z\232\314\263\337\372\366n\346\033\371\237\245\307\273\267gO\274\246o\353q-{xG1\254\3766v\356\177o\302V\344\324\300\262\315Xx\324\270\004\224\331\250\327\027\206NH\317`\303t>4\204~\334\013\021\263\240\303=\335\n\006H\016\273\325<\3720\326\2059\354\212\210`\371\366\204\336D\234\360\343\n$\003\034\346\024\212\346\377{wN\225}(,\257\220\216\352\221X\233h\021\202l\017\014dU\356P0\030\013\217p\214\225\335u\223\003CQ\344\003\211\375\010U8\"\262\314\220\000c\302)hY\264\010-\243\365\020\346sK\311A\255o\221\362\234\266\221j;\204\022\0365S\345m\200>\026\352\344\000|\303\274\023D\3446,\346\357\026\300\204#DL%#}\273\253\034\326B\034h\373(\031\004``#3\323p\202{\344\206\372y_\010\307\263\224\265\264\245!T\363\033\023\321\230\200|H\315\223<\270\240\230\267_\230\224N\311\255\363\005\216\027P\220h\014\242!d68\206(J\225T{m\355y0H~\247e\027\335prxc\371\242\333\tu\205b@lFV\365\001\230;\230\363\3439\244\341h\036\234F\326P0n\001\241\021p|\271LKx&\252W\230\316\321\334\345\0049\235xS\374\262f\274\255\211\275\332]""\206#e\233;\327b2\313i\205 \t\210\270~\205\214\007\375`\254s\377\257\0322x\236\225q\nF\225\021gz\001\251\317$\210\376\364\361\377TvbJ<\004\310\200\227N\212\352\375[\025\2455\010\026o\220\332\357$^\013b]xNm\322\314\n\340\352\214C\351:\027\014_\017a\322\013\255\025\033\312\227\331L\374\036\252\304\255\177\202\364H\212\330\261l\306x\204\334\210C\325'@\311\030\0300\023\232\203\204\250\304\262\215\026V\037\376dR\006\330\2367YU\025~dt\314\277\206$i\326\242\301\311\031rL\351P\347\021\362e\265\205q\242\r\341E\021\266\3212\315\374\232|&\246\371O:\230\214`bL\366p\025Az\333\371\021\342~\317\242\2033\366\325\263Q\333)\235\374\300\225\240%3>|[)8pP\3054)\337\271\230\304\026\250_\001\251\346'|\344.S\007EA\312w3\277s\033\340;\272d2\202\370\010\227}a\312?\356g0\3050\017\025\366\372\317\307|\3127\240\241\223\347\021\036^\005n\025I\013\201\355\334P\034\\\314\026\273\255\016\2411\331\343\025>\202:L!\032J\2679;>\216;\005k\245\202>\005K\342\021^\345\320\223\332\0274$\263\224\325\005\017V\365\222\262\323<a|\242B\216l\033\276NX0\344\205N[\344\261kIPF\033\200\242\263>\365\272\002";
    PyObject *data = __Pyx_DecompressString(cstring, 6647, 3);
    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
    const char* const bytes = __Pyx_PyBytes_AsString(data);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
    #endif
    #elif (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (6513 bytes) */
const char* const cstring = "BZh91AY&SY\304BG\356\000\006g\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`\033_y\273\270\353\222\365\242\236Oh\007\267i\273\355\357y\324\240\264\337{^\014J\326\247[\336\325G\243\300(\250cR\315[\246\351\333E\332\332\221\352\257x$\200\000\301\360S\000\001(\202\ny\032\2310hL\232\231\251\352f\242l$x)\210=\032\236\023F\322j\r\032zC4F\206\232\000\000z\232d\000\222 \004\010j!\240\325\017'\252zL\324\323A\2104\364\215\006\206\200\000\000\000\000\0004\000\000\032b\021\022Q\22124\031\033P24\032z\200\364Lb\236\204\321\262z\233\321\242\t\250i\352i\351\r\006M4\323CF\324\320h\t5\021\020)\351S\312i\350@\375S\021\223F\2324dcQ\210d\310\032\030@y@\003 \323!\243\021\264L\r4A\242\022H\323j\030\236Sjzi\003M=<\250\364x\24654\236\2233Q7\251\250~\250i\223\305=\245\032=L\323D\332\206\2145\000\032\000\t\022\023I\243@&\021\224\3234\023)\344\323H\232mSi?T\320m&@h20#\001\014\002h\303Pz\231\006\215?Z\016\326\003a\317\242\350\304\"3\304f\244M\234L\363R'\206\263\235dB\223T=^\0048\010?\303\320O\364b~\334\325U4R\031n\347\337\367\331\351\373^\263\356\007W\333\016\247R\211D\314\017p*\256\265%\006:\264h\255\027Y\305c\032Z+\330\254\030\014\201\021\343\233\022\303\003\340\020\341\305\353\366}\243\267\333\356wO\017\307\342\371\317\253\362\344\310\254\025y\216\216?\243\227479o\276\346\373\357\271\276\373\356o\270\267\354\037\364\001\177\341\222\361\030a\304\341\r\272\242\245J\212\241\273}9\222^R\320\225\245\274\266\371\320\023<AMd\324\227\251\256\260\335\260\003\230qT\202\242\250\254\024\024\200\262\"\013\026\n\002\213\"$PQ\004\025U`\210(D@\030\014\017\2377\034M8\222\034Loy\234\206>\366\003\370^/\354\357*6\314\247\261\354>rP\232}tr#\200F\230\342NU\260\035o\\\301A\030\"\214\005\222\002\212\021V\010\210\\\314\300\327\024\232\301t\014\231\201\231\013\0301\004u\221{\372\342\301+1\016\273\272Y\251\344\202!\020\313.\311\231-*$e\000\n\246d0\310\242\013\020b1\210\212)\261\2047M\t9\214\221H\244R\"DH\260Y\024\232\252\307S]\021@f\020\354\3547\207P\222\232\323\031""\347r\310\270\303\0033{\r\002`\246\220\314\014\300\240{\372DX\225\014\270\023A\305\367\370B\317\302\303\305g\027\232\024\032\263gy\274xffd\2030\345\203\005\257#\3166\274\022\311\256\340\354\367\204\035\266\222\321\246\250\344\233\346\373\331\357\331\024\021P\210\212,6\246\006go;\027\303Q\260\014&\030fk\200]f\221\261\241%9\313\333nf\265Z\032X\2624g\333\001\246K?n,R\241a\235\330Oj\327^i\351`\264,\311\232\357\001\020\030\006C\220N\303\005\321\226\021u\315%\236\003\222\261T\004T\341Mo\341\247\013g\000\341\303\217\023>\026\343y\340\340\337\017\261\275,c\032\310\257-\013\334d2W\340e>\\\345(5\335\2353\271\246{\2276\335\214\232\267k\032\344e\254Gz\241\323\350\376\342\0229\231_\013&\354\347n<v\236\203z9\3467^)\027\033r\300\030\264\331\2007\036T#J_\007O\354\221\371\345\353=E;g\014\177\004\037\247\005F\301`\0306Xk\027\364\326^\374S\264\361tu\212[\363\210\377\273\360\002\231->\244\r\2510g\340\321\243S\207\315z\312o?\355\345\377\202\262\241\037\341\037*!\302V\312\000\3062\205\345\3507c=\252\026\245\251p\214\"\344\034\347\373\354R\214\3313J\335}\021\202>Hbc\210\207x\2502\025\037\010\305h\316(y&\201\264%\205\243\212\3659\335\243\213OW\230\211\240!\355W\302\304\037\r.\343\3310(\211`\367.\375v\304\330\3204\212DD\016\n\2151\302\212\243 k\007^\364\360\224\271\016\366e\010\303F\236\222\320&\017\363Ut\023c\275U$H\317\200\263g\322\365(\226\255G\02601\021#H\002\322$3a\323f\233L\236h\335F*\256\331\005h\257'\236\230\024b\251\002\216\236\221H\367\014\231\311\375*\301q+\225\375\032e\342\311E/t\250P\241\2172\314Lg\324\262\250)f\373\033Zv\344d\301\243\200\177V0\254VB\375<\212aM-%\243\r\377d\2274\254\335\235\211\374\026\010\253;\333c3\336\365\014\354\000\215h\303\247<\366=\376V\330\246\205\240\262Hk\250\271L_\005ue\362g\227\337?A\232\325v?\243\321\027\2466\201\000\346B\265\314\373\034\360*\034\342\re^\2410\"\212\201\224\212G\035\275\034\233}\250\3266b\275\323:<\376yt\350\344r\275[\217D\276z\032\027\323T\272\001t\350^\354\301\337.\344\366\"\033\222u0T*\255\301\236v\177\251\314ykK}\375\3155\347""\374\330\372\276\t'\301\363\227t\314\td\311r`$\204\302w2U1\226\233'{U\244\353d*N\220\225\035)\022\251d\306\341\036\327\026\316\357\261\313\230\336_\277\317\357{V\307I\343y\"\377\002\362;\342\360:\361X\023.\244\216\002\337\\\036\275y\033b\265\205\257&u\261\226\200\253\212\207$\311\nCi\260\2025m\271Da\226\032\270;\323\302\006\360\tg\266\222T\230O\277o\311\347aPKD*\252\2432\333\"\344\245*\024\"\242\021)\264\221\"D\253e\370\000k\005\001P\240\250x\334~\027\340\026\013U\240Z\213v\335@\240R\231;::z:\\o\315?\341\235EK\302\360\275\035\265jYy\216k\322\022\254\232)~\227I\244\3062L\222h\321\247\353M&(\270\366\241\363\342\320\326tc\255\266\342C\207\326\020\221\037\214D\223 \253\351\2359\030:j7\256\027\304o\327\005r\3478\230\372\022\300\035\321'\311\307\213\310\327\037kB<\240M%\301T\235\225\245%/\031\316\325k\224T\221\"\330A72lI\304\240\310\260\306\033\264I&\006\"\002\244\013\0222D\201\204\241J\257\365\276\322\355\372_om\216\267/\027%\303\206\247\022\266\314\363\341\324\337\302,>Z:\365~$}.\366\3628\323\naL\261N\365\357\320(\363*f\257\275DxQ\242\tE(\316\223k>o\0315`\345\006g\354\227\371\033i\023+\004\r\314F\302\3264\324\331\255\375\262\310[@\234\250\210N\023\346\335\253$\324\376l\210\356M\234_\007\273\3619\260\257[>\316\010\343\r:Di8.\036\3772\301\336+AZ\255\026\3220\216\177\256CJ\327,\345\222\242K,\260\321\t\321\026\310\312\3317\020f\254\222I'K\276\361\036;I\247f\306\254$|\032t\365\373\234\30375\277\333K\341j\227\2727\316\366\201\346\343\314\265m\226\334\371\367\371\377C2\253\256\354\tgVf\365P=\022\323\233<\242!\303\224f\224L\357\221\016N\"\035\244\014\242\224Kw\355\245\373\251\225\347\034\265\272\370\037\244\210\231T\202\235\3347n\317\240\202\245|\374\313\231\351\276\363$d{\337L\267\271\301aH\365{u\241\345\255k\235|<\254\033\255\350Z}\216\356is\213h)\201!*\020~\327AOE`m\005jVA6\311\2519\"\036\330r\224\223\301Y\276\231\363\234\213v\354\260v\023\016\202;4)\242QD\266\346\302e\317\233\364 \275\\\373~&\031#\275\336\214\277r7\231\026L\201\257U\313y\324b\027hO\261\366\245\321\311N5""\236,\227\351\317,\023g\352\320\3617\323\006\3774\036\253\342t\213*\311\016\031\337\354\035@Y\013!e,\245\353D\020\017\276W4\260\320\313\301e0\343!1&\t\246\315\346Op\301\201\271\224S\332\374\256\336\347Kw\006\0137[s}\315v:\306\207e\"\205\025\016s\235\325z<\335.J\266\371c\222Y^\220I\243\215\013\202O.\0346\013\260\3650k\253j\201D\222\237\232Yb\366\316\357\204\241AU\301@\266\374\177B\226E-}\037\034r\002\222\004<\350+\330X\203\210\204\343\267\035\246\312\271\210\0258\237\352\026S\322\007WBu\353~e\342Q\271\251\216\220:@H`?z>_\205\232\327\322\332[\216\206qUZ\233QL\244\241\201\364C\177\316\240\362\256\305\261@I\004B\230\003\221\276q\327\"\31695u\207\355cO\rl\255n&\240x\323\215+\rv\3128\272\300\371f8\014\024>+\254\241,H20\214W\305&\202\306N\236\272[\217\274\321\240B\344#\334\201j\037wP\302\3306EY\205\315\316^M\300\200\200\022rt#\367A\310\266\214\270\264\362i2\201x\014_\326\250V\317\2233,Nz\332LI\264\247\373\234\314\332\312\254s5\222\356Rz\374\031\275YG\003\273N0f\205M\230a\235\310S\022U\233Hb\220N\324\206\321\320VL\016Kb\205K\024`I\306\227,\221\001\020}\316$D\315\214g\255*\3150Wj\006\252\010\316\317\234\2415v\222\237*afFQ\301(ZR\331%h4\234\223;\273KS)<\211 \227\367\\\025\276\222\360\373\331\375\276\357O!u\243\345\026\246\n\031\220\275\304\351\311a\006\316#_\026\035SG\250\266\360\327\t(?\034CG\345\367|\2071=\332\020iL\317h\243\312X\360\273\253\nv\"\263B{\363\030y\234\273RF\315+\330v\2341%z\r\233)\250\214\024\233T\356\236e`\213u\247<\333\204\361\34530\310L\331\217\302f\205\221\356RL\373J(\"A\231N\207WO\273dODv\235\201\337l\266\351\367[\223\r\252$d\306\310LC\003\3108\030\334\230\004;\024\027\247\256qR\002\374\273:\256|E\202\265\250y\313\313<\257l@\200\2171\013\307G\232\350#\027i\300\204\334\n34\340!d\226JB\201\nQ\034\352D94_\316\357wzQ\312\034\225\3378\256T~6\360tH\346\247l^\351$\336*B\255\311\007f\001P#\216\314\344\313Q\243\327\342x\236\214x\014^\314\213\230cJ\031:q\007\026f\"\033!\226\200\355nAN%\305\277L\260s\226*\300\3307@\366\207\017PAz\233'aQ\362\257a\344\216\026\343\251""\206\336\343\336)\253S\212\266i\377\305*b\240C\210r\306\222\326\006U\r\232!\302\"\262`\203\247q\273\247\344\365|o\215\345\304r^\243\224%\0061\304\307\000~r\252B\325(z\363K\033\273)\345e]\034\322\237\227xM\241\\\272\301\032ZR\333n\022\205\036\251\361\354\333mR\304\347\010X\201\203k\004\323h\216f\235\213\263\330p\212|\207\226m\254|\250<\306\355\001z\312/k(\020\033g\034\022W\333\013h[D\315L)p\302\\\325\324\265\376O\216d\324\320\1775\343\363\210\030\346A\234\342\006\257\216Ubyn\271S\037&A\222\020(\250\202\310D\220\322\325\035A\257\026\304\233,\257`\"h\316\355(\022\255\253z\336\005\241Wj&\0219U\214X\257n+D2\205VV\365\314\242I$\222I$\222j\223\023vD\216\341r\0063\225YH!\214\343p\233\221\205 bqS\233\312~\2643R\226\273+e\346$\245pPOS\233\360\036\221\024\010\002\250=\216\217vr\354U\321\314\352\004P\274\306\272y\267[B\3331\305\236\367\266r\233\030\312\360\037\004Z\320t\261\265\225*\353\302&a&\022Q0z\300PL,ui\237\nPd\370\020F\236\237LV\313\277|\202{^\0313\326\370\213\355\024\366\221\233\0143\n\374@\221\t\207\037&\214\3140\314\004o[\250F\213\262\210\367t\024+t\024D\335\247\301\227\277\233\316\214H5\036.q\314\221\t\275\014\366\206Dg/\020%\325\024\351&\336\344\231\336o\301\3115\034tq\340\234D\241;\024\353\023]\256:0\014\310\273\352V\027\223\300q\365\350zE\222\030\322vg\276{O\255\327\202\343-\375\024\021\223\021-p:\005\347\272S\030[t\022a\310e\353:\316\262]gI~c\370\236-\331\222\205\336@\320\315\014\227\263\2325{QCux\257{y+J\250'\003w\0012l\227\2369q\323k\260\3576\243j[M\207w\302\364\344\304\3300\312A\314\014\221'\r\242\025\377\026'J\0207\247$\215\206\212\205\014\374\220aR\264\275\354\236\032\230\237\214\367\013\035\213\031)\224\236\331\220\2222\036\234\244\2320DDD<2\"OXkF\244\217Hk\367\373\365v\003\030\232\032\325\036w\016D\240\206\002%\236\345\270\325\314q3^\334\350E\300\271R\211 \2277\213&\350\2443\3169\254m,{'\263\301aG\234re\230\205?Z\023\005\270,&\203\310\233\320\224\257-e'\252sV\243aYH\274*0\325\034f\"\0364v\341\253\240\207\007SJ\027\267v\357\3356\010\302\233l\2402\033b\033""\0264\260\361\031\363\005\313Iq\251\273\016\213`=\036\003a\230\202 \3204iD\334\0265\305\2572\226\014^@\267D\333u\260u\314H\260l\003\200r\3609\355\025\311!\200h\351UU9\325x\364\260\337\246\022\352@\270\364CJ\01062x\365o\257>\275^`\267\365\333 \350\257\221\005\330\213\217\337\206!\2528\304@l\311\004r\006Z\255\034\301q\310\206\304\271\320J\024\200m\266R/\315\206T\312\242\303\315L[u\203i\353\327\241H\241\330\300\235\210\006CT\356\321\251\307\217z\376\006Z\213;^:%\332\343\226\256\215GN\201;;\247\006rBq@\321\033\317\307:{2\231\"\330~a\365\206\246\263\255[0\0351\002=V#\253\023;\005J\356\340a\010^y\013B\270\\\257\334b\312L)\367\242\354A\234a\235\335\335\226\205\246\025 5S\366J.\336zTLFb6\306;M\307\303~*N\032\362G\260\361l\3561\016A\336\"%4SU\302\355 f\245\205\302\202\225\026\236\033\252\031J\316N^\263\030\3334\026\023k:\315\205ZH`\343\\\222\202\304\223\270\266X'TMC\014\355\033\007'\227\032\"\220wv\006\370\032\233\315\311\221\273\261\260*\322Y*\371\267y\300S D%\201\234YU\253%\235\035f\376\256\256\255\376\215a\324b\326\224\005\361\275\244\267\201\260\\\363\220\250\305\317\354\244-\334\030\005|\002\363\027\032}\327\036\322\242\030\322[\316m\3148\342\270\020\347NN\001RT\200\210\311q/\223\272\2632LQ2\205\361\2232`\273\013M\016K?\003\206\232\343\203&\232\273\336\0163\023\201\265\273xI\3279dq\006\253\t\333\307\357.\001\214\362H\253\206*?Ok\323wNt\255\264\r\007\\O\016\245FH-\351\3146\333R<\033\224\236\303\r\303\211]\022\221:\331\225\007p\tC\2118\241\n3\002t28\330\314\305\305%\253h\013G}s\267.\313\213\220\306\234\362\230\245\213\0173H]|\332\007p\342\222\357:Y\261\256\346x\"\210v\235\2712\035\251Z\031\222\252\215+-\364\2408\2656Q\242[\263\"\017&\231\226\302y.`\311q\214\004\314\204M\2146h\017\265\244\300\032\355\323Ll\306s\273\232FBs\222N\203\013Ki\237\020\345i\252*\252b\010\326,-\220n%\r\035\277\307\014\027\317\n\235|\203\243\211U\215TY\300\226\r\305\004j\034\212\361\371\024\334\0201srV\372\023v\251B+\202\343\032\271\"T\020\346*\3044J\243\302\010\002)\217\010\245\004\254\302\214\332j""\204\036I\371\235\341O3$v\332\036\206`\031G\000\332\001\334\262\204\211\264\004\346\003\216\014\343F\343\215r[\374\366\227\014wp\202S\r\342\312Fa\236\2637g\302\200m\370r\224\201\233\234\222\030\324MY\357\322\212\033\024Dj\226\035`bA\320v\246\025\345j\262U\254\013E\362g\225$jib\014\272\036!\001\345+.\333\223\"\253`\030\315\322\005\275\317v\351eU\021\211Ra=\024\307\216q\236\014\214\214\347I\302\262\322p*\315{\005nFWw\010f\266\013\3418\310S~\nWA\001\202Q\202\204J\324\014\337;;\014\302;Mz\306\220\316!{\302S\017b6\006=\006,\315\345\276\26392\24222r\253\325_8[N\232\364.\221t\207J9N\225\331\332y\264\367rr\234gX\023\030\33220$\024T\320\3134\270+L\315\rnJ\323\256u\r(2\214X\3153\005;,.\246\342\2668\311X\014\254\326.\305\3416SrWx\221\2334h{\030\312\035\tv\222\360t:\233V\374q\0021\211w\262\030\275\352\356\346\026c:\252H\031\022\031d\324\302\271\351_.\036\211N\307;\032\002u\336\261\016\360\305A\347\000\223K\246\2602nw\265\000\273\n\211\026\032\014a\225\360\346V\216\014\321\357\231\3709>HA\206\234I\017\036\034\210\203\025\243\36592tpf\326Z\325\214\210\"\034D;L\262\226\335D_P\270\332\013(\275\271s\356B4\177\004\351\236\2456\210fB\267\254\224\211\302\0311\341d\"\360\037hp\204i\030G\220\322|!5\001\307\346\201&\320\321\026e\202\276\007\004.\0028\013\2079\317\317J\036\203*\343\353\322p\005\214\ri\036\204\212T)\300\333n\266\333{p\262\213~\355\224\3661\355A{\301\333\273u\366hi\030\260\031\245\334\032r\242Fs~\365\264[V\376\317&\3777\271v\261lZ\215\273\036\276\363\222\3167\270\031\034\374\211\334|\215[\003!\260\201`,X\260\0262\351U+\327\317I\234e\004\367)\344%:\303G\257?N\224\032R\322\264\255;\326\363\016^\354\354m!3\305\244\271\010\010M\003@\205\031BYIe\236\215(\354\345\314\306l\200[\3243\021\231m\212\256u\244\214\325TH\0277MA\006+\220\226SV\235;P\214\232\003qP*\266\0330`\331\376\037\345\247\371\273>\344\351\335+\311e\324-\"\372q\024\204\205)$E.\2077Z\207\031\214\325V\366\261\214b\263$\2214\375\371\305\373W\265\371\240\023\326\014\224c\317\257\034\034{\342\246\3451\224\t\225/\366\316""\227\3323\2461\212T\352\335z\362\037\321\220D\235\"{\022|\301\2354\006\"\202$_\263\341\334\220\342\202\310\212yp\023\355\300|\273\354z5?\262\010N\351\235\025\214P\237\325\222s\333\266\206\350\224\252\"\310\337Z!\324b\223\312\023\361 w\271\350\010zc\337\203\017\005\357\331U-\261\235\311\322\030\336\220+\360\025\342\343\243s\005\225\247\311\345\235?f\277\214\013qG\374f\023\r$Pj\24195\344\210\230qI@DG+\335\260\275\350\355\007C\351\225\355A\370\014\365\206\225\221@\014\300\005\\\000P\215)_\272G\233\036/e\307\211'\234\302(\3347bI\354\316\330\355\277\311u\353y\331*u\027\351\346\303A\226\0302Yi\266\351;\271\334|\337\357\352i\232[fU\314d\034y\235\317\357\321\320\003E\025\030\270\250h\237\253\226<\244\300\373\035\211\035a\177\325\341\\\307^\220\346\003\317\275mN\264\304\310C\336\373|\310\3460\240x\333|\277l\371\001\374\003\037\361{\367\261\357^\364\001\244\2617\261='\023\212\346\373\021\315\340\323\235C\257\3549\302\241\034\356\310\351'\346%\227\234\371\210\035\232\252\305w\003JL\013A\206m\005\014\216\333\017\271\20061\317\350yx\036\273\363f\242\207\266\017\234o\016\206{6K\374\010[b\010#I\210[\376\\v\374\344\027\237\323\354\016\214\230\374*\317D\222:G#1\247Jh\344\240pt\365\372=\275\360\302\014o\377\227\322\270\003\2667\347.\204\2211\237~\261\266\202;J\030\311\013\320\035\036\222\337|K\267\311\232\212I\364\344\355\"O\376  :\210k\230\335\255\351J\322\333\327\354pp\257[\206\240\005KsJp\030k\212d\211G''\324\220;\306\023^\226u\315\354\321\rx7qm\037\317\216`\317\033\036\265\005U\325\352l\323\255\210\320m\333\344q\365xd6%q\332;\270\360\335\361\3401\325\254eo\356\340\364y\3745\265>\245\205Kw\037\022\034Sw\032\232\255\217\265*\010\364z~A;\220q\337z|\\}H\311\257\323\305\324\254\347f\014\321\030\316\242\306\233\021\213`T\306\376\356\036\036\036&8\000\256lb\003\370\326\207\035\361\013\027\306\207RE\275\233\270\001\003\240\007\026\321\306\202\342\236\027\3378C\210\302!\230\222l{\235\351\351\360z`s\344\205\000P\341co\003\177\000\252\222'\207\017\215\005\260\203\\\316\227\241\277\336\r""\376\001\271\327\345\233\004qn@Q\033\2666\216\217N\210\333\270m\350w\\\034/\022lp!\212\313l0\223\377\026\021u\270:=\201\177\014[\341UU\3000\341\205\216X\231\027\014\230\266\371\001\215\304u\367\236\341\370\217\201\210\376\030\330\213\271\372(m\342\335^\270\336\300\276\037\313\273\300;\201[\331`\315\363\177t\335\340\030\014\354\360t\213lG\033\352n\233\336d\362u\200b\357\n\3667\022\216s7\215\277\260\334\334g_u\316\343h5\354\003\255\307\014N]\357\"\312l\357m\246\322u\330\357+V!]\376\355\233\214\3347\006\033\213\264\217`\220@z\276m\215\203\305\204\352\372\320\177\016 k\310M\257/\217\334\357\013\325\352\3557e\203X\246\326\324*\255\n\005\231\341x#=T2\207\215\030\023\350\257\010(d\316\020{\027FX2\002\335p&\030\2323\220\250\316L\256\344\025\271@@g\013\233\270\336j%\300\253h\023q\366\234\r\223v*U6\331dU\221\217\251\002\r\232\226A,\337C\347\257\302\322\331\025D(\230\326,\2328LS\313\310\324\035\360\212g-\tk\271\245\2654\333\226? \177}l\244\006\2453e\026\273\275Xx\301\366\224\274\255\371HBiJR\357.\276\212\251O\377b\366u\272\2148\nu\310\205$\013z\013\245n\306%c\254\355J\276f$\256\244n?%\20698\221ma\332\364\n\024W\247\321t\335Nn\275\220\216{\3342b;}\306|\232\273\310v\366\377\017\271\004\025\010\362\326\321\364\324\016*\246\206\311\242\272\371\322\031\227~\362E\302z\224b+\240\255\275P\265\333\245v\233Qs\360\201\355\330\325\210\375\343\340\266'\316U\353\371Z{\030\027\241\312)\311\237\034\375E\202\0229~s\217\234\035\036P4\207\357\333\030E\017\215\022\221}\342\373\357=A\251x\267\373\301\213\304_\341\346c\261\000i\315?YS\261_/\2259\"\252<\034x~\024\353\261\243\003K`\016]\204\t\231D\353'\222\306\302\342\316\204T\225C\022\234\3260\304\312V\351\341\247T\233\016\215HL,\221\356frsXc,\024@\t]@\231:@\022\300\322X\201\223\021\334\2353Q\345H\327[\004\203z\263U\243\365F\225\201/\004g\032!\244\274\004\210zinF\207B&snM\244G\362\327.qx\025\233\303H`h\251\343K\253O\021\220\354[\306\222'\220\376\315+\303\304\260\304\357oH!\316\270J\220\2645\3162\336\036L\204\244\202j\311y\030\304\2743\025\352<\260/)""\017d\302\211\361\362\245a#\202\033)\222\374\236m\006\262\330\306\316_\210\2653\205\254H\324iusZ\013\272\322Dr\010\344V\210C\301,,\316\264\373\337\021\327/\013Lh\220\032,1h\204 \030;\316A\302\022Xb\330\025O\342\254\312\310\310\2742\010\244\027g\300\020\007W\265\245\357`h\265\331+e\262U\010\030c\241V\360_\252\217\262\243\031C\377\213\271\"\234(Hb!#\367\000";
    PyObject *data = __Pyx_DecompressString(cstring, 6513, 2);
    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
    const char* const bytes = __Pyx_PyBytes_AsString(data);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
    #endif
    #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (6702 bytes) */
const char* const cstring = "x\332\275YI[\023\331\372\007\032\257\210\250D\203\340H\001\306\200\003\336(N\264\303\215\020\324\026\221!h\333\242\325ER\204HH\205\252\n\203\303\277]\262\254e-kY\313Zf\231e\226\265\3142\037\301\217p\177\3579U\2250\310\355\356\347\336?\017\324\231\317y\317;\376\336\303\2031\245\230K\013yE\027\226\262\371\264\260.\251Yi1'\013\222.h\272\244\352\202\262$D\264\341\301\372\274\214\254\013\362fJ.\350Y%/\254\312\232&e\344\241\372xAR5Y\320\224UYH-K\252\224\322eU\033\025vO\320\227eA\225W%\234*\253\243BtX\030\317\246\205-\245(,)*\235\241+\030\317d5,\027\024U\310)R\032\213\262\232\240K\231\307\177qzb\265\240o\t\2139%\265Bm\001\204\347\262yY\210\244\371Hp\355]\203\30157\226\2639\242WSr\353\331|\246\276 \032\321\242B6/\350\362j!'\351\274cxB\302\3644\210PV\212\005\242PX\221\267\204w\021\355=\315\215\250\317\363\353R\016\364\357\245\310\037\tX'\014F\375\276\245lNg\274\302\021`\300$v'Zh{\005K\225\245Qa\n\225)E'\366B\202c[\37226\006\023\322r.\273(\253 0\267\005\301\252Y\2665&\345\205\351\304\364\365\221{#\202\004\361\253\362G9\245k\202V\\L\345$M\2235\222\377b\021\007\323\035\267\n\2626,<_b|\317\313\270!\270^\300\274\306\005\020l^\320H\"\220pT\312C\344\022\361P\304r\220\033\025\322Y\025\207d\327eZ=!\3454y\270\375\303\340\343\351\007)%\017\235\313\353\217\"\203~uH\033\372\302\007\301\361G\357\"\203(D\342\2156\244\275\277\2121a\360\361\350\202v%2\310\231#jraHCG\273@?\264\320\033\310K\253\362\243\205\215\253C|\204\217\216F\006%5\303\027\325\373\275\261\235\035B#\205\"V\355\246r\357l\242\225&\356!{\347\334\206\346\320\343vah\032f\227\225rIO\243\2065\245\250\246d\222\242\222\207\364\244u(\027\323\275\r\342t\240xiy\261\230\311\220B`\246\234\247\031\351a\177\223Qa>\237\312)\032\211\254A\333\036\274\366\365xJIcRD{\024\364\254\0265]X\204'`\372\202m\241f\371\342*\264\350\232\220\201\031G4\177\252\306tG\3221m\261\250\243\271*m1K_\204A\302v\262\372\262P$3\327R\nL\210+\2608\330/\016F\207\204\317\021\001\035_\320~\024\211DF\205\321\317\221\310\327\317\237\277~\375<0\360u\370\363\327\301\317\221""\341+\217#_\277|\376\214\362+\312\001\224\003_\207\372\337}\350_Xx\177\205\024`a\330k\014]\351\217\276\373\020m\354\217\362\376\350\343\341\033\303\3037\332\207\207\207\373\037]\023\244tZ\314\223\241@@\305U9\257k\327\004\210S\2277\365\206\233\217y=\270z\032&\343_<\235\325\030{?J\371\2142\354K\2007E\277\251\211)f~\331Or\372\306\242\004-/l\0350e\330;\375\240)r\036\374\224\017\234\341{,\355\240Y\344\034a\022\320\204\003\247i\322\222\314e\317\325I\316\247!\270k\360\376\005\0300T)*,\251\312\252\020\315\244\332\231-ec\367\362\242R\220\363CZd\020+\323kTa\275L\371\206\264/\355{gi\373\316\362\226{U\2323\324\016u\201>\005\276\227L\032\272\223\325<m\027\"_\003\331\221\363Y\312\252h\220\276c\025\233\375P(\250\312z6-\223\253[+\302\021iL\031#\332\003~Qnk\217\002\253\022y\367\303~\332/05]Y\221\363\243B?\257h\017\037\024\363+ye\003n\217/'\035\273&\254\313\352\"<\337\352C\277\",l,\014/\\\275\016^\r\222'z8\364xp\370\352\320\223\311Wc/\330GL\306\237\212\211\251\361zc.\031\237M>\201\362x\23286\301\274\331\363\374\222\322P\035\026EUN\027S\262'=Q\3349\010o\014?\2457\014\277z\37121\225\364\n\377\330\306&;\330;t\234<\313\244\274)\253\365\3320i\017N\025\265B.\253\377\250_,(Z\226\251c\303\014\3064(X\202i\363\304\304\363\311dbV\034\213OO<\237\235K\372\355\311Wo\022\263~c\352\325T\302\257\317%g\237O=\235x5\3732\236\024\347\374\336\371\351iL\347\365\370\354\323yv\221\271\304t|6\236|\345\017\324\333\214;\211\315\002\024@\003y\273\333{\031\272\317\214=\\\3353\007\276\005\006\265,\247V\366\014q(!?\207W.\246e\362\276\2149\036\017\305l\036\314\023\375\226*\027T\277\225Re:\2231q'?i\023\266\021@\220_\356\275H\303\310\236\013\004cR\001\346\231\016\232\300Wp\226ix\207\305-\n\343\3011\270\006\371uj\356\177\322\217N\331\177\313\306\355xU\364\360\203\234~\245f\241.\374\213]\3455Q\014\032\234[A\223\263+h\302\204\203\226\347\371\310\027L\023\014U\3717\330#h\362=\274&\005\013\340'UR\267\274\236\224\262Z\000\304\0239\270\360:\001\262d\235\372\340v\270\200\274\001YU\025\177\022\354\t7cw\317\201\203^/\201\357""\235\233e9\350\023\031D$\243\362\372\363\330`\307\346\014N\373u\220M\2737\216k+\331\202\010\220\346\037U\364\200\300\216\235\033\001\307n\374\261G\260{'\354\221\361\236)\\\234\273\273\331\265\013\274S\344\316s\367\024R\224 \252AJK\312\356\031\236\246\210\323[\233\370\033G\234\026\247\300\244YyI\234M\314\275\232|\235\020'\342\223\223O\342c/\346\3409&\023\342\223\331\370X\202<\336\2166sys\210y\343\222.Q9\307|\1772\361k\322?k\\\2215\300\353\304&$\347\367\315m\345ui3A\"\366\273~\314\272\203x\266\233YA\333W6_g\016\340\315.\246$\301\007\262&\277\334\217\240`d\037\202\274\261\235\233\3551\315$i\033\377\300\220Y%0(\277\305\355\211\267xh`x\007\270k~\352\305\324\2537S\342\334\253\371\331\261\304\353\370,~\237\307\237@,\361$\\\375\223\371d\242\356\270\2031/d\355h3\001\276N\314>y5\227\360\261\251_6Jn\277\276\200\340\037\0142'\342\217\021\027\032\353{\331\272kt\017kw\214s~\372]?\336\354\240\215\374\200\"\302W5\270+i\t\036E\312\001 \221k\321\3044T\033`\235\373w/\365\241(U\217T\222&i[\371TV\201\332\251J\021y\237\254\021\264\227\212:8\222\222\n\362\242\214\214S^\204\351\322_\000\035\027\263:~\265EE\327\225U/e\364\nZ\226\325\341\316>\311H\202\000'\323)\344\323p\2029\257\364\024[\023E\226E\212\242_\201\206gq\0005A\010D$\202\222\224\274(\245V\230\027\203i\254\342>^\001)\321\0007\227\235.:h\301\375\355\266'\257\235\006\337\265b\216if\232\3768r\251S\347\247{\215Y`P\347@\221\224Z\312\262E\014:yJ\356\353z\252\241\027n\234\356\204\276\"&4Du1U\314\025\324,\217\217\276\240\227\340\300A\030\220+D\010\246\254\312bP\241\360\311\262\277\264\274$\341\002\332\336@$\212\224\277\210\274\240?\312aR\222\232\366\360\377\022\361\003\321c)\273)k\273\362\232aJ^\016\312\023\352\343\303\320\227\234\206@\210\255R,\353\337\321\017\306P\346\260\243O\2253\362\246\270,\347\n\262\272c\240\236\014\371\035\252\224\327r|WhtZ\241\004NLI\271\034\323\213\20021\255\244\360)\262\304\205L+\237\326(\007E\211`\307s(\000\210<\275\n\240@\366G\357\"\034R\260H\315\325\034\216\225\271\324\300\301\326s+\314\333$_\301\023!MD \205}""A\024\273\202;\232\252$z\322\346\r2\300%\331{\223\220\003<\330\360H\341UUi\303\323)\277C\256?q\360\232F\341\263\0019\354\023M\251+KC`\rH\023\3752\313q\247\266\247c\370\001\273\214\366\010\301%O\364y\023`\035\3132H(\346\202\255aI\242\310\277\336\\X\353\244\222\311\310T\021=e\334\033\243\250'\007\271\026!\214=0\220:|Q\362:\263\023\215\366\241\303\311Q\201\351b\3353\260*w\212T\343\013\244O[\031x\257\202\266\254\257\346\262\365\3342\310=\263\231<\004\r\263\312\346\212\220\001)\220\004\305Hy|\3402\324\202\226^\310\371\001\202\276`\260\247\313{`\232\230\205m\370\236\023uJ\242QP\322\n\007M\341\322W\010\"_[\221\267V6\310\021\303\247\256J:\257\2532+\241\354\232NW\021\353\257h\032\273\033%X\236\327\202\243\347\276>+k\344O\350o\021\336dE$\271S+\257p\324\333\200}\033\036\000rL`\364\205\252\345\224\r2\nz\225\245\257\272\302\310\007]\251e\357\241\027\3352\234\254\357\245W\225t\021\236\203j\252B6Ed\240\241e(\021\027\027='\224\017\024,M\307\213\242\367\225\345\264&\326#\013\365l\320gS\257\303\\\022\204oP\\*\301\207\024\006\366\253,\322\253%x\3160\276\002KW\0130\003iUc\330\230}D8\331l\216UUf#Z\241QY\np(\005\245\340\247\253\"\371B\314\222y%\200\324h))0BA(\245\207k\350<\224I\005\035\336\263\002\346\003\205R\270#\236\260:\005U\255\270\312[^\204auOg\251J\027\341\265b\276\220M\255\200\245\r\031\374\256\221\335\271\344\256a\202\024\373tQ\272\266\253{\027\220\3365\372\303n\216\002wu\3738\344\007\335\365\025\353:\237&\212kE)\307\365\200|\035\363\274\242\247e\304x\017\004\211{\340P\320\201\270!zX\271\361[\007\246^\333\2637\257\005{-2$\021t\343\232)\331\207\250\036\216\342\202Re\324\020\334\264\372S\230\206\220\242\311\271%\215\302\n\024\236L\216\3412O\247Q\363<_\003Z\023\367An\032\\\220\2443\347\003\345\323E\377Y+\360I\224\267\355\210\313A&\247\3014u\376\302\302}1\377\212D\022\2571d\341\325\331\377q`\ny\276`\007\370\346c\354C!\222QH\237l\nf\276\254\020\242J\303\275\210\344F=\020\314\036\3468/\304\354\222\3509@\352(\260\207:\255\0103\002y99#\341\256\3745h\307\243\320\376/D\344\214|\317\037<""\277\371\0002\350`8'h\005\236/\350!!\324\037\357\030\003v\275\345\211\"]\021\337eU\331`V\315M\233\273\\^g\273\260\032\343\215_\245\345\274N\006\353\277\273\360G@])\350\320\272\034E\n\266\234\320\212\010D\2747\337.\346=w\347\021\224\3132\220\356=\"\026\363\033\252T(\026\010\336\201\225\262Z\304\306Ex0_\203\230\002\263\217\006\235\361\376\311\020\374\203\201*\344\033\375GG\334*O\177\244\272\323[\257\230\253\024\256\014\326\253CMM\373\366_\243w\377\"j\334n\341d\305\233w\017\200\201\342]\037\326\372\257\346\330\"\233\367\3273\345\005\350,P0\031j<\362/\0363Bps\217\023\244\303\376\253\264\377oH\374/\220\325D<\375_0m\250\211g\031\\9w4\310C7\375\300\1776\211\301\200*\222\023\3413vt\323VM\276k\025\227\370~T\002\031\361\177\007\002C+\005L\375\201*\376@\217v3\264\300r2\355?q\225c-\017\267\243K\270\022\254\007W\000\236i\223!\316\350F\376\370\363A:\020\224N\324\223K\244\333\3755\272\207\232\202\374\022\247q\036\377\177\334\374\036%)\237\220\312\210u\027\352\347.?`\302\336\211n\353?\235\346j\333\321\355X\265\343\244q\311X2\343\325\316\020~\277\377\243\251\353\254\031\252\206\273\252\341>+d\365Yw\355~\373\211\235v\"\316\377\225g0|\344\304v\332\270l6W;\216\321\357\300\240}\304\t\271\255\027\334\0131'Tm\353\330~f\304Q\270\035\027\314\031j\376bH\337\232\253\255\375\330\352\216\035\242\352\025\273\317\276\343\204\276\305\277\305\277\377\322\334t\244s{\335\2307\373\252m=\330\265\355\304\366\232\367\3516\360\t\031g\314A\253\217vJ\030=\346\031l\363\310\t9\227\034\251\332q\002\013\347\314Cf\322\n[svs\265\223Vt\2361\303\346\033+n\315\333}\365\306k;V\355\3541[\315\247V\314\032\307\334\216\036\363\260\251Z]V\332\216b\277\210\263V\3558e\304\252m\235\306OF\314\210\327pr\310\030\000a\375\340M[\330\210\033o\314\204u\322\272i\315Zk\337\333\232\216\264W;N\033)3d\016Y\267\355f\033\334;\217\231\350\223jmG\252\035DK\307ys\022Ca{\206\365{\237.c\206\237\325\320\304\376\364\031\007Qk\365\031`PG\323\221\216\355\030\212c\347\314k\226d\2518\010\027\377b\3362\245j\347Y\326\247AD\023\016n{\312\0301\326j\341n""c\323\324\254K\226T\355\3515\213\270\375[;\343|(\217Vfj\341\036\263\303\212W\273\316\233O\314\024\330\266\340\204x\3373\010Y\"\016\026\315\270\371\326Z\266\263\316\2472;J\247M\3679\352\001\316\350\253\206\317\231\267\255f\353\214}\3319R:[\216\325\260\305\027\353\226\325\260\327G>BR-\202\215o\315\214\365\301\031-\315|\213W/\366~\003\247\217n\217l\377a\246\255AH\214\035x\327\364D7\203\336\250\035\252\241\021\332\251\251\017K\363\345\253\270\020[\374\tR\270lA\250a7<h7\223\226\036\333~nx\372\227&\335\3524\016\033kf\263\177\234'\355\316\260\361\324\364\212Q\213(\302D\246\204\237\315>s\004\262\300\016O\215X\rdi\306Us\326\334\240\233\235#\356\343\372\375`%I\035\232\336y\032\347\014\340\266\222\265V\r\2375/a\002*\027\230\366\261\341\224\331\305\372:BF\267\331\214\373\220\226\323\211!\350u\330\374`\217\3308\356\270{\374i\231M\n1\013\3534\016\0313\244R\307\271\331\231\335\026\273\004\023\265\331\\k#\302\372\214Q\220\266F\215\r#\003\256I\265cd~\340\330\000,\244\335\032\200}\264\332O\235\307\345>.\010Z\023T\356\233c\264\370\350\366m\350\376m\263\005\274\374\t:\335B\3428\351\236\214X3\356\345\031w\346\215\373f\301]\370\340~H\273i\271\306\251\377\336I\3729\202c%\322\337_pC\335\002\273\302F\0022\001\023\310\216\272\214\254\311L\3714\331\004\273\324a\252\005\005\223X;\331\314\272\371\332\212Q\327qs\t\314\365\324o\203t\235\334\321\025{\334\351(\305=S=\261\375\325\2147hL\310\r\rX#nt\264\324W\272U\222Jk4F\2721\340^\270\t\227\221.E\313\247\313Z\345\206\373\366\275\373\036\027\021\253\235\027Aq\221\213\010\313/\223t\311\345\220\256\353\366]g\260\324\347\376\374\242\022\253$\334\231Ywv\016\344Cd\203C\337\2173\202Oq\342\314\265\006b6p[hI\255\323\037df\322\345v\361\315\253a\362<k\340p\214W\377\200\251m\2264H\346\021\316\250\321\314\250\265a+\245\267\356\304[\367\355o\325\2363\3705/Zk5:\234\213~\003F\364\336\351sF\234\215\222D\207o\272\335\344W\177v$\010\345\037\\([t\020\311b\334\355\031$\027\205\201c]p2\314\3653#8m|\204\365v\223C$\221\365\200\307\021(0\032\317\241F\037\355c\316\014gp\214""\354\371+\030\225t\207~.yf\036\203\210<=\360\216\374\304\374!\263\027\250\204\261\005\243\204\347\210b\333\250\335\203\370\020:g\306\314\347\304m\336\333W\203e@;\\a\262\362\244\222\006\207\335\271w\356\273\205Z\333\261\3557\024HN\033\213Dn\373\3665h\030\212\313\334\216\253\344b\351\214\217\214\221\235\335n\367 4\234\350\010\205I\033\314\373\240\355\214`\035\267%\230\025\374\240n\335\263cv\274\006\207\365\200L\264\253\261\023\325/6\273\224n\336\243k\325:\216o\347\240S(\226\210ad\247'\334\023P/\353\223\323[n-S\360:^\277\363\000Y[\247\3339\300yr\224\233\204\241\321\026\307\266\337\032\222o\355\275\367Ju\356\037\343n\343\222\271\314\334\306\2510\371\325\030\271\217\276\032\034\331a{\253t\030Z\034\246X\322C\216\226\356z~\300\035\270\355\314::\244p\036\347\325z\240\3035\346\034am\035\333\023T\361\342O\247\321\306\302\\\310\213\r\325\360y\026\001\237\3333\266T\363\032c\326\246\275\0068\000~\252\360:\235\247\335\323\244-]\010\0323A\347Y\304\301\004\323\216\317N\264t\261\274V\013\272.\333\336\3323\270\311G\266R\252r\261Z\315$\337\340\362\240n\034\362S\315\020o$\230'<e\3069n\200+&O\004\316\"\274\236\304\251\024\203\275\017\000\305ys\202\316\342\341\224\020\002\266\316\260\020q\035\364\037/-\225\237U\342<P-\331q\232\324e$=?\353\266\236\347\247<%\307\301Q\211\327&e\211q\r\016\221\357'J\310D<?\035v/\334`\354\341\333\\\267\305R\374\373e\n0S&\203%\223f\263\267\243\327\342^q7\375\230~\r`c\270\324\274/\361\037+m\356\364\314\017\250\3478\200Qwt{\024\361\200\242`=\216\004\024w3\177\263\316\320\016?\244\013\250%n\376\352F\356:k\245f_\016\027{\231\375\340\000\367\314U\373\236\023s\342\325\023\235\340\372\2610\363\253\356\t\370*\322\n\342\021\221q\316J\330\347\034n\354\236\007?b\236D\024$\305]\267y(\377\2736K\272\371?\263\330>\200\234\337\354?J\351r\037\365P\024\355\343H\353\250\305\230T4&A\316}\004\307\021\247X\372\245\234\252\020\016f\n\327K\nlAWk\304\260\323\034H\364\222?\207\325\261X\213\353]0\347\341\333\272\200\220/9\231\222\007H\326\301\2630pi\250\306\014\343\024\270\002J?q\357""\312\003+l\334\274\003<\031\3431~\236\264\260\332\331\317&4\223\340f\014\231\240\025\005\231Q(\312\242u\310\232AX\341\276c\307\276E\216@\370<\n\233a\n5`\033 \215%C\027\272\350&\377\240>\304\010\200\022\367\302u8\000\331\275EP#\334\315\242\311\014y\030Z\260\014\353%\277B\334\376d\207\330\002\\\245\233a\3340\277\005!5\014\257\371\207\300\227\374\3479<\372\304\215\327\346M\346-\353\267\336\357\nd\257a\300>3B\361\271\341\nl\340GW\000\3521e\362\211\2742\202@\nm\252y\033\351\310f\372l\006O\016$\2033\177\304\355E\226\3440\023$\037\317\275\035S#\256\034\201\275{v\321i\264\223\002\"\014\010V\0130\327\257\240p\tVC\010\207;\265N\367\004\335\343\260\005O\002\032\276\237\244\010\362\200\207\211\263\244]\247\214{\240d\227\232\022\343\316\002=\256p\354\377\231E\233N`\335K\210\307\277\331\2330\355C\245\005\350m\350<\371O\356\353\213\304&\302\241\340\246\365\306\275F\361Uv\347\222\014\202\220\335\275*\305J\t@|\262\303a\310\274>\231L\222\331\034)bp\314\247R\375\2003\240&K\206\037\304\225\206\223\236WNVn{\316\3542\031\020M\272G\220\031,\350:c\036\347\030\031H\000\355P\2271\005\3739i\337wX\360>Y\rS\220-2\027\330\335\003\210\344\366\020\260\271\353\014\225b\336\204\313V\016\320\347N)\344a\222]\244\373\024\2737\376UF\374\t\343\000\312\205x\266[\217\321^H:\312\370\017\244\312\321\334&\013Z\001\354}X\232-\255q\001\353\224\2171\327\351\3279\014\354\364Z\254\233\3203\366\362\233w\275F\257\300\333\367Y\300\215\023\212;Bjq\202\345\023\250\264\032/9\n\3534Z\200\331\231_\036qo<f\270\020\n{\312\370\231\240\265;0\342\214\227\232k>\361\\1\243V\017\202b\3229\355h\245Hi\275\234\254\204+\277\272\363\277\272\277\022\314\375\326\374]h:t\324m\207I\324ZO\032\203\320\263V0\237}\300\321C\027\241M\255\355\333\375\333O\266S\310y\373\374DmfG\264\351\345\251\013\\N\215pK\330\030\243\254\2204\364'\236A\215\343\352}T\241$@\265N[kAo\r\352t\323\364\224e\323\374\314\222\310\301\322\245R\266\274AJ\211\314\342w\367\367\214\233Yf^>\n\315z\017\014\0173>g\336\345\031\177\365\374U\373\001\222\364\236\033\366\227\322\3752""\002\300ys\234)W\317e\204U\262\352\236!x\253k\316J\271\247\022\252\365D\350I\000\006\303<A\032\251\332\023\346\n\261\354\031\203\373=\375\200\3454H\370\372\374M\247\217C\330\273\310\207\356P\262I\320\251\325d\226p\227\275]\234\266\231e\221\010o\263d*\346\374\002\354\035\206\236 \305m#\251\034m\\~\030\000y\304\372\017k\252\210\231\340\376\341o\310\277\240\232Q\2629z#\271\316]\007d\327\326t\350\370v\022\241\276\325=\377O\247\325yZ\032)}\202\200\261\212\241\031c\202\222\025\332b\035\3217AIs\265\355$I\021\010\260\326F\361\361\016T\353\220=\207\305\023\310\200B\3548\026\034\257!\235jv\272KG\313w+}\265\235=\261\372\331g\221\t\177\262\303\356\365\307%\275\374\240\242\223\027\371\323\207\337\267\236\332\267\235\237\020]\267\312\207\313\305\312\030\255G\006\271\342\256\024\334\202\346j\033\356\306\227\357MM_\233\307[P\214\267$Z\352\004\016\021\330\003\016}\207\245k\265\235=\315u\002{\255V\353\027D\340!\360f\263\254Wb\177\207\274\215R\246<_\031\250$\335\231\327\356k\262\234:\0351'\354\314 \274\277\253\034\256p:\352=u:\334P\304J\332g\330\343\324\237%\300=7\214\333\314\227\006JI\350m\267;=\317\014\027\211v\312M}t?\256\324\211\270\016\023\017\001|\237+?\255\304j;{\0324\345\014sf\177\232\001\367(&\376e\216\377\215C\"\266\306 \322\233r\274~\0341,dG\235s\245\247e~\247z\317\256;\245\231\027\377\033G\246J\335\345C\345\271Jk\345\251;\367\233\373\333\273\277u\333U{\304\336p\322\245\253p\257g\334Y\250\310\233\277CL\256\034\255tUR\356\014\344\214Dw\321]\204\333\203\234\363n~\323\335\374\003\026\360/X\000\212D\3133*\236\265LR1\331\222\244\"\331\362\216\212w-\277S\361{K\212\212TK\206\212L\213B\205\322\262N\305z\313\306_\267\243\213\024an1[H\227\257\222%\314\376\371;>D\276Zt\306\220\227>\256D\231\r\275e\357,\\\217\025WQ]u\035\224m4\307\211\300\270\177\277\227T\274l\231\246b\332\277\346\002\025\013\376\375\322\rW!\037\030w\336\224^ tH\265\235=\314y\222\373\244Hp\331iv[{\335\336\033@\377\022\177\022do\201<]\250\277To\277\240wf\376`Mi\026K\354j,\364\315\231\354\241\230\245]\367Y\300\353`\327""\355\330~\311\363\256\027<\311\356`\260\261\376\330}\331\313\212P\005\262\262\327\035Tk\255\275\364\314\361O\347h\351\347\362\n\343\354)\3431\241dD%\334\356\013{\303j\2139!\367\346xy\212\336\232Z\201X~\260\320\003*\r\013\351\314\r;_\212\037\260\314=5\300\323\247\206u\210|\356\255\211r\336M\316\037t\340=\217m\365\205\374\271)_>\350@\240\026\376\264Q_F\221-_\232\252\364\035\264\354\201\271\311\320g}\031\361\361\217R\276\302Os\233\260\210`M\3337};\306\341w+\tt\202?\333\022gN!\020\207\221\234!Y\243}\330\274\206\247_\324omK\310\324f\r\325<\305\260\304)k\314\342\243\265V\026\226\333\267\373<\330\0306\236\231\023\330j\204\221\305^\304\356\260U,)\343\377y\350\240\207\334.\226\2070D\367\304\220\370\2731A\202\223\000@s\010Sq\300\222\237\354X\303\n\376\312}\211\261\311_G\031\200\204\374r\311|\305\304\305\336f[y\222\317\320'\224\221\222\206N\357\225\207/\342\014\255^\273\376\275\2238\363\t`.Jz\312`\211\377\026\032\265B\3362b3q\212\270G8\260a\005\240H?\303]\335%\346\034\030.\".\026\267\307\350_3\307\334c\220#\301\320/&c\377\026(c\002\210\273]\021J\002\036\224\230\256llK\325\340\211\236\216\356`\300\321\014^22\346L\360\232\213\275\314\270\377\242\035\3737\211~\304\312";
    PyObject *data = __Pyx_DecompressString(cstring, 6702, 1);
    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
    const char* const bytes = __Pyx_PyBytes_AsString(data);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
    #endif
    #else /* compression: none (15064 bytes) */
const char* const bytes = "<Could not find variable at start of %s.(Could not get exception message)Could not parse some characters: Could not parse the remainder: '. Did you forget to register or load this tag?'. Did you forget to register or load this tag?Empty block tag on line %dEmpty variable tag on line %dException while resolving variable '%s' in template '%s'.Failed lookup for key [%s] in %rInvalid block tag on line Invalid character ('Invalid filter: '%s''. Looking for one of: NoneNote that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.\n^(?P<constant>%(constant)s)|\n^(?P<var>[%(var_chars)s]+)|\n (?:\\s*%(filter_sep)s\\s*\n     (?P<filter_name>\\w+)\n         (?:%(arg_sep)s\n             (?:\n              (?P<constant_arg>%(constant)s)|\n              (?P<var_arg>[%(var_chars)s]+)\n             )\n         )?\n )PartialTemplate.source is only available when template debugging is enabled.Template: Unclosed tag on line <Variable Node: %s>Variable must be a string or number, got %sVariables and attributes may not begin with underscores: '%s'_(\"_(') {% : '|'_(>%%%: :{%%}{{}}{##}.{}({%.*?%}|{{.*?}}|{#.*?#})\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'?./../\n...\">, add_note arguments, context must be a Context or dict, got %sdisabledjango.templatedjango_templates_cythonized/base.pydjango_templates_cythonized.contextdjango_templates_cythonized.enginedjango_templates_cythonized.exceptionsdjango_templates_cythonized.loader_tagsdjango_templates_cythonized.safestringenableend%s', expected ' from 'gc\n(?:%(i18n_open)s%(strdq)s%(i18n_close)s|\n%(i18n_open)s%(strsq)s%(i18n_close)s|\n%(strdq)s|\n%(strsq)s)\n') in variable name: 'isenabled %} must be the first tag in  name= provided requires '%s'%s<stringsource> template_string=\"the template token: \" tokens=<unknown source>...\", verbatim=verbatim \\w\\.\\+-(?:(\\w+)=)?(.+)BLOCKBLOCK_TAG_ENDBLOCK_TAG_STA""RTBaseContextCFilterInfoCFilterInfo.__reduce_cython__CFilterInfo.__setstate_cython__COMMENTCOMMENT_TAG_ENDCOMMENT_TAG_STARTContextDebugLexerDebugLexer._tag_re_splitDebugLexer._tag_re_split_positionsDebugLexer.tokenizeEngineFFILTER_CAPFIRSTFFILTER_LOWERFFILTER_NONEFFILTER_STRINGFORMAT_SFFILTER_UPPERFILTER_ARGUMENT_SEPARATORFILTER_SEPARATORFilterExpressionFilterExpression.__reduce_cython__FilterExpression.__setstate_cython__FilterExpression.args_checkFilterExpression.resolveIncludeNodeLexerLexer.__init__Lexer.__repr__Lexer.create_tokenLexer.tokenizeNodeNodeListNodeList.__reduce_cython__NodeList.__setstate_cython__NodeList.appendNodeList.get_nodes_by_typeNodeList.renderNode.__reduce_cython__Node.__setstate_cython__Node.get_nodes_by_typeNode.renderNode.render_annotatedOriginOrigin.__eq__Origin.__init__Origin.__repr__Origin.__str__Origin.loader_nameParserParser.__init__Parser.__repr__Parser.add_libraryParser.compile_filterParser.delete_first_tokenParser.errorParser.extend_nodelistParser.find_filterParser.invalid_block_tagParser.next_tokenParser.parseParser.prepend_tokenParser.skip_pastParser.unclosed_block_tagPartialTemplatePartialTemplate.__reduce_cython__PartialTemplate.__setstate_cython__PartialTemplate._renderPartialTemplate.find_partial_sourcePartialTemplate.get_exception_infoPartialTemplate.render__Pyx_PyDict_NextRef_RESOLVE_FALLBACKSINGLE_BRACE_ENDSINGLE_BRACE_STARTSafeDataSafeStringTEXTTemplateDoesNotExistTemplateSyntaxErrorTemplateTemplate.__reduce_cython__Template.__setstate_cython__Template._renderTemplate.compile_nodelistTemplate.get_exception_infoTemplate.renderTextNodeTextNode.__reduce_cython__TextNode.__setstate_cython__TextNode.renderTextNode.render_annotatedTokenTokenTypeToken.__init__Token.__repr__Token.split_contentsUNKNOWN_SOURCEVARVARIABLE_ATTRIBUTE_SEPARATORVARIABLE_TAG_ENDVARIABLE_TAG_STARTVERBOSEVariableVariableDoesNotExistVariableDoesNotExist.__init__VariableDoesNotExist.__str__VariableNodeVariableNode.__reduce_cython__VariableNode.__setstate_cyt""hon__VariableNode.renderVariable.__reduce_cython__Variable.__setstate_cython__Variable.resolve_addadd_libraryafteralenalters_dataandappendarg_separgsargs_checkasasyncio.coroutinesattrautoescapebeforebindbind_templatebitbitsbottombuiltinbuiltinscapitalizechangedchild_nlchild_nodelists__class____class_getitem__cline_in_tracebackclosecommandcommand_stackcompilecompile_filtercompile_funccompile_nodelistcompiled_result_condconditions_nodelistsconstantconstant_argconstant_stringcontains_nontextcontentcontentscontextcontext_linescountcreate_token_culprit_node_cython_fast_codeddatetime_datetime_typedebugdefaultsdelete_first_token__dict___dictdictsdiscarddjango_file_prefixesdjango.template.basedjango_templates_cythonized.basedjango.utils.deprecationdjango.utils.inspectdjango.utils.regex_helperdjango.utils.textdjango.utils.translationdlendo_not_call_in_templates__doc__duringeendendswithendtagengine__enter__enumerate__eq__errorescapeexc_infoexceptionexceptions__exit__expects_localtimeextend_nodelistextra_contextextra_datafefilter_expressionfilter_namefilter_raw_stringfilter_refilter_sepfiltersfindfind_filterfind_partial_sourcefinditerflatten_flatten_includes_flatten_includes.<locals>.genexprflattened_herefull_sourcefunc__func__genexprgetLoggerget_defaultget_exception_infoget_languageget_nodes_by_typeget_templateget_text_listgetfullargspec__getitem____getstate__gettext_lazygroupshtmlii18n_closei18n_openignore_failuresin_tagincincluded_nodesincluded_tpl__init__initialinspectinvalid_block_tag_is_coroutineis_safeis_varisolated_contextitemskeykwarg_formatkwarg_rekwargslastlazy_annotations_lazy_re_compileliblibrarieslinelinebreak_iterlinenoloaderloader_nameloader_tagsloggerlogginglower__main__mark_safematchmessage__metaclass____module____mro_entries__msgmust_be_firstnn_includedname__name__needs_autoescape__new__nextnext_tokennodenodelist_nodesnodesnodetypenumobjectororiginotherpparamsparseparse_untilparser_partspgettext_lazyplenpopposition__prepare__prepend_token_processors_indexpro""pertyprovided__pyx_capi____pyx_checksum__pyx_result__pyx_state__pyx_type__pyx_unpickle_CFilterInfo__pyx_unpickle_FilterExpression__pyx_unpickle_Node__pyx_unpickle_NodeList__pyx_unpickle_PartialTemplate__pyx_unpickle_Template__pyx_unpickle_TextNode__pyx_unpickle_Variable__pyx_unpickle_VariableNode__pyx_vtable____qualname__raw_error_messagere__reduce____reduce_cython____reduce_ex___renderrenderrender_annotatedrender_contextrender_value_in_contextreplace__repr__resolveresultreversedssafestringseenselfsendsentinel__set_name__setdefault__setstate____setstate_cython__signaturesilent_variable_failureskip_file_prefixesskip_pastsmart_splitsourcesource_endsource_linessource_startspansplitsplit_contentsstartstartswithstatestaticmethod_stdlib_html__str__strdqstring_if_invalidstripstrsqsupport_legacytag_re_tag_re_split_tag_re_split_positionstagstemplatetemplate_builtinstemplate_debugtemplate_librariestemplate_nametemplate_sourcetemplate_string__test__throwtokentoken_kwargstoken_nametoken_starttoken_stringtoken_typetokenizetokenstoptotaltpl_nametrans_bitunclosed_block_tagunescape_string_literalunknownunwrapupdateupperuptouse_setstatevaluevaluesvarvar_argvar_charsvar_nodeverbatimwarnwarningsPyObject *(PyObject *)\000\000PyObject *(PyObject *, struct __pyx_obj_27django_templates_cythonized_7context_Context *, int __pyx_skip_dispatch)\000PyObject *(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *, PyObject *, struct __pyx_obj_27django_templates_cythonized_7context_Context *)\000PyObject *(struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *, struct __pyx_obj_27django_templates_cythonized_7context_Context *)\000\000int (struct __pyx_obj_27django_templates_cythonized_4base_FilterExpression *, PyObject *)\000_fast_escape\000_fast_escape_raw\000render_value_in_context\000_render_var_with_value\000_render_var_fast\000_resolve_fe_raw\000_fe_is_direct_loopvarPyObject *(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_27django_templates_cy""thonized_7formats_localize *__pyx_optional_args)\000int (PyObject *)\000localize\000_float_is_str_fastPyObject *(PyObject *, int __pyx_skip_dispatch)\000conditional_escapePyObject *(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_27django_templates_cythonized_8timezone_template_localtime *__pyx_optional_args)\000template_localtime\320\0040\260\001\330\010\013\2101\330\014\022\220$\220f\230A\330\020\021\330\020\021\360\006\000\025\032\230\021\330\024\025\330\024!\240\021\240!\2407\250\"\250B\250d\260%\260~\300Q\360\006\000\t\017\210d\220&\230\001\330\014\r\330\014\r\330#(\250\t\260\021\320\004\035\320\0351\260\021\330\010\014\210H\220A\330\010\014\320\014\035\230Q\330\010\014\210J\220a\200\001\330\004\"\240!\2406\250\021\200\001\330\004*\250!\2506\260\021\200A\200A\360J\001\000\t\020\210v\220U\230!\330\010\030\230\001\330\010\017\210q\330\010\017\210q\330\010\027\220q\330\010\021\220\031\230(\240!\330\010\014\210E\220\030\230\031\240!\240>\260\021\260$\260a\330\014\017\210v\220S\230\005\230T\240\024\240S\250\001\330\020\027\220q\330\020\031\230\024\230W\240A\240U\250!\330\020\031\230\024\230W\240A\240V\2501\330\020\030\230\004\230G\2401\240D\250\001\330\014\030\230\007\230r\240\025\240d\250'\260\021\260%\260q\330\014\023\2201\330\010\020\220\003\2201\220A\340\010\021\220\021\220#\220U\230\"\230A\330\010\024\220A\220W\230E\240\022\2402\240R\240q\360\010\000\t\n\330\014\026\220c\230\021\230)\2405\250\001\250\021\330\020\034\230A\330\014\026\220a\340\010\t\330\014\027\220q\330\014\034\230L\250\001\250\024\250Q\330\014\026\220a\330\014\026\220a\330\014\025\220Q\330\014\023\2201\330\014\026\220a\330\014\025\220Q\330\014\024\220A\330\014\024\220D\230\007\230q\330\014\025\220Q\330\014\023\2201\200A\360\014\000\t\014\2101\360\014\000\r\033\230,\240a\240r\250\021\330\014\017\210|\2303\230a\330\020\032\230,\240a\240s\250\"\250F\260!\330\020\023\2204\220q\340\024\027\220x\230s\240$\240a\330\030\037\230u\240A\240Y\250g\260^\300:\310Q\340\024\030\230\014\240A\330\025""\034\230B\230c\240\024\240\\\260\021\340\024\030\230\014\240H\250B\250a\330\020\027\220u\230A\230Y\240h\250i\260z\300\021\330\014\017\210t\2204\220q\330\020\032\230,\240a\240s\250\"\250F\260!\330\020\023\220<\230s\240!\330\024\033\2305\240\001\240\031\250&\260\t\270\032\3001\340\020\027\220|\2403\240a\330\020\027\220u\230A\230Y\240j\260\t\270\032\3001\330\010\017\210u\220A\220Y\230g\240^\260:\270Q\200A\330\036\037\200A\340\010\013\2104\210\177\230d\240(\250!\330\014\017\210t\2207\230!\330\020\031\230\024\230Q\230d\240'\250\021\340\020\031\230\021\330\014\022\220$\220f\230A\330\020\021\330\020=\270U\300+\310Q\340\010\013\2104\210z\230\021\230&\240\001\330\014\024\320\024(\250\001\360\006\000\t\r\210I\220Q\330\010\014\210J\220d\230!\330\010\020\220\007\220q\230\001\200A\340\010\013\2104\210q\330\014\023\2201\330\020\024\220G\2301\330\020\024\220G\230:\240Q\200A\330\010\020\220\001\330\010\017\210{\230!\2304\230q\330\010\014\210G\2201\340\014\017\210s\220+\230R\230w\240a\330\020\033\2303\230a\230s\240\"\240A\330\020\034\230A\230Q\330\020\026\220d\230#\230Y\240a\240q\330\024\032\230$\230a\230q\330\024\035\230W\240A\240Q\330\020\026\220c\230\025\230a\230q\330\014\021\220\027\230\001\230\021\330\010\017\210q\200A\330\010\021\220\030\230\024\230^\2504\250q\330\010\016\320\016G\300q\330\014\021\220\021\330\014\r\330\014\020\220\005\220Q\220a\340\010\016\210d\220&\230\001\230\027\240\001\200A\340\010\023\2204\220q\230\001\340\010\017\210s\220!\220:\230R\230q\340\010\017\210w\220g\230Q\230a\340\r\035\230Q\330\014\022\220#\220S\230\n\240#\240S\250\004\250G\260?\300!\3001\330\010\017\210s\220!\2201\330\010\017\210s\220!\2209\230C\230q\340\010\013\2105\220\003\2205\230\002\230&\240\003\2405\250\002\250!\330\014\022\320\022%\240Q\320&Q\320QW\320W\\\320\\^\320^d\320de\340\010\017\210q\200A\360\020\000\t\014\2104\210w\220a\330\014\024\220J\230a\230t\2401\340\014\024\220E\230\021\230$\230a\340\010\021\220\025\220i\230q\330\010\021\220\026\220q\330\014\r\330\014\020\220\007\220q\330""\014\020\220\007\220q\330\014\020\220\001\360\006\000\t\n\330\014\027\220v\230V\2401\330\014\020\220\016\230f\240A\330\014\017\210t\2204\220w\230a\330\020!\240\021\240*\250D\260\014\270A\330\014\023\2201\330\010\017\210}\230A\330\014\017\210t\2207\230!\330\020\021\320\021#\2404\320':\270!\2703\270a\270q\330\014\017\210z\230\021\230#\320\0352\260$\260d\270'\300\026\300s\310/\320Y]\320]^\320^_\330\020\036\230a\230u\240A\240Q\330\020\021\320\021&\240a\330\020\021\220\031\230,\240a\240t\2507\260(\270!\320;K\3101\310E\320QR\320RS\330\014\r\200A\330()\360\016\000\t\n\330\014\023\2204\220w\230a\230q\330\010\017\210}\230A\330\014\017\210w\220i\230w\240a\340\020\023\2204\220w\230a\230s\240!\330\024\025\320\025&\240a\330\020\021\330\024\030\230\007\230q\240\003\2401\330\024\030\230\007\230\177\250i\260x\270s\300!\300>\320QR\340\024\025\320\025'\240w\250o\270Y\320FY\320YZ\330\030\031\330\030\031\230\036\240q\340\014\r\200A\340\010\023\2204\220w\230g\240]\260!\2604\260w\270a\330\010\017\210x\320\027*\250!\250;\260a\200A\360\006\000\t\014\2104\210y\230\007\230q\340\014\024\220D\320\030(\250\001\250\021\360\006\000\r\025\220D\230\001\330\010\013\2104\210q\330\014\026\220j\240\001\240\027\250\001\330\014\024\220E\230\030\240\021\240%\240q\330\014\024\220I\230Q\230j\250\r\260Q\330\014\017\210t\2201\330\020\027\220}\240A\240T\320);\2701\340\020\027\220|\2401\240A\330\010\017\210q\200A\360\006\000\t\014\2104\210z\230\021\230)\2401\340\014\017\210w\220a\220y\240\001\330\020\032\230'\240\021\240'\250\030\260\021\330\021\033\2301\230I\240Q\330\020\032\230'\240\021\240!\340\020\026\220i\230q\320 L\310B\310d\320RS\320S[\320[\\\340\010\r\210W\220A\330\010\026\220b\230\001\330\010\n\210,\220a\330\010\n\210&\220\007\220q\230\001\330\010\t\330\014\017\210w\220j\240\003\2401\330\020\027\320\027(\250\004\250A\360\006\000\021\024\2207\230!\2309\240A\330\031 \240\016\250a\250q\330\030\037\230t\2408\2501\250A\340\024\033\230<\240q\330\024\025\330\030\037\230t\2408\2501\250A\340\030\037\230|\2501""\340\020\027\220t\2308\2401\240A\340\014\016\210l\230!\330\014\016\210f\220D\230\001\200A\330\010\017\320\017#\2404\240z\260\037\300\004\300A\200A\360\016\000\t\014\2104\210z\230\021\230#\230Q\330\014\020\320\020#\2401\240A\330\010\013\2104\210w\220a\220s\230!\330\014\r\210Y\220a\330\010\017\210q\200A\330\0378\270\001\330\010\013\2104\210q\330\014\r\330\020\026\220d\230$\230h\240a\240q\330\023\024\330\020\023\2201\330\024\032\230!\340\024(\250\007\250y\270\007\270q\330\024\027\220q\330\030\033\2305\240\003\2401\330\034#\320#5\260R\260t\2701\340\034#\2401\340\030\036\230a\340\014\022\220$\220a\340\010\014\210F\220$\220a\330\014\027\220q\330\014\020\220\010\230\007\230r\240\021\330\020\023\2204\220q\330\024\034\230G\2401\240I\250Q\250a\340\024\034\230G\2401\240C\240x\250q\260\001\330\014\017\210r\220\021\330\020\026\320\026(\250\001\250\025\250g\260Q\330\014\017\210r\220\021\330\020\032\230\"\230E\240\021\240%\240{\260'\270\036\300q\340\020\032\230\"\230E\240\021\240&\250\001\330\014\017\210r\220\031\230$\230j\250\001\250\025\250a\330\020\026\220i\230q\240\001\340\020\026\220a\330\010\017\210q\200A\330\010\014\210D\220\007\220r\230\021\200A\330\010\014\210E\220\027\230\001\230\023\230A\330\010\014\210H\220G\2301\230C\230q\200A\360\010\000\t\022\220\021\330\010\021\220\021\330\010\021\220\021\330\010\014\320\014\034\230F\240&\250\001\250\024\250Q\330\014\017\210q\330\020\026\220g\230Q\230d\240-\250q\260\016\270f\300H\310A\330\020\032\230,\240f\250A\250Q\330\014\025\220T\230\021\330\010\017\210q\320\004\034\230A\330\010\014\210G\2201\330\010\014\210J\220a\200A\330\010\014\210G\2207\230!\2301\200A\360\006\000\t\021\220\001\330\010\014\210H\220D\230\001\330\014\021\220\027\230\001\230\024\320\035/\250q\260\001\330\010\017\210q\320\004-\250_\270A\360&\000\t\r\210N\230!\330\010\014\210L\230\001\330\010\014\210J\220a\330\010\014\210L\230\001\200A\360\020\000\t\022\220\021\330\010\021\220\021\330\010\021\220\021\330\010\014\210N\230,\240d\250.\270\001\330\014\017\210q\330""\020\026\220g\230Q\230d\240-\250q\260\016\270j\310\010\320PQ\330\020\032\230,\240f\250A\250Q\330\014\025\220T\230\021\330\010\017\210q\200A\360\014\000\t\021\220\001\330\010\013\210:\220Q\220f\230A\330\014\021\220\027\230\001\230\021\330\010\014\210H\220D\230\001\330\014\027\220w\230a\230v\240V\2501\330\014\017\210q\330\020\025\220W\230A\230X\320%7\260q\270\001\330\010\017\210q\200A\330\036\037\330\010\t\330\014\025\220T\320\031+\2508\2601\260A\330\017\020\360\010\000\r\024\2201\330\010\017\320\017&\240a\240x\250q\200A\330\010\025\220T\230\033\240E\250\033\260A\330\010\017\210q\330\014\r\330\014\020\220\t\230\022\2303\230h\240a\240v\250Q\200A\330\036\037\340\010\r\210W\220A\330\010\026\220b\230\001\330\010\n\210,\220a\330\010\n\210&\220\007\220q\230\001\330\010\t\330\014\017\210w\220j\240\003\2401\330\020\027\320\027(\250\004\250A\330\020\023\2207\230!\2309\240A\330\031 \240\016\250a\250q\330\030\037\230t\2408\2501\250A\340\024\033\230<\240q\330\024\025\330\030\037\230t\2408\2501\250A\340\030\037\230|\2501\340\020\027\220t\2308\2401\240A\340\014\016\210l\230!\330\014\016\210f\220D\230\001\200A\330\010\017\320\017!\240\024\240Z\250\177\270d\300!\200A\330\010\016\210d\220!\330\014\024\220D\230\013\2401\330\014\017\210u\220L\240\003\2409\250G\2604\260u\270J\300c\310\021\330\020\021\330\010\014\320\014\037\230q\240\001\240\021\200A\340\036\037\330\010\026\220d\230!\330\010\037\230s\240!\2401\340\010\017\210w\220a\330\010\035\230U\240'\250\025\250d\260$\260g\270Q\340\010\013\2104\210v\220T\230\024\230T\240\021\340\014\017\210r\220\023\220A\330\020\027\220z\240\021\240%\240q\250\002\250!\330\014\032\230!\2306\240\022\2401\330\014\020\220\005\220U\230!\2301\330\020\"\240%\240q\250\001\330\020\025\220Q\220e\2305\240\001\330\014\023\220:\230Q\230b\240\005\240Q\240a\340\010\013\2104\210q\340\014\017\210r\220\023\220A\330\020\027\220u\230A\230Q\330\020\023\220:\230Q\230f\240A\330\024&\240a\330\024\033\230:\240Q\240e\2501\330\025\037\230q\240\006\240a\330\024*\250!\330\024\035""\320\035-\250Q\250e\3203G\300q\330\024\027\220w\230g\240Q\330\030\033\230:\240Q\240h\250a\330\034#\2401\330\030\037\230z\250\021\250!\330\024\035\230T\240\027\250\001\250\021\330\024\027\220z\240\021\240(\250!\330\030\037\230q\330\024\033\230:\240Q\240a\340\024\035\230T\240\027\250\001\250\021\330\024\027\220z\240\021\240(\250!\330\030\037\230q\330\024\033\230:\240Q\240a\360\006\000\r\025\220A\220V\2302\230Q\330\014\020\220\005\220U\230!\2301\330\020\027\220u\230A\230Q\330\020\023\220:\230Q\230f\240A\330\024\034\230A\330\024\031\230\021\230%\230u\240A\330\025\037\230q\240\006\240a\330\024\034\230A\330\024\035\320\035-\250Q\250e\3203G\300q\330\024\027\220w\230g\240Q\330\030\035\230Q\230e\2401\340\030\035\230Q\230e\2404\240w\250a\250q\340\024\031\230\021\230%\230t\2407\250!\2501\340\014\024\220A\220V\2302\230Q\330\014\020\220\005\220U\230!\2301\330\020\027\220u\230A\230Q\330\020\025\220Q\220e\2304\320\0370\260\001\260\021\330\010\017\210z\230\021\230\"\230E\240\021\240!\200A\330\010\014\320\014\037\230q\330\010\014\210L\230\001\200A\330\010\017\210q\330\014\020\220\n\230!\330\014\020\320\020 \240\002\240#\240X\250Q\250f\260A\330\014\020\220\001\200A\360\010\000\t\020\320\017\037\230q\240\007\240q\320\004\024\220A\360\022\000\t\014\210<\220s\230!\330\014\032\230!\330\010\023\2208\2301\330\010\016\210d\220!\330\014\024\220D\230\013\2401\360\006\000\r\032\230\025\230k\250\021\330\014\017\210{\230#\230Q\330\020\024\320\024$\240A\240Z\250x\260q\270\005\270\\\310\021\330\021\034\230C\230q\330\020\023\2204\220u\230A\330\024\032\230$\230f\240A\240W\320,L\310B\310e\320ST\330\020\021\330\024(\250\004\250O\2701\270E\300\021\330\020\027\320\027.\250a\330\024\032\230$\230f\240A\240W\250A\330\020\033\230<\240q\250\001\330\020\024\320\024$\240A\240Z\250z\270\021\330\021\034\230C\230q\330\020\031\230\025\230i\240v\250Q\330\020\023\2204\220q\330\024\032\230$\230f\240A\240W\320,I\310\022\3105\320PQ\330\020\032\230&\240\001\240\021\330\020\023\2208\2303\230a\360\010\000\025\031\230\016""\240a\240q\330\024\033\2301\360\010\000\021\025\220N\240'\250\022\2509\260A\360\006\000\021\022\330\024#\2404\240u\250A\250Q\330\027\030\330\024\030\320\030*\250!\2507\260)\2701\360\006\000\021\022\330\024&\240l\260!\2606\270\021\330\020\027\220}\240A\330\024\032\230$\230f\240A\240W\250A\330\020\024\320\024$\240A\240Z\320/@\300\001\340\020\024\220N\240$\240a\330\010\013\2101\330\014\020\320\020#\2401\240A\330\010\017\210q\200A\330\010\013\210<\220s\230$\230a\330\014\023\2204\220x\230q\240\001\340\014\022\320\022%\240Q\320&=\270R\270q\200A\330\010\017\210t\2201\200A\330\036\037\330\010\017\210t\2201\200A\330()\360\016\000\t\020\210t\2201\200A\330\010\017\210t\2205\230\002\230$\230a\200A\330\010\017\210t\2207\230$\230a\200A\330\037 \330\010\017\210t\2209\230G\2401\240A\200A\340\010\t\330\014\020\220\017\230w\240a\330\014\020\220\004\220M\240\027\250\001\330\014\020\220\002\220#\220T\320\031+\2504\320/?\270s\300!\3001\340\014\023\220;\230a\230t\320#4\260D\270\001\340\010\017\210q\200A\330\010\017\210z\230\021\230'\240\030\250\024\250T\260\026\260s\270%\270v\300T\310\024\310X\320UX\320X]\320]^\200\001\360 \000\005\013\320\n\035\230Q\340\004\022\220(\230!\330\004\033\2301\330\004\033\2301\360\006\000\005\036\230Q\330\004\n\210\"\210B\210c\220\021\220!\330\010\017\210u\220A\220Q\330\010\013\210:\220Q\220f\230A\330\014\037\230q\330\014\021\220\023\220A\340\014\r\330\020\024\220C\220q\330\020\024\220D\230\003\2301\330\020\024\220D\230\002\230!\330\020\024\220J\230a\230r\240\026\240q\330\020\024\220D\230\002\230!\340\020\033\2302\230Q\330\020\023\2204\220x\230{\250\"\250F\260(\270$\270i\300w\310e\320SW\320W`\320`g\320gh\330\024\025\330\030'\240v\250]\270!\2701\340\030\033\2307\240!\240>\260\021\330\034+\250<\260q\330\030/\250|\2709\300A\340\030\034\230D\240\001\240\021\330\030&\240d\250!\2501\340\030)\250\021\250,\260k\300\030\310\021\340\030%\240S\250\001\250\021\330\030\035\230Q\230d\240\"\240B\240e\2501\330\030\034\230H\240A\240Q\330\030\"\240!\330\030\035\230Q\330\030""\031\330\0342\260!\360\006\000\t\014\2107\220!\2206\230\021\330\014\020\220\010\230\004\230A\330\020\033\2307\240!\2406\250\026\250q\330\020\023\2209\230G\2405\250\004\250G\2601\260J\270a\330\024%\240Q\240j\260\010\270\001\340\010\013\2107\220!\2206\230\021\330\014\020\220\007\220|\2404\240q\330\020\023\2209\230G\2405\250\004\250G\2601\260J\270a\330\024%\240Q\240j\260\010\270\001\330\010\r\210Q\330\004\007\200q\340\010\020\320\020'\240q\250\001\200\001\330\004-\250Q\250f\260A\200\001\360\010\000\005\016\210T\220\027\230\004\320\0340\260\004\260G\2704\270z\310\024\310Q\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2306\240\027\250\005\250S\260\004\260F\270'\300\021\330\004\007\200q\330\010\017\320\017,\250D\260\001\260\027\270\013\3007\310!\340\010\017\320\017,\250D\260\001\260\027\270\013\3001\200\001\360\010\000\005\016\210T\220\032\2304\230z\250\024\320-?\270t\300<\310t\320ST\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260y\300\007\300u\310C\310t\320Sd\320dk\320kp\320ps\320sw\320w|\360\000\000}\001D\002\360\000\000D\002E\002\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\037\240\004\240J\250d\260)\2704\270x\300t\3101\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2309\240G\2505\260\003\2604\260w\270g\300U\310#\310T\320QV\320V]\320]^\330\004\007\200q\330\010\017\320\0171\260\024\260Q\260g\270[\310\007\310q\340\010\017\320\0171\260\024\260Q\260g\270[\310\001\200\001\360\010\000\005\016\210T\320\021%\240T\250\031\260$\260a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\320\033.\250g\260U\270#\270T\300""\030\310\027\320PU\320UX\320X\\\320\\c\320cj\320jk\330\004\007\200q\330\010\017\320\017-\250T\260\021\260'\270\033\300G\3101\340\010\017\320\017-\250T\260\021\260'\270\033\300A\200\001\360\010\000\005\016\210T\220\031\230$\230a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250!\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\031\230$\230a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260g\270W\300A\330\004\007\200q\330\010\017\320\017%\240T\250\021\250'\260\033\270G\3001\340\010\017\320\017%\240T\250\021\250'\260\033\270A\200\001\360\010\000\005\016\210T\220\031\230$\230d\240$\240a\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260c\270\027\300\005\300S\310\004\310G\320SZ\320Z[\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\031\230$\230m\2504\250w\260d\270+\300T\310\031\320RV\320VW\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\2308\2407\250%\250s\260$\260l\300'\310\025\310c\320QU\320U[\320[b\320bg\320gj\320jn\320nx\320x\177\360\000\000@\002E\002\360\000\000E\002H\002\360\000\000H\002L\002\360\000\000L\002T\002\360\000\000T\002[\002\360\000\000[\002`\002\360\000\000`\002c\002\360\000\000c\002g\002\360\000\000g\002o\002\360\000\000o\002v\002\360\000\000v\002w\002\330\004\007\200q\330\010\017\320\017)\250\024\250Q\250g\260[\300\007\300q\340\010\017\320\017)\250\024\250Q\250g\260[\300\001\200\001\360\010\000\005\016\210T\220\036\230t\320#3\2604\260w\270d\300+\310T""\320QR\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230=\250\007\250u\260C\260t\270?\310'\320QV\320VY\320Y]\320]c\320cj\320jo\320or\320rv\360\000\000w\001A\002\360\000\000A\002H\002\360\000\000H\002M\002\360\000\000M\002P\002\360\000\000P\002T\002\360\000\000T\002\\\002\360\000\000\\\002c\002\360\000\000c\002d\002\330\004\007\200q\330\010\017\320\0170\260\004\260A\260W\270K\300w\310a\340\010\017\320\0170\260\004\260A\260W\270K\300q\250\001\200\001\200\001\330\004)\250\021\250&\260\001\320\004\037\320\037/\250\177\270a\360\006\000\t\r\210J\220d\230!\2308\2401\240A\330\010\014\210H\220A\330\010\014\210K\220q\330\010\014\320\014\035\230Q\360\014\000\t\r\210N\230!\340\010\013\210:\220S\230\001\330\014\030\230\001\330\010\013\2109\220C\220q\330\014\027\220q\340\010\014\210M\230\021\330\010\014\210K\220q\330\014\020\220\014\230A\230Q\330\010\014\210J\220a\200\001\330\004&\240a\240v\250Q\200\001\330\004.\250a\250v\260Q\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220?\240(\250!\2501\330\004\007\200|\2207\230!\330\0101\260\021\3202D\300N\320RS\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\2204\220x\230q\240\001\330\004\007\200|\2207\230!\330\010&\240a\240w\250n\270A\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\320\023#\2408\2501\250A\330\004\007\200|\2207\230!\330\0102\260!\3203F\300n\320TU\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\2208\2308\2401\240A\330\004\007\200|\2207\230!\330\010*\250!\250;\260n\300A\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220;\230h\240a\240q\330\004\007\200|\2207\230!\330\010-\250Q\250n\270N\310!\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220<\230x\240q\250\001\330\004\007\200|\2207\230!\330\010.\250a\250\177\270n\310A\330\004\013\2101\320\000""\037\230q\360 \000\005\010\200t\2101\330\010\017\210q\330\004\014\210H\220F\230!\2304\230q\240\001\330\004\023\2206\230\024\230U\240!\2401\330\004\007\200t\2101\330\010\013\2104\210q\330\014\023\2201\330\010\013\2103\210a\210v\220R\220r\230\023\230D\240\001\240\023\240C\240q\330\014\023\2201\340\004\r\210Q\330\004\n\210!\330\010\013\2101\330\014\024\220H\230F\240!\2404\240q\250\001\330\014\017\210t\2206\230\023\230D\240\005\240Q\240a\330\020\027\220q\330\014\021\220\030\230\025\230g\240Q\330\014\020\220\004\220B\220a\340\014\017\210s\220!\2206\230\022\2302\230S\240\004\240A\240S\250\003\2501\330\020\027\220q\330\014\021\220\030\230\024\230Q\230d\240$\240a\240q\330\014\020\220\004\220B\220a\330\010\016\210a\210w\220f\230O\2501\250A\330\010\013\2105\220\004\220D\230\001\330\014\017\210t\2201\220C\220s\230!\330\020\027\220q\330\014\020\220\004\220B\220a\330\004\013\2101\200\001\330,-\360\020\000\005\010\200z\220\021\220'\230\021\330\010\013\2107\220!\330\014\017\210z\230\021\230'\240\021\330\020\027\220q\330\014\023\220<\230q\240\001\330\010\017\210q\360\006\000\005\010\200z\220\021\220'\230\021\330\010\020\320\020\"\240!\240>\260\027\270\001\360\010\000\005\014\2107\220!\330\004\007\200u\210C\210q\330\010\r\320\r-\250Q\340\010\017\210|\2301\330\010\017\210y\230\001\330\004\014\210H\220A\320\025%\240W\320,<\270A\330\004\007\200w\210a\330\010\013\2104\210z\230\021\230'\240\021\330\014\024\220C\220q\230\001\330\010\013\210:\220Q\220g\230Q\330\014\023\2201\330\010\017\210|\2301\230A\340\010\017\210s\220!\2201";
    PyObject *data = NULL;
    CYTHON_UNUSED_VAR(__Pyx_DecompressString);
    #endif
    PyObject **stringtab = __pyx_mstate->__pyx_string_tab;
    Py_ssize_t pos = 0;
    for (int i = 0; i < 516; i++) {
      Py_ssize_t bytes_length = index[i].length;
      PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);
      if (likely(string) && i >= 92) PyUnicode_InternInPlace(&string);
      if (unlikely(!string)) {
        Py_XDECREF(data);
        __PYX_ERR(0, 1, __pyx_L1_error)
      }
      stringtab[i] = string;
      pos += bytes_length;
    }
    for (int i = 516; i < 594; i++) {
      Py_ssize_t bytes_length = index[i].length;
      PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length);
      stringtab[i] = string;
      pos += bytes_length;
      if (unlikely(!string)) {
        Py_XDECREF(data);
        __PYX_ERR(0, 1, __pyx_L1_error)
      }
    }
    Py_XDECREF(data);
    for (Py_ssize_t i = 0; i < 594; i++) {
      if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {
        __PYX_ERR(0, 1, __pyx_L1_error)
      }
    }
    #if CYTHON_IMMORTAL_CONSTANTS
    {
      PyObject **table = stringtab + 516;
      for (Py_ssize_t i=0; i<78; ++i) {
        #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
        #if PY_VERSION_HEX < 0x030E0000
        if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
        #else
        if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
        #endif
        {
          Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
        }
        #else
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
        #endif
      }
    }
    #endif
  }
  {
    PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 0;
    int8_t const cint_constants_1[] = {0,-1,1,-2,2,3,4,9,20};
    int32_t const cint_constants_4[] = {28149491L,90054167L,91121623L,154960213L,178447223L,200228074L,218595859L,245643908L,256349668L};
    for (int i = 0; i < 18; i++) {
      numbertab[i] = PyLong_FromLong((i < 9 ? cint_constants_1[i - 0] : cint_constants_4[i - 9]));
      if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  #if CYTHON_IMMORTAL_CONSTANTS
  {
    PyObject **table = __pyx_mstate->__pyx_number_tab;
    for (Py_ssize_t i=0; i<18; ++i) {
      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
      #if PY_VERSION_HEX < 0x030E0000
      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
      #else
      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
      #endif
      {
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
      }
      #else
      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
      #endif
    }
  }
  #endif
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: init_codeobjects ### */
typedef struct {
    unsigned int argcount : 3;
    unsigned int num_posonly_args : 1;
    unsigned int num_kwonly_args : 1;
    unsigned int nlocals : 5;
    unsigned int flags : 10;
    unsigned int first_line : 11;
} __Pyx_PyCode_New_function_description;
/* NewCodeObj.proto */
static PyObject* __Pyx_PyCode_New(
        const __Pyx_PyCode_New_function_description descr,
        PyObject * const *varnames,
        PyObject *filename,
        PyObject *funcname,
        PyObject *line_table,
        PyObject *tuple_dedup_map
);


static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) {
  PyObject* tuple_dedup_map = PyDict_New();
  if (unlikely(!tuple_dedup_map)) return -1;
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 211};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_n};
    __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_kp_b_iso88591__36, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 474};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_template_source, __pyx_mstate->__pyx_n_u_p};
    __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_linebreak_iter, __pyx_mstate->__pyx_kp_b_iso88591__37, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 593};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_last, __pyx_mstate->__pyx_n_u_match, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_end};
    __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_tag_re_split_positions, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 603};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_position};
    __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_tag_re_split, __pyx_mstate->__pyx_kp_b_iso88591_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 106};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_msg, __pyx_mstate->__pyx_n_u_params};
    __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_G1_Ja, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 110};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_t5_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 115};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_template_name, __pyx_mstate->__pyx_n_u_loader};
    __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_1_HA_Q_Ja, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 120};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 123};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_repr, __pyx_mstate->__pyx_kp_b_iso88591_A_Z_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 126};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_other};
    __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_eq, __pyx_mstate->__pyx_kp_b_iso88591_A_z_T_s_vT_XUXX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 129};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_loader_name, __pyx_mstate->__pyx_kp_b_iso88591_A_4q_1_G1_G_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 138};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nodelist, __pyx_mstate->__pyx_n_u_engine, __pyx_mstate->__pyx_n_u_seen, __pyx_mstate->__pyx_n_u_IncludeNode, __pyx_mstate->__pyx_n_u_nodes_2, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_changed, __pyx_mstate->__pyx_n_u_flattened_here, __pyx_mstate->__pyx_n_u_node, __pyx_mstate->__pyx_n_u_inc, __pyx_mstate->__pyx_n_u_fe, __pyx_mstate->__pyx_n_u_tpl_name, __pyx_mstate->__pyx_n_u_included_tpl, __pyx_mstate->__pyx_n_u_included_nodes, __pyx_mstate->__pyx_n_u_n_included, __pyx_mstate->__pyx_n_u_attr, __pyx_mstate->__pyx_n_u_child_nl, __pyx_mstate->__pyx_n_u_cond, __pyx_mstate->__pyx_n_u_genexpr, __pyx_mstate->__pyx_n_u_genexpr};
    __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_flatten_includes, __pyx_mstate->__pyx_kp_b_iso88591_Q_1_1_Q_Bc_uAQ_QfA_q_A_Cq_D_1_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 239};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render, __pyx_mstate->__pyx_kp_b_iso88591_A_t9G1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 243};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render_2, __pyx_mstate->__pyx_kp_b_iso88591_A_4z_1_way_1IQ_iq_LBdRSS_WA_b_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 279};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_compile_nodelist, __pyx_mstate->__pyx_kp_b_iso88591_A_4wa_Jat1_E_a_iq_q_q_q_vV1_fA_t, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 315};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_exception, __pyx_mstate->__pyx_n_u_token, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_end, __pyx_mstate->__pyx_n_u_context_lines, __pyx_mstate->__pyx_n_u_line, __pyx_mstate->__pyx_n_u_upto, __pyx_mstate->__pyx_n_u_source_lines, __pyx_mstate->__pyx_n_u_before, __pyx_mstate->__pyx_n_u_during, __pyx_mstate->__pyx_n_u_after, __pyx_mstate->__pyx_n_u_num, __pyx_mstate->__pyx_n_u_next, __pyx_mstate->__pyx_n_u_total, __pyx_mstate->__pyx_n_u_top, __pyx_mstate->__pyx_n_u_bottom, __pyx_mstate->__pyx_n_u_message};
    __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_get_exception_info, __pyx_mstate->__pyx_kp_b_iso88591_AJ_vU_q_q_q_E_a_vS_T_S_q_WAU_WAV, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_m4wd_T_RVVW_G1F_a_vWE_Q_q_t87, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 417};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_exception, __pyx_mstate->__pyx_n_u_token};
    __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_get_exception_info, __pyx_mstate->__pyx_kp_b_iso88591_A_4wg_4wa_x_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 422};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_full_source};
    __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_find_partial_source, __pyx_mstate->__pyx_kp_b_iso88591_A_wa_M_T_4_s_1_at_4D_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 444};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render, __pyx_mstate->__pyx_kp_b_iso88591_A_t9G1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 448};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render_2, __pyx_mstate->__pyx_kp_b_iso88591_A_WA_b_a_q_wj_1_A_7_9A_aq_t81A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t_34wd_TQR_G1F_a_vWE_Q_q_t_uC, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_QfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 484};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_token_type, __pyx_mstate->__pyx_n_u_contents, __pyx_mstate->__pyx_n_u_position, __pyx_mstate->__pyx_n_u_lineno};
    __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_N_L_Ja_L, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 508};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_token_name};
    __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_repr, __pyx_mstate->__pyx_kp_b_iso88591_A_T_E_A_q_3havQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 515};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_split, __pyx_mstate->__pyx_n_u_bits, __pyx_mstate->__pyx_n_u_bit, __pyx_mstate->__pyx_n_u_sentinel, __pyx_mstate->__pyx_n_u_trans_bit};
    __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_split_contents, __pyx_mstate->__pyx_kp_b_iso88591_A_4q_G1_s_Rwa_3as_A_AQ_d_Yaq_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 532};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_template_string};
    __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_q_L, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 536};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_repr, __pyx_mstate->__pyx_kp_b_iso88591_A_q_XQfA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 543};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_in_tag, __pyx_mstate->__pyx_n_u_lineno, __pyx_mstate->__pyx_n_u_result, __pyx_mstate->__pyx_n_u_token_string};
    __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_tokenize, __pyx_mstate->__pyx_kp_b_iso88591_A_F_Q_q_gQd_q_fHA_fAQ_T_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 557};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_token_string, __pyx_mstate->__pyx_n_u_position, __pyx_mstate->__pyx_n_u_lineno, __pyx_mstate->__pyx_n_u_in_tag, __pyx_mstate->__pyx_n_u_token_start, __pyx_mstate->__pyx_n_u_content};
    __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_create_token, __pyx_mstate->__pyx_kp_b_iso88591_A_1_ar_3a_as_F_4q_xs_a_uAYg_Q_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 607};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_in_tag, __pyx_mstate->__pyx_n_u_lineno, __pyx_mstate->__pyx_n_u_result, __pyx_mstate->__pyx_n_u_token_string, __pyx_mstate->__pyx_n_u_position};
    __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_tokenize, __pyx_mstate->__pyx_kp_b_iso88591_A_N_d_q_gQd_q_j_PQ_fAQ_T_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 627};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_tokens, __pyx_mstate->__pyx_n_u_libraries, __pyx_mstate->__pyx_n_u_builtins, __pyx_mstate->__pyx_n_u_origin, __pyx_mstate->__pyx_n_u_builtin};
    __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_a_Jd_81A_HA_Kq_Q_N_S_9Cq_q_M_Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 651};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_repr, __pyx_mstate->__pyx_kp_b_iso88591_A_4z_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 654};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_parse_until, __pyx_mstate->__pyx_n_u_nodelist, __pyx_mstate->__pyx_n_u_token, __pyx_mstate->__pyx_n_u_token_type, __pyx_mstate->__pyx_n_u_filter_expression, __pyx_mstate->__pyx_n_u_e, __pyx_mstate->__pyx_n_u_var_node, __pyx_mstate->__pyx_n_u_parts, __pyx_mstate->__pyx_n_u_command, __pyx_mstate->__pyx_n_u_compile_func, __pyx_mstate->__pyx_n_u_compiled_result};
    __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_parse, __pyx_mstate->__pyx_kp_b_iso88591_A_s_81_d_D_1_k_Q_AZxq_Cq_4uA_fA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 716};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_endtag, __pyx_mstate->__pyx_n_u_token};
    __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_skip_past, __pyx_mstate->__pyx_kp_b_iso88591_A_d_D_1_uL_9G4uJc_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 723};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_nodelist, __pyx_mstate->__pyx_n_u_node, __pyx_mstate->__pyx_n_u_token, __pyx_mstate->__pyx_n_u_origin};
    __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_extend_nodelist, __pyx_mstate->__pyx_kp_b_iso88591_A_4_d_t7_Qd_fA_U_Q_4z_IQ_Jd_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 742};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_token, __pyx_mstate->__pyx_n_u_e};
    __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_error, __pyx_mstate->__pyx_kp_b_iso88591_A_4z_Q_1A_4was_Ya_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 755};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_token, __pyx_mstate->__pyx_n_u_command, __pyx_mstate->__pyx_n_u_parse_until, __pyx_mstate->__pyx_n_u_p};
    __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_invalid_block_tag, __pyx_mstate->__pyx_kp_b_iso88591_0_1_fA_7_Bd_Q_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 773};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_parse_until, __pyx_mstate->__pyx_n_u_command, __pyx_mstate->__pyx_n_u_token, __pyx_mstate->__pyx_n_u_msg};
    __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_unclosed_block_tag, __pyx_mstate->__pyx_kp_b_iso88591_A_4q_Gq_Qa_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 782};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_next_token, __pyx_mstate->__pyx_kp_b_iso88591_A_t7_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 785};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_token};
    __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_prepend_token, __pyx_mstate->__pyx_kp_b_iso88591_A_G7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 788};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_delete_first_token, __pyx_mstate->__pyx_kp_b_iso88591_A_D_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 791};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_lib};
    __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_add_library, __pyx_mstate->__pyx_kp_b_iso88591_A_E_A_HG1Cq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 795};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_token};
    __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_compile_filter, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 801};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_filter_name};
    __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_find_filter, __pyx_mstate->__pyx_kp_b_iso88591_A_s_a_4xq_Q_Rq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_0_G4z_Q_G1F_a_vWE_Q_q_t6_S_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591__38, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 943};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context, __pyx_mstate->__pyx_n_u_ignore_failures};
    __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_resolve, __pyx_mstate->__pyx_kp_b_iso88591_A_8_4q_d_haq_1_y_q_q_5_1_5Rt1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 982};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_func, __pyx_mstate->__pyx_n_u_provided, __pyx_mstate->__pyx_n_u_plen, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u__19, __pyx_mstate->__pyx_n_u_defaults, __pyx_mstate->__pyx_n_u_alen, __pyx_mstate->__pyx_n_u_dlen};
    __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_args_check, __pyx_mstate->__pyx_kp_b_iso88591_A_4q_s_Rq_wgQa_Q_S_S_G_1_s_1_s_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_Jd_4xt1_G1F_a_vWE_Q_q_t9G5_4w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1081};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_resolve, __pyx_mstate->__pyx_kp_b_iso88591_A_4y_q_D_D_4q_j_E_q_IQj_Q_t1_AT, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_4z_t_tST_G1F_a_vWE_Q_q_t9G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1233};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render_2, __pyx_mstate->__pyx_kp_b_iso88591_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1240};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render_annotated, __pyx_mstate->__pyx_kp_b_iso88591_A_4waq_A_wiwa_4was_a_q_1_ixs_QR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1265};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_nodetype};
    __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_get_nodes_by_type, __pyx_mstate->__pyx_kp_b_iso88591_A_QfA_HD_wavV1_q_WAX_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_a_G1F_a_vWE_Q_q_t87_s_gWA_q_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1310};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_node};
    __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_append, __pyx_mstate->__pyx_kp_b_iso88591_A_G7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1313};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render_2, __pyx_mstate->__pyx_kp_b_iso88591_A_d_s_1_wa_U_d_gQ_4vT_T_r_A_z_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1379};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_nodetype};
    __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_get_nodes_by_type, __pyx_mstate->__pyx_kp_b_iso88591_A_HD_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_a_G1F_a_vWE_Q_q_t87_q_Qg_q_Qg, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1397};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render_2, __pyx_mstate->__pyx_kp_b_iso88591_A_t1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1401};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render_annotated, __pyx_mstate->__pyx_kp_b_iso88591_A_t1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_d_a_G1F_a_vWE_Q_q_t87_s_c_S_G, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_avQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1412};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render_value_in_context, __pyx_mstate->__pyx_kp_b_iso88591_z_7_z_q_q_q_z_7_uCq_Q_1_y_HA_W, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1835};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_render_2, __pyx_mstate->__pyx_kp_b_iso88591_A_T_81A_1_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_T_a_G1F_a_vWE_Q_q_t_gU_T_PUUX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_6_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1851};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_bits, __pyx_mstate->__pyx_n_u_parser, __pyx_mstate->__pyx_n_u_support_legacy, __pyx_mstate->__pyx_n_u_match, __pyx_mstate->__pyx_n_u_kwarg_format, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_value};
    __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_django_templates_cythonized_base_2, __pyx_mstate->__pyx_n_u_token_kwargs, __pyx_mstate->__pyx_kp_b_iso88591_q_t1_q_HF_4q_6_U_1_t1_4q_1_3avR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Template, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_PartialTemplate, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_1_7_1_2DNRS_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_CFilterInfo, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_haq_7_QnN_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_FilterExpression, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_81A_7_2_3FnTU_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Variable, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_Node, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_4xq_7_awnA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_NodeList, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_TextNode, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_881A_7_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_VariableNode, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_xq_7_a_nA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad;
  }
  Py_DECREF(tuple_dedup_map);
  return 0;
  bad:
  Py_DECREF(tuple_dedup_map);
  return -1;
}
/* #### Code section: init_globals ### */

static int __Pyx_InitGlobals(void) {
  /* PythonCompatibility.init */
  if (likely(__Pyx_init_co_variables() == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* AssertionsEnabled.init */
  if (likely(__Pyx_init_assertions_enabled() == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CommonTypesMetaclass.init */
  if (likely(__pyx_CommonTypesMetaclass_init(__pyx_m) == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CachedMethodType.init */
  #if CYTHON_COMPILING_IN_LIMITED_API
  {
      PyObject *typesModule=NULL;
      typesModule = PyImport_ImportModule("types");
      if (typesModule) {
          __pyx_mstate_global->__Pyx_CachedMethodType = PyObject_GetAttrString(typesModule, "MethodType");
          Py_DECREF(typesModule);
      }
  } // error handling follows
  #endif
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CythonFunctionShared.init */
  if (likely(__pyx_CyFunction_init(__pyx_m) == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* Generator.init */
  if (likely(__pyx_Generator_init(__pyx_m) == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cleanup_globals ### */
/* #### Code section: cleanup_module ### */
/* #### Code section: main_method ### */
/* #### Code section: utility_code_pragmas ### */
#ifdef _MSC_VER
#pragma warning( push )
/* Warning 4127: conditional expression is constant
 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
 * compile-time, so this warning is not useful
 */
#pragma warning( disable : 4127 )
#endif



/* #### Code section: utility_code_def ### */

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyErrExceptionMatches (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    int result;
    PyObject *exc_type;
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *current_exception = tstate->current_exception;
    if (unlikely(!current_exception)) return 0;
    exc_type = (PyObject*) Py_TYPE(current_exception);
    if (exc_type == err) return 1;
#else
    exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
#endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(exc_type);
    #endif
    if (unlikely(PyTuple_Check(err))) {
        result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    } else {
        result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
    }
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(exc_type);
    #endif
    return result;
}
#endif

/* PyErrFetchRestore (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *tmp_value;
    assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
    if (value) {
        #if CYTHON_COMPILING_IN_CPYTHON
        if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
        #endif
            PyException_SetTraceback(value, tb);
    }
    tmp_value = tstate->current_exception;
    tstate->current_exception = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
#else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#endif
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject* exc_value;
    exc_value = tstate->current_exception;
    tstate->current_exception = 0;
    *value = exc_value;
    *type = NULL;
    *tb = NULL;
    if (exc_value) {
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        #if CYTHON_COMPILING_IN_CPYTHON
        *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
        Py_XINCREF(*tb);
        #else
        *tb = PyException_GetTraceback(exc_value);
        #endif
    }
#else
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#endif
}
#endif

/* PyObjectGetAttrStr (used by PyObjectGetAttrStrNoError) */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* PyObjectGetAttrStrNoError (used by GetBuiltinName) */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
    return result;
#else
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
#endif
}

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_mstate_global->__pyx_b, name);
    if (unlikely(!result) && !PyErr_Occurred()) {
        PyErr_Format(PyExc_NameError,
            "name '%U' is not defined", name);
    }
    return result;
}

/* TupleAndListFromArray (used by fastcall) */
#if !CYTHON_COMPILING_IN_CPYTHON && CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    Py_ssize_t i;
    if (n <= 0) {
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    for (i = 0; i < n; i++) {
        if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {
            Py_DECREF(res);
            return NULL;
        }
        Py_INCREF(src[i]);
    }
    return res;
}
#elif CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
    PyObject *v;
    Py_ssize_t i;
    for (i = 0; i < length; i++) {
        v = dest[i] = src[i];
        Py_INCREF(v);
    }
}
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
    return res;
}
static CYTHON_INLINE PyObject *
__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return PyList_New(0);
    }
    res = PyList_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
    return res;
}
#endif

/* BytesEquals (used by UnicodeEquals) */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL ||\
        !(CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS)
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals (used by fastcall) */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length, length2;
        int kind;
        void *data1, *data2;
        #if !CYTHON_COMPILING_IN_LIMITED_API
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        #endif
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(length < 0)) return -1;
        #endif
        length2 = __Pyx_PyUnicode_GET_LENGTH(s2);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(length2 < 0)) return -1;
        #endif
        if (length != length2) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    return (equals == Py_EQ);
return_ne:
    return (equals == Py_NE);
#endif
}

/* fastcall */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
{
    Py_ssize_t i, n = __Pyx_PyTuple_GET_SIZE(kwnames);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (unlikely(n == -1)) return NULL;
    #endif
    for (i = 0; i < n; i++)
    {
        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!namei)) return NULL;
        #endif
        if (s == namei) return kwvalues[i];
    }
    for (i = 0; i < n; i++)
    {
        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!namei)) return NULL;
        #endif
        int eq = __Pyx_PyUnicode_Equals(s, namei, Py_EQ);
        if (unlikely(eq != 0)) {
            if (unlikely(eq < 0)) return NULL;
            return kwvalues[i];
        }
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
    Py_ssize_t i, nkwargs;
    PyObject *dict;
#if !CYTHON_ASSUME_SAFE_SIZE
    nkwargs = PyTuple_Size(kwnames);
    if (unlikely(nkwargs < 0)) return NULL;
#else
    nkwargs = PyTuple_GET_SIZE(kwnames);
#endif
    dict = PyDict_New();
    if (unlikely(!dict))
        return NULL;
    for (i=0; i<nkwargs; i++) {
#if !CYTHON_ASSUME_SAFE_MACROS
        PyObject *key = PyTuple_GetItem(kwnames, i);
        if (!key) goto bad;
#else
        PyObject *key = PyTuple_GET_ITEM(kwnames, i);
#endif
        if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
            goto bad;
    }
    return dict;
bad:
    Py_DECREF(dict);
    return NULL;
}
#endif
#endif

/* PyObjectCall (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = Py_TYPE(func)->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
    self = __Pyx_CyOrPyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectFastCall (used by PyObjectCallOneArg) */
#if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API
static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs) {
    PyObject *argstuple;
    PyObject *result = 0;
    size_t i;
    argstuple = PyTuple_New((Py_ssize_t)nargs);
    if (unlikely(!argstuple)) return NULL;
    for (i = 0; i < nargs; i++) {
        Py_INCREF(args[i]);
        if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) != (0)) goto bad;
    }
    result = __Pyx_PyObject_Call(func, argstuple, kwargs);
  bad:
    Py_DECREF(argstuple);
    return result;
}
#endif
#if CYTHON_VECTORCALL && !CYTHON_COMPILING_IN_LIMITED_API
  #if PY_VERSION_HEX < 0x03090000
    #define __Pyx_PyVectorcall_Function(callable) _PyVectorcall_Function(callable)
  #elif CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE vectorcallfunc __Pyx_PyVectorcall_Function(PyObject *callable) {
    PyTypeObject *tp = Py_TYPE(callable);
    #if defined(__Pyx_CyFunction_USED)
    if (__Pyx_CyFunction_CheckExact(callable)) {
        return __Pyx_CyFunction_func_vectorcall(callable);
    }
    #endif
    if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
        return NULL;
    }
    assert(PyCallable_Check(callable));
    Py_ssize_t offset = tp->tp_vectorcall_offset;
    assert(offset > 0);
    vectorcallfunc ptr;
    memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
    return ptr;
}
  #else
    #define __Pyx_PyVectorcall_Function(callable) PyVectorcall_Function(callable)
  #endif
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject *const *args, size_t _nargs, PyObject *kwargs) {
    Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);
#if CYTHON_COMPILING_IN_CPYTHON
    if (nargs == 0 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
            return __Pyx_PyObject_CallMethO(func, NULL);
    }
    else if (nargs == 1 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
            return __Pyx_PyObject_CallMethO(func, args[0]);
    }
#endif
    if (kwargs == NULL) {
        #if CYTHON_VECTORCALL
          #if CYTHON_COMPILING_IN_LIMITED_API
            return PyObject_Vectorcall(func, args, _nargs, NULL);
          #else
            vectorcallfunc f = __Pyx_PyVectorcall_Function(func);
            if (f) {
                return f(func, args, _nargs, NULL);
            }
          #endif
        #endif
    }
    if (nargs == 0) {
        return __Pyx_PyObject_Call(func, __pyx_mstate_global->__pyx_empty_tuple, kwargs);
    }
    #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);
    #else
    return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
    #endif
}

/* PyObjectCallOneArg (used by CallUnboundCMethod0) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *args[2] = {NULL, arg};
    return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* UnpackUnboundCMethod (used by CallUnboundCMethod0) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
    PyObject *result;
    PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
    if (unlikely(!selfless_args)) return NULL;
    result = PyObject_Call(method, selfless_args, kwargs);
    Py_DECREF(selfless_args);
    return result;
}
#elif CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) {
        return _PyObject_Vectorcall
            (method, args ? args+1 : NULL, nargs ? nargs-1 : 0, kwnames);
}
#else
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {
    return
#if PY_VERSION_HEX < 0x03090000
    _PyObject_Vectorcall
#else
    PyObject_Vectorcall
#endif
        (method, args ? args+1 : NULL, nargs ? (size_t) nargs-1 : 0, kwnames);
}
#endif
static PyMethodDef __Pyx_UnboundCMethod_Def = {
     "CythonUnboundCMethod",
     __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
     METH_VARARGS | METH_KEYWORDS,
#else
     METH_FASTCALL | METH_KEYWORDS,
#endif
     NULL
};
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method, *result=NULL;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    result = method;
#if CYTHON_COMPILING_IN_CPYTHON
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    } else
#endif
#if CYTHON_COMPILING_IN_PYPY
#else
    if (PyCFunction_Check(method))
#endif
    {
        PyObject *self;
        int self_found;
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        self = PyObject_GetAttrString(method, "__self__");
        if (!self) {
            PyErr_Clear();
        }
#else
        self = PyCFunction_GET_SELF(method);
#endif
        self_found = (self && self != Py_None);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        Py_XDECREF(self);
#endif
        if (self_found) {
            PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
            if (unlikely(!unbound_method)) return -1;
            Py_DECREF(method);
            result = unbound_method;
        }
    }
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    if (unlikely(target->method)) {
        Py_DECREF(result);
    } else
#endif
    target->method = result;
    return 0;
}

/* CallUnboundCMethod0 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        if (likely(cfunc->flag == METH_NOARGS))
            return __Pyx_CallCFunction(cfunc, self, NULL);
        if (likely(cfunc->flag == METH_FASTCALL))
            return __Pyx_CallCFunctionFast(cfunc, self, NULL, 0);
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, NULL, 0, NULL);
        if (likely(cfunc->flag == (METH_VARARGS | METH_KEYWORDS)))
            return __Pyx_CallCFunctionWithKeywords(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple, NULL);
        if (cfunc->flag == METH_VARARGS)
            return __Pyx_CallCFunction(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple);
        return __Pyx__CallUnboundCMethod0(cfunc, self);
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod0(&tmp_cfunc, self);
    }
#endif
    PyObject *result = __Pyx__CallUnboundCMethod0(cfunc, self);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *result;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
    result = __Pyx_PyObject_CallOneArg(cfunc->method, self);
    return result;
}

/* py_dict_items (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_items, d);
}

/* py_dict_values (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values, d);
}

/* OwnedDictNext (used by ParseKeywordsImpl) */
#if CYTHON_AVOID_BORROWED_REFS
static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue) {
    PyObject *next = NULL;
    if (!*ppos) {
        if (pvalue) {
            PyObject *dictview = pkey ? __Pyx_PyDict_Items(p) : __Pyx_PyDict_Values(p);
            if (unlikely(!dictview)) goto bad;
            *ppos = PyObject_GetIter(dictview);
            Py_DECREF(dictview);
        } else {
            *ppos = PyObject_GetIter(p);
        }
        if (unlikely(!*ppos)) goto bad;
    }
    next = PyIter_Next(*ppos);
    if (!next) {
        if (PyErr_Occurred()) goto bad;
        return 0;
    }
    if (pkey && pvalue) {
        *pkey = __Pyx_PySequence_ITEM(next, 0);
        if (unlikely(*pkey)) goto bad;
        *pvalue = __Pyx_PySequence_ITEM(next, 1);
        if (unlikely(*pvalue)) goto bad;
        Py_DECREF(next);
    } else if (pkey) {
        *pkey = next;
    } else {
        assert(pvalue);
        *pvalue = next;
    }
    return 1;
  bad:
    Py_XDECREF(next);
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
    PyErr_FormatUnraisable("Exception ignored in __Pyx_PyDict_NextRef");
#else
    PyErr_WriteUnraisable(__pyx_mstate_global->__pyx_n_u_Pyx_PyDict_NextRef);
#endif
    if (pkey) *pkey = NULL;
    if (pvalue) *pvalue = NULL;
    return 0;
}
#else // !CYTHON_AVOID_BORROWED_REFS
static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) {
    int result = PyDict_Next(p, ppos, pkey, pvalue);
    if (likely(result == 1)) {
        if (pkey) Py_INCREF(*pkey);
        if (pvalue) Py_INCREF(*pvalue);
    }
    return result;
}
#endif

/* RaiseDoubleKeywords (used by ParseKeywordsImpl) */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
}

/* CallUnboundCMethod2 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        PyObject *args[2] = {arg1, arg2};
        if (cfunc->flag == METH_FASTCALL) {
            return __Pyx_CallCFunctionFast(cfunc, self, args, 2);
        }
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, 2, NULL);
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod2(&tmp_cfunc, self, arg1, arg2);
    }
#endif
    PyObject *result = __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        PyObject *result = NULL;
        PyObject *args = PyTuple_New(2);
        if (unlikely(!args)) return NULL;
        Py_INCREF(arg1);
        PyTuple_SET_ITEM(args, 0, arg1);
        Py_INCREF(arg2);
        PyTuple_SET_ITEM(args, 1, arg2);
        if (cfunc->flag & METH_KEYWORDS)
            result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);
        else
            result = __Pyx_CallCFunction(cfunc, self, args);
        Py_DECREF(args);
        return result;
    }
#endif
    {
        PyObject *args[4] = {NULL, self, arg1, arg2};
        return __Pyx_PyObject_FastCall(cfunc->method, args+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
    }
}

/* ParseKeywordsImpl (used by ParseKeywords) */
static int __Pyx_ValidateDuplicatePosArgs(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    const char* function_name)
{
    PyObject ** const *name = argnames;
    while (name != first_kw_arg) {
        PyObject *key = **name;
        int found = PyDict_Contains(kwds, key);
        if (unlikely(found)) {
            if (found == 1) __Pyx_RaiseDoubleKeywordsError(function_name, key);
            goto bad;
        }
        name++;
    }
    return 0;
bad:
    return -1;
}
#if CYTHON_USE_UNICODE_INTERNALS
static CYTHON_INLINE int __Pyx_UnicodeKeywordsEqual(PyObject *s1, PyObject *s2) {
    int kind;
    Py_ssize_t len = PyUnicode_GET_LENGTH(s1);
    if (len != PyUnicode_GET_LENGTH(s2)) return 0;
    kind = PyUnicode_KIND(s1);
    if (kind != PyUnicode_KIND(s2)) return 0;
    const void *data1 = PyUnicode_DATA(s1);
    const void *data2 = PyUnicode_DATA(s2);
    return (memcmp(data1, data2, (size_t) len * (size_t) kind) == 0);
}
#endif
static int __Pyx_MatchKeywordArg_str(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    PyObject ** const *name;
    #if CYTHON_USE_UNICODE_INTERNALS
    Py_hash_t key_hash = ((PyASCIIObject*)key)->hash;
    if (unlikely(key_hash == -1)) {
        key_hash = PyObject_Hash(key);
        if (unlikely(key_hash == -1))
            goto bad;
    }
    #endif
    name = first_kw_arg;
    while (*name) {
        PyObject *name_str = **name;
        #if CYTHON_USE_UNICODE_INTERNALS
        if (key_hash == ((PyASCIIObject*)name_str)->hash && __Pyx_UnicodeKeywordsEqual(name_str, key)) {
            *index_found = (size_t) (name - argnames);
            return 1;
        }
        #else
        #if CYTHON_ASSUME_SAFE_SIZE
        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
        #endif
        {
            int cmp = PyUnicode_Compare(name_str, key);
            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
            if (cmp == 0) {
                *index_found = (size_t) (name - argnames);
                return 1;
            }
        }
        #endif
        name++;
    }
    name = argnames;
    while (name != first_kw_arg) {
        PyObject *name_str = **name;
        #if CYTHON_USE_UNICODE_INTERNALS
        if (unlikely(key_hash == ((PyASCIIObject*)name_str)->hash)) {
            if (__Pyx_UnicodeKeywordsEqual(name_str, key))
                goto arg_passed_twice;
        }
        #else
        #if CYTHON_ASSUME_SAFE_SIZE
        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
        #endif
        {
            if (unlikely(name_str == key)) goto arg_passed_twice;
            int cmp = PyUnicode_Compare(name_str, key);
            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
            if (cmp == 0) goto arg_passed_twice;
        }
        #endif
        name++;
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
bad:
    return -1;
}
static int __Pyx_MatchKeywordArg_nostr(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    PyObject ** const *name;
    if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type;
    name = first_kw_arg;
    while (*name) {
        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
        if (cmp == 1) {
            *index_found = (size_t) (name - argnames);
            return 1;
        }
        if (unlikely(cmp == -1)) goto bad;
        name++;
    }
    name = argnames;
    while (name != first_kw_arg) {
        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
        if (unlikely(cmp != 0)) {
            if (cmp == 1) goto arg_passed_twice;
            else goto bad;
        }
        name++;
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
bad:
    return -1;
}
static CYTHON_INLINE int __Pyx_MatchKeywordArg(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    return likely(PyUnicode_CheckExact(key)) ?
        __Pyx_MatchKeywordArg_str(key, argnames, first_kw_arg, index_found, function_name) :
        __Pyx_MatchKeywordArg_nostr(key, argnames, first_kw_arg, index_found, function_name);
}
static void __Pyx_RejectUnknownKeyword(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    const char *function_name)
{
    #if CYTHON_AVOID_BORROWED_REFS
    PyObject *pos = NULL;
    #else
    Py_ssize_t pos = 0;
    #endif
    PyObject *key = NULL;
    __Pyx_BEGIN_CRITICAL_SECTION(kwds);
    while (
        #if CYTHON_AVOID_BORROWED_REFS
        __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL)
        #else
        PyDict_Next(kwds, &pos, &key, NULL)
        #endif
    ) {
        PyObject** const *name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (!*name) {
            size_t index_found = 0;
            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
            if (cmp != 1) {
                if (cmp == 0) {
                    PyErr_Format(PyExc_TypeError,
                        "%s() got an unexpected keyword argument '%U'",
                        function_name, key);
                }
                #if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(key);
                #endif
                break;
            }
        }
        #if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(key);
        #endif
    }
    __Pyx_END_CRITICAL_SECTION();
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(pos);
    #endif
    assert(PyErr_Occurred());
}
static int __Pyx_ParseKeywordDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    PyObject** const *name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    Py_ssize_t extracted = 0;
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
#endif
    name = first_kw_arg;
    while (*name && num_kwargs > extracted) {
        PyObject * key = **name;
        PyObject *value;
        int found = 0;
        #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
        found = PyDict_GetItemRef(kwds, key, &value);
        #else
        value = PyDict_GetItemWithError(kwds, key);
        if (value) {
            Py_INCREF(value);
            found = 1;
        } else {
            if (unlikely(PyErr_Occurred())) goto bad;
        }
        #endif
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
            extracted++;
        }
        name++;
    }
    if (num_kwargs > extracted) {
        if (ignore_unknown_kwargs) {
            if (unlikely(__Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name) == -1))
                goto bad;
        } else {
            __Pyx_RejectUnknownKeyword(kwds, argnames, first_kw_arg, function_name);
            goto bad;
        }
    }
    return 0;
bad:
    return -1;
}
static int __Pyx_ParseKeywordDictToDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject** const *name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    Py_ssize_t len;
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
#endif
    if (PyDict_Update(kwds2, kwds) < 0) goto bad;
    name = first_kw_arg;
    while (*name) {
        PyObject *key = **name;
        PyObject *value;
#if !CYTHON_COMPILING_IN_LIMITED_API && (PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop))
        int found = PyDict_Pop(kwds2, key, &value);
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
        }
#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
        int found = PyDict_GetItemRef(kwds2, key, &value);
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
            if (unlikely(PyDict_DelItem(kwds2, key) < 0)) goto bad;
        }
#else
    #if CYTHON_COMPILING_IN_CPYTHON
        value = _PyDict_Pop(kwds2, key, kwds2);
    #else
        value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, kwds2, key, kwds2);
    #endif
        if (value == kwds2) {
            Py_DECREF(value);
        } else {
            if (unlikely(!value)) goto bad;
            values[name-argnames] = value;
        }
#endif
        name++;
    }
    len = PyDict_Size(kwds2);
    if (len > 0) {
        return __Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name);
    } else if (unlikely(len == -1)) {
        goto bad;
    }
    return 0;
bad:
    return -1;
}
static int __Pyx_ParseKeywordsTuple(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    PyObject *key = NULL;
    PyObject** const * name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    for (Py_ssize_t pos = 0; pos < num_kwargs; pos++) {
#if CYTHON_AVOID_BORROWED_REFS
        key = __Pyx_PySequence_ITEM(kwds, pos);
#else
        key = __Pyx_PyTuple_GET_ITEM(kwds, pos);
#endif
#if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!key)) goto bad;
#endif
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            PyObject *value = kwvalues[pos];
            values[name-argnames] = __Pyx_NewRef(value);
        } else {
            size_t index_found = 0;
            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
            if (cmp == 1) {
                PyObject *value = kwvalues[pos];
                values[index_found] = __Pyx_NewRef(value);
            } else {
                if (unlikely(cmp == -1)) goto bad;
                if (kwds2) {
                    PyObject *value = kwvalues[pos];
                    if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
                } else if (!ignore_unknown_kwargs) {
                    goto invalid_keyword;
                }
            }
        }
        #if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(key);
        key = NULL;
        #endif
    }
    return 0;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    goto bad;
bad:
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(key);
    #endif
    return -1;
}

/* ParseKeywords */
static int __Pyx_ParseKeywords(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds)))
        return __Pyx_ParseKeywordsTuple(kwds, kwvalues, argnames, kwds2, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
    else if (kwds2)
        return __Pyx_ParseKeywordDictToDict(kwds, argnames, kwds2, values, num_pos_args, function_name);
    else
        return __Pyx_ParseKeywordDict(kwds, argnames, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* PyObjectSetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* PyObjectFormatAndDecref */
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f) {
    if (unlikely(!s)) return NULL;
    if (likely(PyUnicode_CheckExact(s))) return s;
    return __Pyx_PyObject_FormatAndDecref(s, f);
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f) {
    PyObject *result;
    if (unlikely(!s)) return NULL;
    result = PyObject_Format(s, f);
    Py_DECREF(s);
    return result;
}

/* JoinPyUnicode */
static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char) {
#if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    PyObject *result_uval;
    int result_ukind, kind_shift;
    Py_ssize_t i, char_pos;
    void *result_udata;
    if (max_char > 1114111) max_char = 1114111;
    result_uval = PyUnicode_New(result_ulength, max_char);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
    kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_DATA(result_uval);
    assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);
    if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - result_ulength < 0))
        goto overflow;
    char_pos = 0;
    for (i=0; i < value_count; i++) {
        int ukind;
        Py_ssize_t ulength;
        void *udata;
        PyObject *uval = values[i];
        #if !CYTHON_COMPILING_IN_LIMITED_API
        if (__Pyx_PyUnicode_READY(uval) == (-1))
            goto bad;
        #endif
        ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(ulength < 0)) goto bad;
        #endif
        if (unlikely(!ulength))
            continue;
        if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))
            goto overflow;
        ukind = __Pyx_PyUnicode_KIND(uval);
        udata = __Pyx_PyUnicode_DATA(uval);
        if (ukind == result_ukind) {
            memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));
        } else {
            #if PY_VERSION_HEX >= 0x030d0000
            if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;
            #elif CYTHON_COMPILING_IN_CPYTHON || defined(_PyUnicode_FastCopyCharacters)
            _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
            #else
            Py_ssize_t j;
            for (j=0; j < ulength; j++) {
                Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
                __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
            }
            #endif
        }
        char_pos += ulength;
    }
    return result_uval;
overflow:
    PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
bad:
    Py_DECREF(result_uval);
    return NULL;
#else
    Py_ssize_t i;
    PyObject *result = NULL;
    PyObject *value_tuple = PyTuple_New(value_count);
    if (unlikely(!value_tuple)) return NULL;
    CYTHON_UNUSED_VAR(max_char);
    CYTHON_UNUSED_VAR(result_ulength);
    for (i=0; i<value_count; i++) {
        if (__Pyx_PyTuple_SET_ITEM(value_tuple, i, values[i]) != (0)) goto bad;
        Py_INCREF(values[i]);
    }
    result = PyUnicode_Join(__pyx_mstate_global->__pyx_empty_unicode, value_tuple);
bad:
    Py_DECREF(value_tuple);
    return result;
#endif
}

/* PyDictVersioning (used by GetModuleGlobalName) */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!__pyx_m)) {
        if (!PyErr_Occurred())
            PyErr_SetNone(PyExc_NameError);
        return NULL;
    }
    result = PyObject_GetAttr(__pyx_m, name);
    if (likely(result)) {
        return result;
    }
    PyErr_Clear();
#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    if (unlikely(__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, name, &result) == -1)) PyErr_Clear();
    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return result;
    }
#else
    result = _PyDict_GetItem_KnownHash(__pyx_mstate_global->__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* RaiseUnboundLocalError */
static void __Pyx_RaiseUnboundLocalError(const char *varname) {
    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}

/* GetException (used by pep479) */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type = NULL, *local_value, *local_tb = NULL;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if PY_VERSION_HEX >= 0x030C0000
    local_value = tstate->current_exception;
    tstate->current_exception = 0;
  #else
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
  #endif
#elif __PYX_LIMITED_VERSION_HEX > 0x030C0000
    local_value = PyErr_GetRaisedException();
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
#if __PYX_LIMITED_VERSION_HEX > 0x030C0000
    if (likely(local_value)) {
        local_type = (PyObject*) Py_TYPE(local_value);
        Py_INCREF(local_type);
        local_tb = PyException_GetTraceback(local_value);
    }
#else
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
#endif // __PYX_LIMITED_VERSION_HEX > 0x030C0000
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
      #if PY_VERSION_HEX >= 0x030B00a4
        tmp_value = exc_info->exc_value;
        exc_info->exc_value = local_value;
        tmp_type = NULL;
        tmp_tb = NULL;
        Py_XDECREF(local_type);
        Py_XDECREF(local_tb);
      #else
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
      #endif
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#elif __PYX_LIMITED_VERSION_HEX >= 0x030b0000
    PyErr_SetHandledException(local_value);
    Py_XDECREF(local_value);
    Py_XDECREF(local_type);
    Py_XDECREF(local_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
#if __PYX_LIMITED_VERSION_HEX <= 0x030C0000
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
#endif
}

/* pep479 */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen) {
    PyObject *exc, *val, *tb, *cur_exc, *new_exc;
    __Pyx_PyThreadState_declare
    int is_async_stopiteration = 0;
    CYTHON_MAYBE_UNUSED_VAR(in_async_gen);
    __Pyx_PyThreadState_assign
    cur_exc = __Pyx_PyErr_CurrentExceptionType();
    if (likely(!__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopIteration))) {
        if (in_async_gen && unlikely(__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopAsyncIteration))) {
            is_async_stopiteration = 1;
        } else {
            return;
        }
    }
    __Pyx_GetException(&exc, &val, &tb);
    Py_XDECREF(exc);
    Py_XDECREF(tb);
    new_exc = PyObject_CallFunction(PyExc_RuntimeError, "s",
        is_async_stopiteration ? "async generator raised StopAsyncIteration" :
        in_async_gen ? "async generator raised StopIteration" :
        "generator raised StopIteration");
    if (!new_exc) {
        Py_XDECREF(val);
        return;
    }
    PyException_SetCause(new_exc, val); // steals ref to val
    PyErr_SetObject(PyExc_RuntimeError, new_exc);
}

/* HasAttr (used by ImportImpl) */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
    PyObject *r;
    if (unlikely(!PyUnicode_Check(n))) {
        PyErr_SetString(PyExc_TypeError,
                        "hasattr(): attribute name must be string");
        return -1;
    }
    r = __Pyx_PyObject_GetAttrStrNoError(o, n);
    if (!r) {
        return (unlikely(PyErr_Occurred())) ? -1 : 0;
    } else {
        Py_DECREF(r);
        return 1;
    }
}
#endif

/* ImportImpl (used by Import) */
static int __Pyx__Import_GetModule(PyObject *qualname, PyObject **module) {
    PyObject *imported_module = PyImport_GetModule(qualname);
    if (unlikely(!imported_module)) {
        *module = NULL;
        if (PyErr_Occurred()) {
            return -1;
        }
        return 0;
    }
    *module = imported_module;
    return 1;
}
static int __Pyx__Import_Lookup(PyObject *qualname, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject **module) {
    PyObject *imported_module;
    PyObject *top_level_package_name;
    Py_ssize_t i;
    int status, module_found;
    Py_ssize_t dot_index;
    module_found = __Pyx__Import_GetModule(qualname, &imported_module);
    if (unlikely(!module_found || module_found == -1)) {
        *module = NULL;
        return module_found;
    }
    if (imported_names) {
        for (i = 0; i < len_imported_names; i++) {
            PyObject *imported_name = imported_names[i];
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
            int has_imported_attribute = PyObject_HasAttr(imported_module, imported_name);
#else
            int has_imported_attribute = PyObject_HasAttrWithError(imported_module, imported_name);
            if (unlikely(has_imported_attribute == -1)) goto error;
#endif
            if (!has_imported_attribute) {
                goto not_found;
            }
        }
        *module = imported_module;
        return 1;
    }
    dot_index = PyUnicode_FindChar(qualname, '.', 0, PY_SSIZE_T_MAX, 1);
    if (dot_index == -1) {
        *module = imported_module;
        return 1;
    }
    if (unlikely(dot_index == -2)) goto error;
    top_level_package_name = PyUnicode_Substring(qualname, 0, dot_index);
    if (unlikely(!top_level_package_name)) goto error;
    Py_DECREF(imported_module);
    status = __Pyx__Import_GetModule(top_level_package_name, module);
    Py_DECREF(top_level_package_name);
    return status;
error:
    Py_DECREF(imported_module);
    *module = NULL;
    return -1;
not_found:
    Py_DECREF(imported_module);
    *module = NULL;
    return 0;
}
static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level) {
    PyObject *module = 0;
    PyObject *empty_dict = 0;
    PyObject *from_list = 0;
    int module_found;
    if (!qualname) {
        qualname = name;
    }
    module_found = __Pyx__Import_Lookup(qualname, imported_names, len_imported_names, &module);
    if (likely(module_found == 1)) {
        return module;
    } else if (unlikely(module_found == -1)) {
        return NULL;
    }
    empty_dict = PyDict_New();
    if (unlikely(!empty_dict))
        goto bad;
    if (imported_names) {
#if CYTHON_COMPILING_IN_CPYTHON
        from_list = __Pyx_PyList_FromArray(imported_names, len_imported_names);
        if (unlikely(!from_list))
            goto bad;
#else
        from_list = PyList_New(len_imported_names);
        if (unlikely(!from_list)) goto bad;
        for (Py_ssize_t i=0; i<len_imported_names; ++i) {
            if (PyList_SetItem(from_list, i, __Pyx_NewRef(imported_names[i])) < 0) goto bad;
        }
#endif
    }
    if (level == -1) {
        const char* package_sep = strchr(__Pyx_MODULE_NAME, '.');
        if (package_sep != (0)) {
            module = PyImport_ImportModuleLevelObject(
                name, moddict, empty_dict, from_list, 1);
            if (unlikely(!module)) {
                if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
                    goto bad;
                PyErr_Clear();
            }
        }
        level = 0;
    }
    if (!module) {
        module = PyImport_ImportModuleLevelObject(
            name, moddict, empty_dict, from_list, level);
    }
bad:
    Py_XDECREF(from_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level) {
    return __Pyx__Import(name, imported_names, len_imported_names, qualname, __pyx_mstate_global->__pyx_d, level);
}

/* ImportFrom */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        const char* module_name_str = 0;
        PyObject* module_name = 0;
        PyObject* module_dot = 0;
        PyObject* full_name = 0;
        PyErr_Clear();
        module_name_str = PyModule_GetName(module);
        if (unlikely(!module_name_str)) { goto modbad; }
        module_name = PyUnicode_FromString(module_name_str);
        if (unlikely(!module_name)) { goto modbad; }
        module_dot = PyUnicode_Concat(module_name, __pyx_mstate_global->__pyx_kp_u__3);
        if (unlikely(!module_dot)) { goto modbad; }
        full_name = PyUnicode_Concat(module_dot, name);
        if (unlikely(!full_name)) { goto modbad; }
        #if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400) ||\
                CYTHON_COMPILING_IN_GRAAL
        {
            PyObject *modules = PyImport_GetModuleDict();
            if (unlikely(!modules))
                goto modbad;
            value = PyObject_GetItem(modules, full_name);
        }
        #else
        value = PyImport_GetModule(full_name);
        #endif
      modbad:
        Py_XDECREF(full_name);
        Py_XDECREF(module_dot);
        Py_XDECREF(module_name);
    }
    if (unlikely(!value)) {
        PyErr_Format(PyExc_ImportError, "cannot import name %S", name);
    }
    return value;
}

/* RaiseUnexpectedTypeError */
static int
__Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj)
{
    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME,
                 expected, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (unlikely(!j)) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_SIZE
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS)) {
        return __Pyx_PyList_GetItemRefFast(o, wrapped_i, unsafe_shared);
    } else
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        return __Pyx_NewRef(PyList_GET_ITEM(o, wrapped_i));
    }
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
#else
    (void)wraparound;
    (void)boundscheck;
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        return __Pyx_NewRef(PyTuple_GET_ITEM(o, wrapped_i));
    }
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
#else
    (void)wraparound;
    (void)boundscheck;
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)) {
            return __Pyx_PyList_GetItemRefFast(o, n, unsafe_shared);
        } else if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            return __Pyx_NewRef(PyList_GET_ITEM(o, n));
        }
    } else
    #if !CYTHON_AVOID_BORROWED_REFS
    if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            return __Pyx_NewRef(PyTuple_GET_ITEM(o, n));
        }
    } else
    #endif
#endif
#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
    {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (!is_list && mm && mm->mp_subscript) {
            PyObject *r, *key = PyLong_FromSsize_t(i);
            if (unlikely(!key)) return NULL;
            r = mm->mp_subscript(o, key);
            Py_DECREF(key);
            return r;
        }
        if (is_list || likely(sm && sm->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return sm->sq_item(o, i);
        }
    }
#else
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    (void)wraparound;
    (void)boundscheck;
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
}

/* PyObjectFastCallMethod */
#if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf) {
    PyObject *result;
    PyObject *attr = PyObject_GetAttr(args[0], name);
    if (unlikely(!attr))
        return NULL;
    result = __Pyx_PyObject_FastCall(attr, args+1, nargsf - 1);
    Py_DECREF(attr);
    return result;
}
#endif

/* PyObjectCallNoArg (used by pyfrozenset_new) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
    PyObject *arg[2] = {NULL, NULL};
    return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* pyfrozenset_new (used by PySetContains) */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it) {
    if (it) {
        PyObject* result;
#if CYTHON_COMPILING_IN_PYPY
        PyObject* args;
        args = PyTuple_Pack(1, it);
        if (unlikely(!args))
            return NULL;
        result = PyObject_Call((PyObject*)&PyFrozenSet_Type, args, NULL);
        Py_DECREF(args);
        return result;
#else
        if (PyFrozenSet_CheckExact(it)) {
            Py_INCREF(it);
            return it;
        }
        result = PyFrozenSet_New(it);
        if (unlikely(!result))
            return NULL;
        if ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
#if CYTHON_COMPILING_IN_LIMITED_API
            || __Pyx_get_runtime_version() >= 0x030A0000
#endif
            )
            return result;
        {
            Py_ssize_t size = __Pyx_PySet_GET_SIZE(result);
            if (likely(size > 0))
                return result;
#if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely(size < 0)) {
                Py_DECREF(result);
                return NULL;
            }
#endif
        }
        Py_DECREF(result);
#endif
    }
    return __Pyx_PyObject_CallNoArg((PyObject*) &PyFrozenSet_Type);
}

/* PySetContains */
static int __Pyx_PySet_ContainsUnhashable(PyObject *set, PyObject *key) {
    int result = -1;
    if (PySet_Check(key) && PyErr_ExceptionMatches(PyExc_TypeError)) {
        PyObject *tmpkey;
        PyErr_Clear();
        tmpkey = __Pyx_PyFrozenSet_New(key);
        if (tmpkey != NULL) {
            result = PySet_Contains(set, tmpkey);
            Py_DECREF(tmpkey);
        }
    }
    return result;
}
static CYTHON_INLINE int __Pyx_PySet_ContainsTF(PyObject* key, PyObject* set, int eq) {
    int result = PySet_Contains(set, key);
    if (unlikely(result < 0)) {
        result = __Pyx_PySet_ContainsUnhashable(set, key);
    }
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* SliceObject */
static CYTHON_INLINE int __Pyx_PyObject_SetSlice(PyObject* obj, PyObject* value,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
    __Pyx_TypeName obj_type_name;
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_ass_subscript))
#endif
    {
        int result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyLong_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyLong_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_ass_subscript(obj, py_slice, value);
#else
        result = value ? PyObject_SetItem(obj, py_slice, value) : PyObject_DelItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object does not support slice %.10s",
        obj_type_name, value ? "assignment" : "deletion");
    __Pyx_DECREF_TypeName(obj_type_name);
bad:
    return -1;
}

/* GetTopmostException (used by SaveResetException) */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    PyObject *exc_value = exc_info->exc_value;
    if (exc_value == NULL || exc_value == Py_None) {
        *value = NULL;
        *type = NULL;
        *tb = NULL;
    } else {
        *value = exc_value;
        Py_INCREF(*value);
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        *tb = PyException_GetTraceback(exc_value);
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #endif
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    PyObject *tmp_value = exc_info->exc_value;
    exc_info->exc_value = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
  #else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
  #endif
}
#endif

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (cls == a || cls == b) return 1;
    mro = cls->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            PyObject *base = PyTuple_GET_ITEM(mro, i);
            if (base == (PyObject *)a || base == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
}
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    if (exc_type1) {
        return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
    } else {
        return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
}
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* GetAttr3 */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    Py_INCREF(d);
    return d;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
    PyObject *r;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    int res = PyObject_GetOptionalAttr(o, n, &r);
    return (res != 0) ? r : __Pyx_NewRef(d);
#else
  #if CYTHON_USE_TYPE_SLOTS
    if (likely(PyUnicode_Check(n))) {
        r = __Pyx_PyObject_GetAttrStrNoError(o, n);
        if (unlikely(!r) && likely(!PyErr_Occurred())) {
            r = __Pyx_NewRef(d);
        }
        return r;
    }
  #endif
    r = PyObject_GetAttr(o, n);
    return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
#endif
}

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* IterFinish */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return -1;
        __Pyx_PyErr_Clear();
        return 0;
    }
    return 0;
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    }
    return __Pyx_IterFinish();
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    __Pyx_TypeName obj_type_name;
    __Pyx_TypeName type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    type_name = __Pyx_PyType_GetFullyQualifiedName(type);
    PyErr_Format(PyExc_TypeError,
                 "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
                 obj_type_name, type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
}

/* PyUnicode_Substring */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring(
            PyObject* text, Py_ssize_t start, Py_ssize_t stop) {
    Py_ssize_t length;
    #if !CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(__Pyx_PyUnicode_READY(text) == -1)) return NULL;
    #endif
    length = __Pyx_PyUnicode_GET_LENGTH(text);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (unlikely(length < 0)) return NULL;
    #endif
    if (start < 0) {
        start += length;
        if (start < 0)
            start = 0;
    }
    if (stop < 0)
        stop += length;
    else if (stop > length)
        stop = length;
    if (stop <= start)
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_unicode);
    if (start == 0 && stop == length)
        return __Pyx_NewRef(text);
#if CYTHON_COMPILING_IN_LIMITED_API
    return PyUnicode_Substring(text, start, stop);
#else
    return PyUnicode_FromKindAndData(PyUnicode_KIND(text),
        PyUnicode_1BYTE_DATA(text) + start*PyUnicode_KIND(text), stop-start);
#endif
}

/* ArgTypeTestFunc (used by ArgTypeTest) */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    __Pyx_TypeName type_name;
    __Pyx_TypeName obj_type_name;
    PyObject *extra_info = __pyx_mstate_global->__pyx_empty_unicode;
    int from_annotation_subclass = 0;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (!exact) {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    } else if (exact == 2) {
        if (__Pyx_TypeCheck(obj, type)) {
            from_annotation_subclass = 1;
            extra_info = __pyx_mstate_global->__pyx_kp_u_Note_that_Cython_is_deliberately;
        }
    }
    type_name = __Pyx_PyType_GetFullyQualifiedName(type);
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME
        ", got " __Pyx_FMT_TYPENAME ")"
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
        "%s%U"
#endif
        , name, type_name, obj_type_name
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
        , (from_annotation_subclass ? ". " : ""), extra_info
#endif
        );
#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    if (exact == 2 && from_annotation_subclass) {
        PyObject *res;
        PyObject *vargs[2];
        vargs[0] = PyErr_GetRaisedException();
        vargs[1] = extra_info;
        res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_kp_u_add_note, vargs, 2, NULL);
        Py_XDECREF(res);
        PyErr_SetRaisedException(vargs[0]);
    }
#endif
    __Pyx_DECREF_TypeName(type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* RaiseException */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if PY_VERSION_HEX >= 0x030C00A6
        PyException_SetTraceback(value, tb);
#elif CYTHON_FAST_THREAD_STATE
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#else
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}

/* PyObjectCall2Args (used by PyObjectCallMethod1) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args[3] = {NULL, arg1, arg2};
    return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* PyObjectGetMethod (used by PyObjectCallMethod1) */
#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    __Pyx_TypeName type_name;
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR
        if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (likely(descr != NULL)) {
        *method = descr;
        return 0;
    }
    type_name = __Pyx_PyType_GetFullyQualifiedName(tp);
    PyErr_Format(PyExc_AttributeError,
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}
#endif

/* PyObjectCallMethod1 (used by append) */
#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
#endif
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))
    PyObject *args[2] = {obj, arg};
    (void) __Pyx_PyObject_CallOneArg;
    (void) __Pyx_PyObject_Call2Args;
    return PyObject_VectorcallMethod(method_name, args, 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#else
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
#endif
}

/* append */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
    if (likely(PyList_CheckExact(L))) {
        if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1;
    } else {
        PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_mstate_global->__pyx_n_u_append, x);
        if (unlikely(!retval))
            return -1;
        Py_DECREF(retval);
    }
    return 0;
}

/* PyObjectLookupSpecial */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) {
    PyObject *res;
    PyTypeObject *tp = Py_TYPE(obj);
    res = _PyType_Lookup(tp, attr_name);
    if (likely(res)) {
        descrgetfunc f = Py_TYPE(res)->tp_descr_get;
        if (!f) {
            Py_INCREF(res);
        } else {
            res = f(res, obj, (PyObject *)tp);
        }
    } else if (with_error) {
        PyErr_SetObject(PyExc_AttributeError, attr_name);
    }
    return res;
}
#endif

/* SwapException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_value = exc_info->exc_value;
    exc_info->exc_value = *value;
    if (tmp_value == NULL || tmp_value == Py_None) {
        Py_XDECREF(tmp_value);
        tmp_value = NULL;
        tmp_type = NULL;
        tmp_tb = NULL;
    } else {
        tmp_type = (PyObject*) Py_TYPE(tmp_value);
        Py_INCREF(tmp_type);
        #if CYTHON_COMPILING_IN_CPYTHON
        tmp_tb = ((PyBaseExceptionObject*) tmp_value)->traceback;
        Py_XINCREF(tmp_tb);
        #else
        tmp_tb = PyException_GetTraceback(tmp_value);
        #endif
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = *type;
    exc_info->exc_value = *value;
    exc_info->exc_traceback = *tb;
  #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
  #endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#endif

/* PyObjectCallMethod0 (used by pop) */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))
    PyObject *args[1] = {obj};
    (void) __Pyx_PyObject_CallOneArg;
    (void) __Pyx_PyObject_CallNoArg;
    return PyObject_VectorcallMethod(method_name, args, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#else
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
#endif
}

/* pop */
static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L) {
    if (__Pyx_IS_TYPE(L, &PySet_Type)) {
        return PySet_Pop(L);
    }
    return __Pyx_PyObject_CallMethod0(L, __pyx_mstate_global->__pyx_n_u_pop);
}
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L) {
    if (likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {
        __Pyx_SET_SIZE(L, Py_SIZE(L) - 1);
        return PyList_GET_ITEM(L, PyList_GET_SIZE(L));
    }
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyList_Type_pop, L);
}
#endif

/* SliceObject */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
    __Pyx_TypeName obj_type_name;
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_subscript))
#endif
    {
        PyObject* result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyLong_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyLong_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_subscript(obj, py_slice);
#else
        result = PyObject_GetItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is unsliceable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
bad:
    return NULL;
}

/* RejectKeywords */
static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds) {
    PyObject *key = NULL;
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds))) {
        key = __Pyx_PySequence_ITEM(kwds, 0);
    } else {
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *pos = NULL;
#else
        Py_ssize_t pos = 0;
#endif
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
        if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return;
#endif
        __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL);
#if CYTHON_AVOID_BORROWED_REFS
        Py_XDECREF(pos);
#endif
    }
    if (likely(key)) {
        PyErr_Format(PyExc_TypeError,
            "%s() got an unexpected keyword argument '%U'",
            function_name, key);
        Py_DECREF(key);
    }
}

/* PyLongBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_Fallback___Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, int inplace) {
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#if CYTHON_USE_PYLONG_INTERNALS
static PyObject* __Pyx_Unpacked___Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    long a;
    const PY_LONG_LONG llb = intval;
    PY_LONG_LONG lla;
    if (unlikely(__Pyx_PyLong_IsZero(op1))) {
        return __Pyx_NewRef(op2);
    }
    const int is_positive = __Pyx_PyLong_IsPos(op1);
    const digit* digits = __Pyx_PyLong_Digits(op1);
    const Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);
    if (likely(size == 1)) {
        a = (long) digits[0];
        if (!is_positive) a *= -1;
    } else {
        switch (size) {
            case 2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                    a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    if (!is_positive) a *= -1;
                    goto calculate_long;
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    if (!is_positive) lla *= -1;
                    goto calculate_long_long;
                }
                break;
            case 3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                    a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    if (!is_positive) a *= -1;
                    goto calculate_long;
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    if (!is_positive) lla *= -1;
                    goto calculate_long_long;
                }
                break;
            case 4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                    a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    if (!is_positive) a *= -1;
                    goto calculate_long;
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    if (!is_positive) lla *= -1;
                    goto calculate_long_long;
                }
                break;
        }
        return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    calculate_long:
        {
            long x;
            x = a + b;
            return PyLong_FromLong(x);
        }
    calculate_long_long:
        {
            PY_LONG_LONG llx;
            llx = lla + llb;
            return PyLong_FromLongLong(llx);
        }
    
}
#endif
static PyObject* __Pyx_Float___Pyx_PyLong_AddObjC(PyObject *float_val, long intval, int zerodivision_check) {
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    double a = __Pyx_PyFloat_AS_DOUBLE(float_val);
        double result;
        
        result = ((double)a) + (double)b;
        return PyFloat_FromDouble(result);
}
static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        return __Pyx_Unpacked___Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        return __Pyx_Float___Pyx_PyLong_AddObjC(op1, intval, zerodivision_check);
    }
    return __Pyx_Fallback___Pyx_PyLong_AddObjC(op1, op2, inplace);
}
#endif

/* SliceTupleAndList */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_crop_slice(Py_ssize_t* _start, Py_ssize_t* _stop, Py_ssize_t* _length) {
    Py_ssize_t start = *_start, stop = *_stop, length = *_length;
    if (start < 0) {
        start += length;
        if (start < 0)
            start = 0;
    }
    if (stop < 0)
        stop += length;
    else if (stop > length)
        stop = length;
    *_length = stop - start;
    *_start = start;
    *_stop = stop;
}
static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(
            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
    Py_ssize_t length = PyTuple_GET_SIZE(src);
    __Pyx_crop_slice(&start, &stop, &length);
    return __Pyx_PyTuple_FromArray(((PyTupleObject*)src)->ob_item + start, length);
}
static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice_locked(
            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
    Py_ssize_t length = PyList_GET_SIZE(src);
    __Pyx_crop_slice(&start, &stop, &length);
    if (length <= 0) {
        return PyList_New(0);
    }
    return __Pyx_PyList_FromArray(((PyListObject*)src)->ob_item + start, length);
}
static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(
            PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
    PyObject *result;
    __Pyx_BEGIN_CRITICAL_SECTION(src);
    result = __Pyx_PyList_GetSlice_locked(src, start, stop);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
#endif // CYTHON_COMPILING_IN_CPYTHON

/* PyObjectVectorCallKwBuilder */
#if CYTHON_VECTORCALL
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    (void)__Pyx_PyObject_FastCallDict;
    if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1;
    Py_INCREF(key);
    args[n] = value;
    return 0;
}
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    (void)__Pyx_VectorcallBuilder_AddArgStr;
    if (unlikely(!PyUnicode_Check(key))) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        return -1;
    }
    return __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n);
}
static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    PyObject *pyKey = PyUnicode_FromString(key);
    if (!pyKey) return -1;
    return __Pyx_VectorcallBuilder_AddArg(pyKey, value, builder, args, n);
}
#else // CYTHON_VECTORCALL
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, CYTHON_UNUSED PyObject **args, CYTHON_UNUSED int n) {
    if (unlikely(!PyUnicode_Check(key))) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        return -1;
    }
    return PyDict_SetItem(builder, key, value);
}
#endif

/* IterNextPlain (used by IterNext) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void) {
    if (unlikely(!__pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache))
        __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache = __Pyx_GetBuiltinName(__pyx_mstate_global->__pyx_n_u_next);
    return __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator) {
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    PyObject *result;
    PyObject *next = __Pyx_GetBuiltinNext_LimitedAPI();
    if (unlikely(!next)) return NULL;
    result = PyObject_CallFunctionObjArgs(next, iterator, NULL);
    return result;
#else
    (void)__Pyx_GetBuiltinName; // only for early limited API
    iternextfunc iternext = __Pyx_PyObject_GetIterNextFunc(iterator);
    assert(iternext);
    return iternext(iterator);
#endif
}

/* IterNext */
static PyObject *__Pyx_PyIter_Next2Default(PyObject* defval) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (!defval || unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return NULL;
        __Pyx_PyErr_Clear();
        Py_INCREF(defval);
        return defval;
    }
    if (defval) {
        Py_INCREF(defval);
        return defval;
    }
    __Pyx_PyErr_SetNone(PyExc_StopIteration);
    return NULL;
}
static void __Pyx_PyIter_Next_ErrorNoIterator(PyObject *iterator) {
    __Pyx_TypeName iterator_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(iterator));
    PyErr_Format(PyExc_TypeError,
        __Pyx_FMT_TYPENAME " object is not an iterator", iterator_type_name);
    __Pyx_DECREF_TypeName(iterator_type_name);
}
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject* iterator, PyObject* defval) {
    PyObject* next;
#if !CYTHON_COMPILING_IN_LIMITED_API
    iternextfunc iternext = __Pyx_PyObject_TryGetSlot(iterator, tp_iternext, iternextfunc);
    if (likely(iternext)) {
        next = iternext(iterator);
        if (likely(next))
            return next;
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
        if (unlikely(iternext == &_PyObject_NextNotImplemented))
            return NULL;
    #endif
    } else if (CYTHON_USE_TYPE_SLOTS) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    } else
#endif
    if (unlikely(!PyIter_Check(iterator))) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    } else {
        next = defval ? PyIter_Next(iterator) : __Pyx_PyIter_Next_Plain(iterator);
        if (likely(next))
            return next;
    }
    return __Pyx_PyIter_Next2Default(defval);
}

/* ObjectGetItem */
#if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
    PyObject *runerr = NULL;
    Py_ssize_t key_value;
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        __Pyx_TypeName index_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(index));
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError,
            "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name);
        __Pyx_DECREF_TypeName(index_type_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
    __Pyx_TypeName obj_type_name;
    if (likely(PyType_Check(obj))) {
        PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_mstate_global->__pyx_n_u_class_getitem);
        if (!meth) {
            PyErr_Clear();
        } else {
            PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
            Py_DECREF(meth);
            return result;
        }
    }
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
    PyTypeObject *tp = Py_TYPE(obj);
    PyMappingMethods *mm = tp->tp_as_mapping;
    PySequenceMethods *sm = tp->tp_as_sequence;
    if (likely(mm && mm->mp_subscript)) {
        return mm->mp_subscript(obj, key);
    }
    if (likely(sm && sm->sq_item)) {
        return __Pyx_PyObject_GetIndex(obj, key);
    }
    return __Pyx_PyObject_GetItem_Slow(obj, key);
}
#endif

/* PyLongCompare */
static CYTHON_INLINE int __Pyx_PyLong_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(inplace);
    if (op1 == op2) {
        return 1;
    }
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        int unequal;
        unsigned long uintval;
        Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);
        const digit* digits = __Pyx_PyLong_Digits(op1);
        if (intval == 0) {
            return (__Pyx_PyLong_IsZero(op1) == 1);
        } else if (intval < 0) {
            if (__Pyx_PyLong_IsNonNeg(op1))
                return 0;
            intval = -intval;
        } else {
            if (__Pyx_PyLong_IsNeg(op1))
                return 0;
        }
        uintval = (unsigned long) intval;
#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 4)) {
            unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 3)) {
            unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 2)) {
            unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 1)) {
            unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
            unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
        return (unequal == 0);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = __Pyx_PyFloat_AS_DOUBLE(op1);
        return ((double)a == (double)b);
    }
    return __Pyx_PyObject_IsTrueAndDecref(
        PyObject_RichCompare(op1, op2, Py_EQ));
}

/* PyUnicode_Unicode */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj) {
    if (unlikely(obj == Py_None))
        obj = __pyx_mstate_global->__pyx_kp_u_None;
    return __Pyx_NewRef(obj);
}

/* DelItemInt */
static int __Pyx_DelItem_Generic(PyObject *o, PyObject *j) {
    int r;
    if (unlikely(!j)) return -1;
    r = PyObject_DelItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
                                               int is_list, CYTHON_NCP_UNUSED int wraparound) {
#if !CYTHON_USE_TYPE_SLOTS
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_DelItem(o, i);
    }
#else
    PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
    PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
    if ((!is_list) && mm && mm->mp_ass_subscript) {
        PyObject *key = PyLong_FromSsize_t(i);
        return likely(key) ? mm->mp_ass_subscript(o, key, (PyObject *)NULL) : -1;
    }
    if (likely(sm && sm->sq_ass_item)) {
        if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
            Py_ssize_t l = sm->sq_length(o);
            if (likely(l >= 0)) {
                i += l;
            } else {
                if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                    return -1;
                PyErr_Clear();
            }
        }
        return sm->sq_ass_item(o, i, (PyObject *)NULL);
    }
#endif
    return __Pyx_DelItem_Generic(o, PyLong_FromSsize_t(i));
}

/* DictGetItem */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    if (unlikely(__Pyx_PyDict_GetItemRef(d, key, &value) == 0)) { // no value, no error
        if (unlikely(PyTuple_Check(key))) {
            PyObject* args = PyTuple_Pack(1, key);
            if (likely(args)) {
                PyErr_SetObject(PyExc_KeyError, args);
                Py_DECREF(args);
            }
        } else {
            PyErr_SetObject(PyExc_KeyError, key);
        }
    }
    return value;
}
#endif

/* CIntToDigits (used by CIntToPyUnicode) */
static const char DIGIT_PAIRS_10[2*10*10+1] = {
    "00010203040506070809"
    "10111213141516171819"
    "20212223242526272829"
    "30313233343536373839"
    "40414243444546474849"
    "50515253545556575859"
    "60616263646566676869"
    "70717273747576777879"
    "80818283848586878889"
    "90919293949596979899"
};
static const char DIGIT_PAIRS_8[2*8*8+1] = {
    "0001020304050607"
    "1011121314151617"
    "2021222324252627"
    "3031323334353637"
    "4041424344454647"
    "5051525354555657"
    "6061626364656667"
    "7071727374757677"
};
static const char DIGITS_HEX[2*16+1] = {
    "0123456789abcdef"
    "0123456789ABCDEF"
};

/* BuildPyUnicode (used by COrdinalToPyUnicode) */
static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, const char* chars, int clength,
                                                int prepend_sign, char padding_char) {
    PyObject *uval;
    Py_ssize_t uoffset = ulength - clength;
#if CYTHON_USE_UNICODE_INTERNALS
    Py_ssize_t i;
    void *udata;
    uval = PyUnicode_New(ulength, 127);
    if (unlikely(!uval)) return NULL;
    udata = PyUnicode_DATA(uval);
    if (uoffset > 0) {
        i = 0;
        if (prepend_sign) {
            __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, 0, '-');
            i++;
        }
        for (; i < uoffset; i++) {
            __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, i, padding_char);
        }
    }
    for (i=0; i < clength; i++) {
        __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, uoffset+i, chars[i]);
    }
#else
    {
        PyObject *sign = NULL, *padding = NULL;
        uval = NULL;
        if (uoffset > 0) {
            prepend_sign = !!prepend_sign;
            if (uoffset > prepend_sign) {
                padding = PyUnicode_FromOrdinal(padding_char);
                if (likely(padding) && uoffset > prepend_sign + 1) {
                    PyObject *tmp = PySequence_Repeat(padding, uoffset - prepend_sign);
                    Py_DECREF(padding);
                    padding = tmp;
                }
                if (unlikely(!padding)) goto done_or_error;
            }
            if (prepend_sign) {
                sign = PyUnicode_FromOrdinal('-');
                if (unlikely(!sign)) goto done_or_error;
            }
        }
        uval = PyUnicode_DecodeASCII(chars, clength, NULL);
        if (likely(uval) && padding) {
            PyObject *tmp = PyUnicode_Concat(padding, uval);
            Py_DECREF(uval);
            uval = tmp;
        }
        if (likely(uval) && sign) {
            PyObject *tmp = PyUnicode_Concat(sign, uval);
            Py_DECREF(uval);
            uval = tmp;
        }
done_or_error:
        Py_XDECREF(padding);
        Py_XDECREF(sign);
    }
#endif
    return uval;
}

/* COrdinalToPyUnicode (used by CIntToPyUnicode) */
static CYTHON_INLINE int __Pyx_CheckUnicodeValue(int value) {
    return value <= 1114111;
}
static PyObject* __Pyx_PyUnicode_FromOrdinal_Padded(int value, Py_ssize_t ulength, char padding_char) {
    Py_ssize_t padding_length = ulength - 1;
    if (likely((padding_length <= 250) && (value < 0xD800 || value > 0xDFFF))) {
        char chars[256];
        if (value <= 255) {
            memset(chars, padding_char, (size_t) padding_length);
            chars[ulength-1] = (char) value;
            return PyUnicode_DecodeLatin1(chars, ulength, NULL);
        }
        char *cpos = chars + sizeof(chars);
        if (value < 0x800) {
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0xc0 | (value & 0x1f));
        } else if (value < 0x10000) {
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0xe0 | (value & 0x0f));
        } else {
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0x80 | (value & 0x3f));
            value >>= 6;
            *--cpos = (char) (0xf0 | (value & 0x07));
        }
        cpos -= padding_length;
        memset(cpos, padding_char, (size_t) padding_length);
        return PyUnicode_DecodeUTF8(cpos, chars + sizeof(chars) - cpos, NULL);
    }
    if (value <= 127 && CYTHON_USE_UNICODE_INTERNALS) {
        const char chars[1] = {(char) value};
        return __Pyx_PyUnicode_BuildFromAscii(ulength, chars, 1, 0, padding_char);
    }
    {
        PyObject *uchar, *padding_uchar, *padding, *result;
        padding_uchar = PyUnicode_FromOrdinal(padding_char);
        if (unlikely(!padding_uchar)) return NULL;
        padding = PySequence_Repeat(padding_uchar, padding_length);
        Py_DECREF(padding_uchar);
        if (unlikely(!padding)) return NULL;
        uchar = PyUnicode_FromOrdinal(value);
        if (unlikely(!uchar)) {
            Py_DECREF(padding);
            return NULL;
        }
        result = PyUnicode_Concat(padding, uchar);
        Py_DECREF(padding);
        Py_DECREF(uchar);
        return result;
    }
}

/* CIntToPyUnicode */
static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!(is_unsigned || value == 0 || value > 0) ||
                    !(sizeof(value) <= 2 || value & ~ (Py_ssize_t) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) {
        PyErr_SetString(PyExc_OverflowError, "%c arg not in range(0x110000)");
        return NULL;
    }
    if (width <= 1) {
        return PyUnicode_FromOrdinal((int) value);
    }
    return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char);
}
static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char) {
    char digits[sizeof(Py_ssize_t)*3+2];
    char *dpos, *end = digits + sizeof(Py_ssize_t)*3+2;
    const char *hex_digits = DIGITS_HEX;
    Py_ssize_t length, ulength;
    int prepend_sign, last_one_off;
    Py_ssize_t remaining;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (format_char == 'X') {
        hex_digits += 16;
        format_char = 'x';
    }
    remaining = value;
    last_one_off = 0;
    dpos = end;
    do {
        int digit_pos;
        switch (format_char) {
        case 'o':
            digit_pos = abs((int)(remaining % (8*8)));
            remaining = (Py_ssize_t) (remaining / (8*8));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 8);
            break;
        case 'd':
            digit_pos = abs((int)(remaining % (10*10)));
            remaining = (Py_ssize_t) (remaining / (10*10));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 10);
            break;
        case 'x':
            *(--dpos) = hex_digits[abs((int)(remaining % 16))];
            remaining = (Py_ssize_t) (remaining / 16);
            break;
        default:
            assert(0);
            break;
        }
    } while (unlikely(remaining != 0));
    assert(!last_one_off || *dpos == '0');
    dpos += last_one_off;
    length = end - dpos;
    ulength = length;
    prepend_sign = 0;
    if (!is_unsigned && value <= neg_one) {
        if (padding_char == ' ' || width <= length + 1) {
            *(--dpos) = '-';
            ++length;
        } else {
            prepend_sign = 1;
        }
        ++ulength;
    }
    if (width > ulength) {
        ulength = width;
    }
    if (ulength == 1) {
        return PyUnicode_FromOrdinal(*dpos);
    }
    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
}

/* pybytes_as_double (used by pynumber_float) */
static double __Pyx_SlowPyString_AsDouble(PyObject *obj) {
    PyObject *float_value = PyFloat_FromString(obj);
    if (likely(float_value)) {
        double value = __Pyx_PyFloat_AS_DOUBLE(float_value);
        Py_DECREF(float_value);
        return value;
    }
    return (double)-1;
}
static const char* __Pyx__PyBytes_AsDouble_Copy(const char* start, char* buffer, Py_ssize_t length) {
    int last_was_punctuation = 1;
    int parse_error_found = 0;
    Py_ssize_t i;
    for (i=0; i < length; i++) {
        char chr = start[i];
        int is_punctuation = (chr == '_') | (chr == '.') | (chr == 'e') | (chr == 'E');
        *buffer = chr;
        buffer += (chr != '_');
        parse_error_found |= last_was_punctuation & is_punctuation;
        last_was_punctuation = is_punctuation;
    }
    parse_error_found |= last_was_punctuation;
    *buffer = '\0';
    return unlikely(parse_error_found) ? NULL : buffer;
}
static double __Pyx__PyBytes_AsDouble_inf_nan(const char* start, Py_ssize_t length) {
    int matches = 1;
    char sign = start[0];
    int is_signed = (sign == '+') | (sign == '-');
    start += is_signed;
    length -= is_signed;
    switch (start[0]) {
        #ifdef Py_NAN
        case 'n':
        case 'N':
            if (unlikely(length != 3)) goto parse_failure;
            matches &= (start[1] == 'a' || start[1] == 'A');
            matches &= (start[2] == 'n' || start[2] == 'N');
            if (unlikely(!matches)) goto parse_failure;
            return (sign == '-') ? -Py_NAN : Py_NAN;
        #endif
        case 'i':
        case 'I':
            if (unlikely(length < 3)) goto parse_failure;
            matches &= (start[1] == 'n' || start[1] == 'N');
            matches &= (start[2] == 'f' || start[2] == 'F');
            if (likely(length == 3 && matches))
                return (sign == '-') ? -Py_HUGE_VAL : Py_HUGE_VAL;
            if (unlikely(length != 8)) goto parse_failure;
            matches &= (start[3] == 'i' || start[3] == 'I');
            matches &= (start[4] == 'n' || start[4] == 'N');
            matches &= (start[5] == 'i' || start[5] == 'I');
            matches &= (start[6] == 't' || start[6] == 'T');
            matches &= (start[7] == 'y' || start[7] == 'Y');
            if (unlikely(!matches)) goto parse_failure;
            return (sign == '-') ? -Py_HUGE_VAL : Py_HUGE_VAL;
        case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
            break;
        default:
            goto parse_failure;
    }
    return 0.0;
parse_failure:
    return -1.0;
}
static CYTHON_INLINE int __Pyx__PyBytes_AsDouble_IsSpace(char ch) {
    return (ch == 0x20) | !((ch < 0x9) | (ch > 0xd));
}
CYTHON_UNUSED static double __Pyx__PyBytes_AsDouble(PyObject *obj, const char* start, Py_ssize_t length) {
    double value;
    Py_ssize_t i, digits;
    const char *last = start + length;
    char *end;
    while (__Pyx__PyBytes_AsDouble_IsSpace(*start))
        start++;
    while (start < last - 1 && __Pyx__PyBytes_AsDouble_IsSpace(last[-1]))
        last--;
    length = last - start;
    if (unlikely(length <= 0)) goto fallback;
    value = __Pyx__PyBytes_AsDouble_inf_nan(start, length);
    if (unlikely(value == -1.0)) goto fallback;
    if (value != 0.0) return value;
    digits = 0;
    for (i=0; i < length; digits += start[i++] != '_');
    if (likely(digits == length)) {
        value = PyOS_string_to_double(start, &end, NULL);
    } else if (digits < 40) {
        char number[40];
        last = __Pyx__PyBytes_AsDouble_Copy(start, number, length);
        if (unlikely(!last)) goto fallback;
        value = PyOS_string_to_double(number, &end, NULL);
    } else {
        char *number = (char*) PyMem_Malloc((digits + 1) * sizeof(char));
        if (unlikely(!number)) goto fallback;
        last = __Pyx__PyBytes_AsDouble_Copy(start, number, length);
        if (unlikely(!last)) {
            PyMem_Free(number);
            goto fallback;
        }
        value = PyOS_string_to_double(number, &end, NULL);
        PyMem_Free(number);
    }
    if (likely(end == last) || (value == (double)-1 && PyErr_Occurred())) {
        return value;
    }
fallback:
    return __Pyx_SlowPyString_AsDouble(obj);
}

/* pynumber_float */
static CYTHON_INLINE PyObject* __Pyx__PyNumber_Float(PyObject* obj) {
    double val;
    if (PyLong_CheckExact(obj)) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (likely(__Pyx_PyLong_IsCompact(obj))) {
            val = (double) __Pyx_PyLong_CompactValue(obj);
            goto no_error;
        }
#endif
        val = PyLong_AsDouble(obj);
    } else if (PyUnicode_CheckExact(obj)) {
        val = __Pyx_PyUnicode_AsDouble(obj);
    } else if (PyBytes_CheckExact(obj)) {
        val = __Pyx_PyBytes_AsDouble(obj);
    } else if (PyByteArray_CheckExact(obj)) {
        val = __Pyx_PyByteArray_AsDouble(obj);
    } else {
        return PyNumber_Float(obj);
    }
    if (unlikely(val == -1 && PyErr_Occurred())) {
        return NULL;
    }
#if CYTHON_USE_PYLONG_INTERNALS
no_error:
#endif
    return PyFloat_FromDouble(val);
}

/* GetAttr */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
#if CYTHON_USE_TYPE_SLOTS
    if (likely(PyUnicode_Check(n)))
        return __Pyx_PyObject_GetAttrStr(o, n);
#endif
    return PyObject_GetAttr(o, n);
}

/* SetItemInt */
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
    int r;
    if (unlikely(!j)) return -1;
    r = PyObject_SetItem(o, j, v);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,
                                               int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE && !CYTHON_AVOID_BORROWED_REFS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
        if ((CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS && !__Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared))) {
            Py_INCREF(v);
            return PyList_SetItem(o, n, v);
        } else if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
            PyObject* old;
            Py_INCREF(v);
            old = PyList_GET_ITEM(o, n);
            PyList_SET_ITEM(o, n, v);
            Py_DECREF(old);
            return 0;
        }
    } else
#endif
#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
    {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (!is_list && mm && mm->mp_ass_subscript) {
            int r;
            PyObject *key = PyLong_FromSsize_t(i);
            if (unlikely(!key)) return -1;
            r = mm->mp_ass_subscript(o, key, v);
            Py_DECREF(key);
            return r;
        }
        if (is_list || likely(sm && sm->sq_ass_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return -1;
                    PyErr_Clear();
                }
            }
            return sm->sq_ass_item(o, i, v);
        }
    }
#else
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_SetItem(o, i, v);
    }
#endif
    (void)wraparound;
    (void)boundscheck;
    return __Pyx_SetItemInt_Generic(o, PyLong_FromSsize_t(i), v);
}

/* AllocateExtensionType */
static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final) {
    if (is_final || likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
        allocfunc alloc_func = __Pyx_PyType_GetSlot(t, tp_alloc, allocfunc);
        return alloc_func(t, 0);
    } else {
        newfunc tp_new = __Pyx_PyType_TryGetSlot(&PyBaseObject_Type, tp_new, newfunc);
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
        if (!tp_new) {
            PyObject *new_str = PyUnicode_FromString("__new__");
            if (likely(new_str)) {
                PyObject *o = PyObject_CallMethodObjArgs((PyObject *)&PyBaseObject_Type, new_str, t, NULL);
                Py_DECREF(new_str);
                return o;
            } else
                return NULL;
        } else
    #endif
        return tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
    }
}

/* CallTypeTraverse */
#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)
#else
static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg) {
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000
    if (__Pyx_get_runtime_version() < 0x03090000) return 0;
    #endif
    if (!always_call) {
        PyTypeObject *base = __Pyx_PyObject_GetSlot(o, tp_base, PyTypeObject*);
        unsigned long flags = PyType_GetFlags(base);
        if (flags & Py_TPFLAGS_HEAPTYPE) {
            return 0;
        }
    }
    Py_VISIT((PyObject*)Py_TYPE(o));
    return 0;
}
#endif

/* FunctionExport */
static int __Pyx_ExportFunction(PyObject *api_dict, const char *name, void (*f)(void), const char *sig) {
    PyObject *cobj;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    tmp.fp = f;
    cobj = PyCapsule_New(tmp.p, sig, 0);
    if (!cobj)
        goto bad;
    if (PyDict_SetItemString(api_dict, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    return 0;
bad:
    Py_XDECREF(cobj);
    return -1;
}

/* GetApiDict */
static PyObject *__Pyx_ApiExport_GetApiDict(void) {
    PyObject *d;
    if (__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_capi, &d) == -1)
        return NULL;
    if (!d) {
        d = PyDict_New();
        if (!d)
            goto bad;
        if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_pyx_capi, d) < 0)
            goto bad;
    }
    return d;
bad:
    Py_XDECREF(d);
    return NULL;
}

/* LimitedApiGetTypeDict (used by SetItemOnTypeDict) */
#if CYTHON_COMPILING_IN_LIMITED_API
static Py_ssize_t __Pyx_GetTypeDictOffset(void) {
    PyObject *tp_dictoffset_o;
    Py_ssize_t tp_dictoffset;
    tp_dictoffset_o = PyObject_GetAttrString((PyObject*)(&PyType_Type), "__dictoffset__");
    if (unlikely(!tp_dictoffset_o)) return -1;
    tp_dictoffset = PyLong_AsSsize_t(tp_dictoffset_o);
    Py_DECREF(tp_dictoffset_o);
    if (unlikely(tp_dictoffset == 0)) {
        PyErr_SetString(
            PyExc_TypeError,
            "'type' doesn't have a dictoffset");
        return -1;
    } else if (unlikely(tp_dictoffset < 0)) {
        PyErr_SetString(
            PyExc_TypeError,
            "'type' has an unexpected negative dictoffset. "
            "Please report this as Cython bug");
        return -1;
    }
    return tp_dictoffset;
}
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp) {
    static Py_ssize_t tp_dictoffset = 0;
    if (unlikely(tp_dictoffset == 0)) {
        tp_dictoffset = __Pyx_GetTypeDictOffset();
        if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) {
            tp_dictoffset = 0; // try again next time?
            return NULL;
        }
    }
    return *(PyObject**)((char*)tp + tp_dictoffset);
}
#endif

/* SetItemOnTypeDict (used by FixUpExtensionType) */
static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) {
    int result;
    PyObject *tp_dict;
#if CYTHON_COMPILING_IN_LIMITED_API
    tp_dict = __Pyx_GetTypeDict(tp);
    if (unlikely(!tp_dict)) return -1;
#else
    tp_dict = tp->tp_dict;
#endif
    result = PyDict_SetItem(tp_dict, k, v);
    if (likely(!result)) {
        PyType_Modified(tp);
        if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) {
            PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name,  (PyObject *) tp, k, NULL);
            if (!setNameResult) return -1;
            Py_DECREF(setNameResult);
        }
    }
    return result;
}

/* FixUpExtensionType */
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
#if __PYX_LIMITED_VERSION_HEX > 0x030900B1
    CYTHON_UNUSED_VAR(spec);
    CYTHON_UNUSED_VAR(type);
    CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
#else
    const PyType_Slot *slot = spec->slots;
    int changed = 0;
#if !CYTHON_COMPILING_IN_LIMITED_API
    while (slot && slot->slot && slot->slot != Py_tp_members)
        slot++;
    if (slot && slot->slot == Py_tp_members) {
#if !CYTHON_COMPILING_IN_CPYTHON
        const
#endif  // !CYTHON_COMPILING_IN_CPYTHON)
            PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
        while (memb && memb->name) {
            if (memb->name[0] == '_' && memb->name[1] == '_') {
                if (strcmp(memb->name, "__weaklistoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_weaklistoffset = memb->offset;
                    changed = 1;
                }
                else if (strcmp(memb->name, "__dictoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_dictoffset = memb->offset;
                    changed = 1;
                }
#if CYTHON_METH_FASTCALL
                else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_vectorcall_offset = memb->offset;
                    changed = 1;
                }
#endif  // CYTHON_METH_FASTCALL
#if !CYTHON_COMPILING_IN_PYPY
                else if (strcmp(memb->name, "__module__") == 0) {
                    PyObject *descr;
                    assert(memb->type == T_OBJECT);
                    assert(memb->flags == 0 || memb->flags == READONLY);
                    descr = PyDescr_NewMember(type, memb);
                    if (unlikely(!descr))
                        return -1;
                    int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);
                    Py_DECREF(descr);
                    if (unlikely(set_item_result < 0)) {
                        return -1;
                    }
                    changed = 1;
                }
#endif  // !CYTHON_COMPILING_IN_PYPY
            }
            memb++;
        }
    }
#endif  // !CYTHON_COMPILING_IN_LIMITED_API
#if !CYTHON_COMPILING_IN_PYPY
    slot = spec->slots;
    while (slot && slot->slot && slot->slot != Py_tp_getset)
        slot++;
    if (slot && slot->slot == Py_tp_getset) {
        PyGetSetDef *getset = (PyGetSetDef*) slot->pfunc;
        while (getset && getset->name) {
            if (getset->name[0] == '_' && getset->name[1] == '_' && strcmp(getset->name, "__module__") == 0) {
                PyObject *descr = PyDescr_NewGetSet(type, getset);
                if (unlikely(!descr))
                    return -1;
                #if CYTHON_COMPILING_IN_LIMITED_API
                PyObject *pyname = PyUnicode_FromString(getset->name);
                if (unlikely(!pyname)) {
                    Py_DECREF(descr);
                    return -1;
                }
                int set_item_result = __Pyx_SetItemOnTypeDict(type, pyname, descr);
                Py_DECREF(pyname);
                #else
                CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
                int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);
                #endif
                Py_DECREF(descr);
                if (unlikely(set_item_result < 0)) {
                    return -1;
                }
                changed = 1;
            }
            ++getset;
        }
    }
#else
    CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
#endif  // !CYTHON_COMPILING_IN_PYPY
    if (changed)
        PyType_Modified(type);
#endif  // PY_VERSION_HEX > 0x030900B1
    return 0;
}

/* ValidateBasesTuple (used by PyType_Ready) */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) {
    Py_ssize_t i, n;
#if CYTHON_ASSUME_SAFE_SIZE
    n = PyTuple_GET_SIZE(bases);
#else
    n = PyTuple_Size(bases);
    if (unlikely(n < 0)) return -1;
#endif
    for (i = 1; i < n; i++)
    {
        PyTypeObject *b;
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *b0 = PySequence_GetItem(bases, i);
        if (!b0) return -1;
#elif CYTHON_ASSUME_SAFE_MACROS
        PyObject *b0 = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *b0 = PyTuple_GetItem(bases, i);
        if (!b0) return -1;
#endif
        b = (PyTypeObject*) b0;
        if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
        {
            __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b);
            PyErr_Format(PyExc_TypeError,
                "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name);
            __Pyx_DECREF_TypeName(b_name);
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
        if (dictoffset == 0)
        {
            Py_ssize_t b_dictoffset = 0;
#if CYTHON_USE_TYPE_SLOTS
            b_dictoffset = b->tp_dictoffset;
#else
            PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__");
            if (!py_b_dictoffset) goto dictoffset_return;
            b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset);
            Py_DECREF(py_b_dictoffset);
            if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
#endif
            if (b_dictoffset) {
                {
                    __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b);
                    PyErr_Format(PyExc_TypeError,
                        "extension type '%.200s' has no __dict__ slot, "
                        "but base type '" __Pyx_FMT_TYPENAME "' has: "
                        "either add 'cdef dict __dict__' to the extension type "
                        "or add '__slots__ = [...]' to the base type",
                        type_name, b_name);
                    __Pyx_DECREF_TypeName(b_name);
                }
#if !CYTHON_USE_TYPE_SLOTS
              dictoffset_return:
#endif
#if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(b0);
#endif
                return -1;
            }
        }
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(b0);
#endif
    }
    return 0;
}
#endif

/* PyType_Ready */
CYTHON_UNUSED static int __Pyx_PyType_HasMultipleInheritance(PyTypeObject *t) {
    while (t) {
        PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
        if (bases) {
            return 1;
        }
        t = __Pyx_PyType_GetSlot(t, tp_base, PyTypeObject*);
    }
    return 0;
}
static int __Pyx_PyType_Ready(PyTypeObject *t) {
#if CYTHON_USE_TYPE_SPECS || !CYTHON_COMPILING_IN_CPYTHON || defined(PYSTON_MAJOR_VERSION)
    (void)__Pyx_PyObject_CallMethod0;
#if CYTHON_USE_TYPE_SPECS
    (void)__Pyx_validate_bases_tuple;
#endif
    return PyType_Ready(t);
#else
    int r;
    if (!__Pyx_PyType_HasMultipleInheritance(t)) {
        return PyType_Ready(t);
    }
    PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
    if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1))
        return -1;
#if !defined(PYSTON_MAJOR_VERSION)
    {
        int gc_was_enabled;
    #if PY_VERSION_HEX >= 0x030A00b1
        gc_was_enabled = PyGC_Disable();
        (void)__Pyx_PyObject_CallMethod0;
    #else
        PyObject *ret, *py_status;
        PyObject *gc = NULL;
        #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) &&\
                !CYTHON_COMPILING_IN_GRAAL
        gc = PyImport_GetModule(__pyx_mstate_global->__pyx_kp_u_gc);
        #endif
        if (unlikely(!gc)) gc = PyImport_Import(__pyx_mstate_global->__pyx_kp_u_gc);
        if (unlikely(!gc)) return -1;
        py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_isenabled);
        if (unlikely(!py_status)) {
            Py_DECREF(gc);
            return -1;
        }
        gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
        Py_DECREF(py_status);
        if (gc_was_enabled > 0) {
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_disable);
            if (unlikely(!ret)) {
                Py_DECREF(gc);
                return -1;
            }
            Py_DECREF(ret);
        } else if (unlikely(gc_was_enabled == -1)) {
            Py_DECREF(gc);
            return -1;
        }
    #endif
        t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
#if PY_VERSION_HEX >= 0x030A0000
        t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
#endif
#else
        (void)__Pyx_PyObject_CallMethod0;
#endif
    r = PyType_Ready(t);
#if !defined(PYSTON_MAJOR_VERSION)
        t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
    #if PY_VERSION_HEX >= 0x030A00b1
        if (gc_was_enabled)
            PyGC_Enable();
    #else
        if (gc_was_enabled) {
            PyObject *tp, *v, *tb;
            PyErr_Fetch(&tp, &v, &tb);
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_enable);
            if (likely(ret || r == -1)) {
                Py_XDECREF(ret);
                PyErr_Restore(tp, v, tb);
            } else {
                Py_XDECREF(tp);
                Py_XDECREF(v);
                Py_XDECREF(tb);
                r = -1;
            }
        }
        Py_DECREF(gc);
    #endif
    }
#endif
    return r;
#endif
}

/* DelItemOnTypeDict (used by SetupReduce) */
static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k) {
    int result;
    PyObject *tp_dict;
#if CYTHON_COMPILING_IN_LIMITED_API
    tp_dict = __Pyx_GetTypeDict(tp);
    if (unlikely(!tp_dict)) return -1;
#else
    tp_dict = tp->tp_dict;
#endif
    result = PyDict_DelItem(tp_dict, k);
    if (likely(!result)) PyType_Modified(tp);
    return result;
}

/* SetupReduce */
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_mstate_global->__pyx_n_u_name_3);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_getstate = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
    PyObject *getstate = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_getstate);
#else
    getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_getstate);
    if (!getstate && PyErr_Occurred()) {
        goto __PYX_BAD;
    }
#endif
    if (getstate) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate);
#else
        object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate);
        if (!object_getstate && PyErr_Occurred()) {
            goto __PYX_BAD;
        }
#endif
        if (object_getstate != getstate) {
            goto __PYX_GOOD;
        }
    }
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_mstate_global->__pyx_n_u_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython);
            if (likely(reduce_cython)) {
                ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_mstate_global->__pyx_n_u_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred()) {
        __Pyx_TypeName type_obj_name =
            __Pyx_PyType_GetFullyQualifiedName((PyTypeObject*)type_obj);
        PyErr_Format(PyExc_RuntimeError,
            "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name);
        __Pyx_DECREF_TypeName(type_obj_name);
    }
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
    Py_XDECREF(object_getstate);
    Py_XDECREF(getstate);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}

/* SetVTable */
static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) {
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
    if (unlikely(!ob))
        goto bad;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0))
#else
    if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0))
#endif
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* GetVTable (used by MergeVTables) */
static void* __Pyx_GetVtable(PyTypeObject *type) {
    void* ptr;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_mstate_global->__pyx_n_u_pyx_vtable);
#else
    PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable);
#endif
    if (!ob)
        goto bad;
    ptr = PyCapsule_GetPointer(ob, 0);
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* MergeVTables */
static int __Pyx_MergeVtables(PyTypeObject *type) {
    int i=0;
    Py_ssize_t size;
    void** base_vtables;
    __Pyx_TypeName tp_base_name = NULL;
    __Pyx_TypeName base_name = NULL;
    void* unknown = (void*)-1;
    PyObject* bases = __Pyx_PyType_GetSlot(type, tp_bases, PyObject*);
    int base_depth = 0;
    {
        PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
        while (base) {
            base_depth += 1;
            base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*);
        }
    }
    base_vtables = (void**) PyMem_Malloc(sizeof(void*) * (size_t)(base_depth + 1));
    base_vtables[0] = unknown;
#if CYTHON_COMPILING_IN_LIMITED_API
    size = PyTuple_Size(bases);
    if (size < 0) goto other_failure;
#else
    size = PyTuple_GET_SIZE(bases);
#endif
    for (i = 1; i < size; i++) {
        PyObject *basei;
        void* base_vtable;
#if CYTHON_AVOID_BORROWED_REFS
        basei = PySequence_GetItem(bases, i);
        if (unlikely(!basei)) goto other_failure;
#elif !CYTHON_ASSUME_SAFE_MACROS
        basei = PyTuple_GetItem(bases, i);
        if (unlikely(!basei)) goto other_failure;
#else
        basei = PyTuple_GET_ITEM(bases, i);
#endif
        base_vtable = __Pyx_GetVtable((PyTypeObject*)basei);
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(basei);
#endif
        if (base_vtable != NULL) {
            int j;
            PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
            for (j = 0; j < base_depth; j++) {
                if (base_vtables[j] == unknown) {
                    base_vtables[j] = __Pyx_GetVtable(base);
                    base_vtables[j + 1] = unknown;
                }
                if (base_vtables[j] == base_vtable) {
                    break;
                } else if (base_vtables[j] == NULL) {
                    goto bad;
                }
                base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*);
            }
        }
    }
    PyErr_Clear();
    PyMem_Free(base_vtables);
    return 0;
bad:
    {
        PyTypeObject* basei = NULL;
        PyTypeObject* tp_base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
        tp_base_name = __Pyx_PyType_GetFullyQualifiedName(tp_base);
#if CYTHON_AVOID_BORROWED_REFS
        basei = (PyTypeObject*)PySequence_GetItem(bases, i);
        if (unlikely(!basei)) goto really_bad;
#elif !CYTHON_ASSUME_SAFE_MACROS
        basei = (PyTypeObject*)PyTuple_GetItem(bases, i);
        if (unlikely(!basei)) goto really_bad;
#else
        basei = (PyTypeObject*)PyTuple_GET_ITEM(bases, i);
#endif
        base_name = __Pyx_PyType_GetFullyQualifiedName(basei);
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(basei);
#endif
    }
    PyErr_Format(PyExc_TypeError,
        "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name);
#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
really_bad: // bad has failed!
#endif
    __Pyx_DECREF_TypeName(tp_base_name);
    __Pyx_DECREF_TypeName(base_name);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
other_failure:
#endif
    PyMem_Free(base_vtables);
    return -1;
}

/* TypeImport */
#ifndef __PYX_HAVE_RT_ImportType_3_2_4
#define __PYX_HAVE_RT_ImportType_3_2_4
static PyTypeObject *__Pyx_ImportType_3_2_4(PyObject *module, const char *module_name, const char *class_name,
    size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size)
{
    PyObject *result = 0;
    Py_ssize_t basicsize;
    Py_ssize_t itemsize;
#if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API)
    PyObject *py_basicsize;
    PyObject *py_itemsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) )
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
    itemsize = ((PyTypeObject *)result)->tp_itemsize;
#else
    if (size == 0) {
        return (PyTypeObject *)result;
    }
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
    py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
    if (!py_itemsize)
        goto bad;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if (itemsize) {
        if (size % alignment) {
            alignment = size % alignment;
        }
        if (itemsize < (Py_ssize_t)alignment)
            itemsize = (Py_ssize_t)alignment;
    }
    if ((size_t)(basicsize + itemsize) < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize+itemsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error_3_2_4 &&
            ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd-%zd from PyObject",
            module_name, class_name, size, basicsize, basicsize+itemsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_2_4 && (size_t)basicsize > size) {
        if (PyErr_WarnFormat(NULL, 0,
                "%.200s.%.200s size changed, may indicate binary incompatibility. "
                "Expected %zd from C header, got %zd from PyObject",
                module_name, class_name, size, basicsize) < 0) {
            goto bad;
        }
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* PxdImportShared (used by FunctionImport) */
#ifndef __PYX_HAVE_RT_ImportFromPxd_3_2_4
#define __PYX_HAVE_RT_ImportFromPxd_3_2_4
static int __Pyx_ImportFromPxd_3_2_4(PyObject *module, const char *name, void **p, const char *sig, const char *what) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    d = PyObject_GetAttrString(module, "__pyx_capi__");
    if (!d)
        goto bad;
#if (defined(Py_LIMITED_API) && Py_LIMITED_API >= 0x030d0000) || (!defined(Py_LIMITED_API) && PY_VERSION_HEX >= 0x030d0000)
    PyDict_GetItemStringRef(d, name, &cobj);
#else
    cobj = PyDict_GetItemString(d, name);
    Py_XINCREF(cobj);
#endif
    if (!cobj) {
        PyErr_Format(PyExc_ImportError,
            "%.200s does not export expected C %.8s %.200s",
                PyModule_GetName(module), what, name);
        goto bad;
    }
    if (!PyCapsule_IsValid(cobj, sig)) {
        PyErr_Format(PyExc_TypeError,
            "C %.8s %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             what, PyModule_GetName(module), name, sig, PyCapsule_GetName(cobj));
        goto bad;
    }
    *p = PyCapsule_GetPointer(cobj, sig);
    if (!(*p))
        goto bad;
    Py_DECREF(d);
    Py_DECREF(cobj);
    return 0;
bad:
    Py_XDECREF(d);
    Py_XDECREF(cobj);
    return -1;
}
#endif

/* FunctionImport */
#ifndef __PYX_HAVE_RT_ImportFunction_3_2_4
#define __PYX_HAVE_RT_ImportFunction_3_2_4
static int __Pyx_ImportFunction_3_2_4(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    int result = __Pyx_ImportFromPxd_3_2_4(module, funcname, &tmp.p, sig, "function");
    if (result == 0) {
        *f = tmp.fp;
    }
    return result;
}
#endif

/* Py3UpdateBases */
static PyObject*
__Pyx_PEP560_update_bases(PyObject *bases)
{
    Py_ssize_t i, j, size_bases;
    PyObject *base = NULL, *meth, *new_base, *result, *new_bases = NULL;
#if CYTHON_ASSUME_SAFE_SIZE
    size_bases = PyTuple_GET_SIZE(bases);
#else
    size_bases = PyTuple_Size(bases);
    if (size_bases < 0) return NULL;
#endif
    for (i = 0; i < size_bases; i++) {
#if CYTHON_AVOID_BORROWED_REFS
        Py_CLEAR(base);
#endif
#if CYTHON_ASSUME_SAFE_MACROS
        base = PyTuple_GET_ITEM(bases, i);
#else
        base = PyTuple_GetItem(bases, i);
        if (!base) goto error;
#endif
#if CYTHON_AVOID_BORROWED_REFS
        Py_INCREF(base);
#endif
        if (PyType_Check(base)) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_mstate_global->__pyx_n_u_mro_entries);
        if (!meth && PyErr_Occurred()) {
            goto error;
        }
        if (!meth) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        new_base = __Pyx_PyObject_CallOneArg(meth, bases);
        Py_DECREF(meth);
        if (!new_base) {
            goto error;
        }
        if (!PyTuple_Check(new_base)) {
            PyErr_SetString(PyExc_TypeError,
                            "__mro_entries__ must return a tuple");
            Py_DECREF(new_base);
            goto error;
        }
        if (!new_bases) {
            if (!(new_bases = PyList_New(i))) {
                goto error;
            }
            for (j = 0; j < i; j++) {
                PyObject *base_from_list;
#if CYTHON_ASSUME_SAFE_MACROS
                base_from_list = PyTuple_GET_ITEM(bases, j);
                PyList_SET_ITEM(new_bases, j, base_from_list);
                Py_INCREF(base_from_list);
#else
                base_from_list = PyTuple_GetItem(bases, j);
                if (!base_from_list) goto error;
                Py_INCREF(base_from_list);
                if (PyList_SetItem(new_bases, j, base_from_list) < 0) goto error;
#endif
            }
        }
#if CYTHON_ASSUME_SAFE_SIZE
        j = PyList_GET_SIZE(new_bases);
#else
        j = PyList_Size(new_bases);
        if (j < 0) goto error;
#endif
        if (PyList_SetSlice(new_bases, j, j, new_base) < 0) {
            goto error;
        }
        Py_DECREF(new_base);
    }
    if (!new_bases) {
        Py_INCREF(bases);
        return bases;
    }
    result = PyList_AsTuple(new_bases);
    Py_DECREF(new_bases);
#if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(base);
#endif
    return result;
error:
    Py_XDECREF(new_bases);
#if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(base);
#endif
    return NULL;
}

/* CalculateMetaclass */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases;
#if CYTHON_ASSUME_SAFE_SIZE
    nbases = PyTuple_GET_SIZE(bases);
#else
    nbases = PyTuple_Size(bases);
    if (nbases < 0) return NULL;
#endif
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
#if CYTHON_ASSUME_SAFE_MACROS
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *tmp = PyTuple_GetItem(bases, i);
        if (!tmp) return NULL;
#endif
        tmptype = Py_TYPE(tmp);
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
        metaclass = &PyType_Type;
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* dict_setdefault (used by FetchCommonType) */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) {
    PyObject* value;
#if __PYX_LIMITED_VERSION_HEX >= 0x030F0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4)
    PyDict_SetDefaultRef(d, key, default_value, &value);
#elif CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    PyObject *args[] = {d, key, default_value};
    value = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_n_u_setdefault, args, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#elif CYTHON_COMPILING_IN_LIMITED_API
    value = PyObject_CallMethodObjArgs(d, __pyx_mstate_global->__pyx_n_u_setdefault, key, default_value, NULL);
#else
    value = PyDict_SetDefault(d, key, default_value);
    if (unlikely(!value)) return NULL;
    Py_INCREF(value);
#endif
    return value;
}

/* AddModuleRef (used by FetchSharedCythonModule) */
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  static PyObject *__Pyx_PyImport_AddModuleObjectRef(PyObject *name) {
      PyObject *module_dict = PyImport_GetModuleDict();
      PyObject *m;
      if (PyMapping_GetOptionalItem(module_dict, name, &m) < 0) {
          return NULL;
      }
      if (m != NULL && PyModule_Check(m)) {
          return m;
      }
      Py_XDECREF(m);
      m = PyModule_NewObject(name);
      if (m == NULL)
          return NULL;
      if (PyDict_CheckExact(module_dict)) {
          PyObject *new_m;
          (void)PyDict_SetDefaultRef(module_dict, name, m, &new_m);
          Py_DECREF(m);
          return new_m;
      } else {
           if (PyObject_SetItem(module_dict, name, m) != 0) {
                Py_DECREF(m);
                return NULL;
            }
            return m;
      }
  }
  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *py_name = PyUnicode_FromString(name);
      if (!py_name) return NULL;
      PyObject *module = __Pyx_PyImport_AddModuleObjectRef(py_name);
      Py_DECREF(py_name);
      return module;
  }
#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#else
  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *module = PyImport_AddModule(name);
      Py_XINCREF(module);
      return module;
  }
#endif

/* FetchSharedCythonModule (used by FetchCommonType) */
static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
    return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME);
}

/* FetchCommonType (used by CommonTypesMetaclass) */
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
static PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases);
    if (result && metaclass) {
        PyObject *old_tp = (PyObject*)Py_TYPE(result);
    Py_INCREF((PyObject*)metaclass);
#if __PYX_LIMITED_VERSION_HEX >= 0x03090000
        Py_SET_TYPE(result, metaclass);
#else
        result->ob_type = metaclass;
#endif
        Py_DECREF(old_tp);
    }
    return result;
}
#else
#define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b)
#endif
static int __Pyx_VerifyCachedType(PyObject *cached_type,
                               const char *name,
                               Py_ssize_t expected_basicsize) {
    Py_ssize_t basicsize;
    if (!PyType_Check(cached_type)) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s is not a type object", name);
        return -1;
    }
    if (expected_basicsize == 0) {
        return 0; // size is inherited, nothing useful to check
    }
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_basicsize;
    py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
    if (unlikely(!py_basicsize)) return -1;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = NULL;
    if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1;
#else
    basicsize = ((PyTypeObject*) cached_type)->tp_basicsize;
#endif
    if (basicsize != expected_basicsize) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s has the wrong size, try recompiling",
            name);
        return -1;
    }
    return 0;
}
static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;
    int get_item_ref_result;
    const char* object_name = strrchr(spec->name, '.');
    object_name = object_name ? object_name+1 : spec->name;
    py_object_name = PyUnicode_FromString(object_name);
    if (!py_object_name) return NULL;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) goto done;
    abi_module_dict = PyModule_GetDict(abi_module);
    if (!abi_module_dict) goto done;
    get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type);
    if (get_item_ref_result == 1) {
        if (__Pyx_VerifyCachedType(
              cached_type,
              object_name,
              spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    } else if (unlikely(get_item_ref_result == -1)) {
        goto bad;
    }
    cached_type = __Pyx_PyType_FromMetaclass(
        metaclass,
        CYTHON_USE_MODULE_STATE ? module : abi_module,
        spec, bases);
    if (unlikely(!cached_type)) goto bad;
    if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
    new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type);
    if (unlikely(new_cached_type != cached_type)) {
        if (unlikely(!new_cached_type)) goto bad;
        Py_DECREF(cached_type);
        cached_type = new_cached_type;
        if (__Pyx_VerifyCachedType(
                cached_type,
                object_name,
                spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    } else {
        Py_DECREF(new_cached_type);
    }
done:
    Py_XDECREF(abi_module);
    Py_DECREF(py_object_name);
    assert(cached_type == NULL || PyType_Check(cached_type));
    return (PyTypeObject *) cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CommonTypesMetaclass (used by CythonFunctionShared) */
static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
    return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
}
#if __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject* __pyx_CommonTypesMetaclass_call(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *args, CYTHON_UNUSED PyObject *kwds) {
    PyErr_SetString(PyExc_TypeError, "Cannot instantiate Cython internal types");
    return NULL;
}
static int __pyx_CommonTypesMetaclass_setattr(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *attr, CYTHON_UNUSED PyObject *value) {
    PyErr_SetString(PyExc_TypeError, "Cython internal types are immutable");
    return -1;
}
#endif
static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {
    {"__module__", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL},
    {0, 0, 0, 0, 0}
};
static PyType_Slot __pyx_CommonTypesMetaclass_slots[] = {
    {Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset},
    #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
    {Py_tp_call, (void*)__pyx_CommonTypesMetaclass_call},
    {Py_tp_new, (void*)__pyx_CommonTypesMetaclass_call},
    {Py_tp_setattro, (void*)__pyx_CommonTypesMetaclass_setattr},
    #endif
    {0, 0}
};
static PyType_Spec __pyx_CommonTypesMetaclass_spec = {
    __PYX_TYPE_MODULE_PREFIX "_common_types_metatype",
    0,
    0,
    Py_TPFLAGS_IMMUTABLETYPE |
    Py_TPFLAGS_DISALLOW_INSTANTIATION |
    Py_TPFLAGS_DEFAULT,
    __pyx_CommonTypesMetaclass_slots
};
static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    PyObject *bases = PyTuple_Pack(1, &PyType_Type);
    if (unlikely(!bases)) {
        return -1;
    }
    mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
    Py_DECREF(bases);
    if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
        return -1;
    }
    return 0;
}

/* PyMethodNew (used by CythonFunctionShared) */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    PyObject *result;
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    {
        PyObject *args[] = {func, self};
        result = PyObject_Vectorcall(__pyx_mstate_global->__Pyx_CachedMethodType, args, 2, NULL);
    }
    #else
    result = PyObject_CallFunctionObjArgs(__pyx_mstate_global->__Pyx_CachedMethodType, func, self, NULL);
    #endif
    return result;
}
#else
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    return PyMethod_New(func, self);
}
#endif

/* PyVectorcallFastCallDict (used by CythonFunctionShared) */
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    PyObject *res = NULL;
    PyObject *kwnames;
    PyObject **newargs;
    PyObject **kwvalues;
    Py_ssize_t i;
    #if CYTHON_AVOID_BORROWED_REFS
    PyObject *pos;
    #else
    Py_ssize_t pos;
    #endif
    size_t j;
    PyObject *key, *value;
    unsigned long keys_are_strings;
    #if !CYTHON_ASSUME_SAFE_SIZE
    Py_ssize_t nkw = PyDict_Size(kw);
    if (unlikely(nkw == -1)) return NULL;
    #else
    Py_ssize_t nkw = PyDict_GET_SIZE(kw);
    #endif
    newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
    if (unlikely(newargs == NULL)) {
        PyErr_NoMemory();
        return NULL;
    }
    for (j = 0; j < nargs; j++) newargs[j] = args[j];
    kwnames = PyTuple_New(nkw);
    if (unlikely(kwnames == NULL)) {
        PyMem_Free(newargs);
        return NULL;
    }
    kwvalues = newargs + nargs;
    pos = 0;
    i = 0;
    keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
    while (__Pyx_PyDict_NextRef(kw, &pos, &key, &value)) {
        keys_are_strings &=
        #if CYTHON_COMPILING_IN_LIMITED_API
            PyType_GetFlags(Py_TYPE(key));
        #else
            Py_TYPE(key)->tp_flags;
        #endif
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(PyTuple_SetItem(kwnames, i, key) < 0)) goto cleanup;
        #else
        PyTuple_SET_ITEM(kwnames, i, key);
        #endif
        kwvalues[i] = value;
        i++;
    }
    if (unlikely(!keys_are_strings)) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        goto cleanup;
    }
    res = vc(func, newargs, nargs, kwnames);
cleanup:
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(pos);
    #endif
    Py_DECREF(kwnames);
    for (i = 0; i < nkw; i++)
        Py_DECREF(kwvalues[i]);
    PyMem_Free(newargs);
    return res;
}
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    Py_ssize_t kw_size =
        likely(kw == NULL) ?
        0 :
#if !CYTHON_ASSUME_SAFE_SIZE
        PyDict_Size(kw);
#else
        PyDict_GET_SIZE(kw);
#endif
    if (kw_size == 0) {
        return vc(func, args, nargs, NULL);
    }
#if !CYTHON_ASSUME_SAFE_SIZE
    else if (unlikely(kw_size == -1)) {
        return NULL;
    }
#endif
    return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
}
#endif

/* CythonFunctionShared (used by CythonFunction) */
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunctionNoMethod(PyObject *func, void (*cfunc)(void)) {
    if (__Pyx_CyFunction_Check(func)) {
        return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
    } else if (PyCFunction_Check(func)) {
        return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
    if ((PyObject*)Py_TYPE(func) == __pyx_mstate_global->__Pyx_CachedMethodType) {
        int result;
        PyObject *newFunc = PyObject_GetAttr(func, __pyx_mstate_global->__pyx_n_u_func_2);
        if (unlikely(!newFunc)) {
            PyErr_Clear(); // It's only an optimization, so don't throw an error
            return 0;
        }
        result = __Pyx__IsSameCyOrCFunctionNoMethod(newFunc, cfunc);
        Py_DECREF(newFunc);
        return result;
    }
    return __Pyx__IsSameCyOrCFunctionNoMethod(func, cfunc);
}
#else
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
    if (PyMethod_Check(func)) {
        func = PyMethod_GET_FUNCTION(func);
    }
    return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
}
#endif
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_Py_XDECREF_SET(
        __Pyx_CyFunction_GetClassObj(f),
            ((classobj) ? __Pyx_NewRef(classobj) : NULL));
#else
    __Pyx_Py_XDECREF_SET(
        ((PyCMethodObject *) (f))->mm_class,
        (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
#endif
}
static PyObject *
__Pyx_CyFunction_get_doc_locked(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_doc == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
        if (unlikely(!op->func_doc)) return NULL;
#else
        if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
            op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
#endif
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) {
    PyObject *result;
    CYTHON_UNUSED_VAR(closure);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_doc_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_doc, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name_locked(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_name == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_name = PyObject_GetAttrString(op->func, "__name__");
#else
        op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
{
    PyObject *result = NULL;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_name_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_name, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    PyObject *result;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    Py_INCREF(op->func_qualname);
    result = op->func_qualname;
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_qualname, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
#endif
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(op);
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = NULL;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_defaults_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_kwdefaults_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value || value == Py_None) {
        value = NULL;
    } else if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_annotations, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
    PyObject *result;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_annotations_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {
    int is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
    if (is_coroutine) {
        PyObject *is_coroutine_value, *module, *fromlist, *marker = __pyx_mstate_global->__pyx_n_u_is_coroutine;
        fromlist = PyList_New(1);
        if (unlikely(!fromlist)) return NULL;
        Py_INCREF(marker);
#if CYTHON_ASSUME_SAFE_MACROS
        PyList_SET_ITEM(fromlist, 0, marker);
#else
        if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
            Py_DECREF(marker);
            Py_DECREF(fromlist);
            return NULL;
        }
#endif
        module = PyImport_ImportModuleLevelObject(__pyx_mstate_global->__pyx_n_u_asyncio_coroutines, NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
        if (unlikely(!module)) goto ignore;
        is_coroutine_value = __Pyx_PyObject_GetAttrStr(module, marker);
        Py_DECREF(module);
        if (likely(is_coroutine_value)) {
            return is_coroutine_value;
        }
ignore:
        PyErr_Clear();
    }
    return __Pyx_PyBool_FromLong(is_coroutine);
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
    PyObject *result;
    CYTHON_UNUSED_VAR(context);
    if (op->func_is_coroutine) {
        return __Pyx_NewRef(op->func_is_coroutine);
    }
    result = __Pyx_CyFunction_get_is_coroutine_value(op);
    if (unlikely(!result))
        return NULL;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    if (op->func_is_coroutine) {
        Py_DECREF(result);
        result = __Pyx_NewRef(op->func_is_coroutine);
    } else {
        op->func_is_coroutine = __Pyx_NewRef(result);
    }
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static void __Pyx_CyFunction_raise_argument_count_error(__pyx_CyFunctionObject *func, const char* message, Py_ssize_t size) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
    if (!py_name) return;
    PyErr_Format(PyExc_TypeError,
        "%.200S() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
        py_name, message, size);
    Py_DECREF(py_name);
#else
    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
    PyErr_Format(PyExc_TypeError,
        "%.200s() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
        name, message, size);
#endif
}
static void __Pyx_CyFunction_raise_type_error(__pyx_CyFunctionObject *func, const char* message) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
    if (!py_name) return;
    PyErr_Format(PyExc_TypeError,
        "%.200S() %s",
        py_name, message);
    Py_DECREF(py_name);
#else
    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
    PyErr_Format(PyExc_TypeError,
        "%.200s() %s",
        name, message);
#endif
}
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *
__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_GetAttrString(op->func, "__module__");
}
static int
__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_SetAttrString(op->func, "__module__", value);
}
#endif
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {"func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {"__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {"func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {"__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {"__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    {"func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
    {"__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
#else
    {"func_dict", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
    {"__dict__", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
#endif
    {"func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {"__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {"func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {"__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {"func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {"__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {"func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {"__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {"__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {"__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {"_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
#if !CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    {"__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
#endif
#if CYTHON_METH_FASTCALL
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
#else
    {"__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
#else
    {"__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
#endif
#endif
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
{
    PyObject *result = NULL;
    CYTHON_UNUSED_VAR(args);
    __Pyx_BEGIN_CRITICAL_SECTION(m);
    Py_INCREF(m->func_qualname);
    result = m->func_qualname;
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
#if !CYTHON_COMPILING_IN_LIMITED_API
    PyCFunctionObject *cf = (PyCFunctionObject*) op;
#endif
    if (unlikely(op == NULL))
        return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
    if (unlikely(!op->func)) return NULL;
#endif
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
#if !CYTHON_COMPILING_IN_LIMITED_API
    cf->m_ml = ml;
    cf->m_self = (PyObject *) op;
#endif
    Py_XINCREF(closure);
    op->func_closure = closure;
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_XINCREF(module);
    cf->m_module = module;
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_dict = NULL;
#endif
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_classobj = NULL;
#else
    ((PyCMethodObject*)op)->mm_class = NULL;
#endif
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    op->func_is_coroutine = NULL;
#if CYTHON_METH_FASTCALL
    switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
    case METH_NOARGS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
        break;
    case METH_O:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
        break;
    case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
        break;
    case METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
        break;
    case METH_VARARGS | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = NULL;
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        Py_DECREF(op);
        return NULL;
    }
#endif
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func);
#else
    Py_CLEAR(((PyCFunctionObject*)m)->m_module);
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func_dict);
#elif PY_VERSION_HEX < 0x030d0000
    _PyObject_ClearManagedDict((PyObject*)m);
#else
    PyObject_ClearManagedDict((PyObject*)m);
#endif
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
#if PY_VERSION_HEX < 0x030900B1
    Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
#else
    {
        PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
        ((PyCMethodObject *) (m))->mm_class = NULL;
        Py_XDECREF(cls);
    }
#endif
#endif
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    Py_CLEAR(m->func_is_coroutine);
    Py_CLEAR(m->defaults);
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    __Pyx_PyHeapTypeObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    {
        int e = __Pyx_call_type_traverse((PyObject*)m, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func);
#else
    Py_VISIT(((PyCFunctionObject*)m)->m_module);
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func_dict);
#else
    {
        int e =
#if PY_VERSION_HEX < 0x030d0000
            _PyObject_VisitManagedDict
#else
            PyObject_VisitManagedDict
#endif
                ((PyObject*)m, visit, arg);
        if (e != 0) return e;
    }
#endif
    __Pyx_VISIT_CONST(m->func_name);
    __Pyx_VISIT_CONST(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    __Pyx_VISIT_CONST(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
#endif
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    Py_VISIT(m->func_is_coroutine);
    Py_VISIT(m->defaults);
    return 0;
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
    PyObject *repr;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    repr = PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
    __Pyx_END_CRITICAL_SECTION();
    return repr;
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
    PyCFunction meth;
    int flags;
    meth = PyCFunction_GetFunction(f);
    if (unlikely(!meth)) return NULL;
    flags = PyCFunction_GetFlags(f);
    if (unlikely(flags < 0)) return NULL;
#else
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    int flags = f->m_ml->ml_flags;
#endif
    Py_ssize_t size;
    switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_SIZE
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 0))
                return (*meth)(self, NULL);
            __Pyx_CyFunction_raise_argument_count_error(
                (__pyx_CyFunctionObject*)func,
                "takes no arguments", size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_SIZE
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            __Pyx_CyFunction_raise_argument_count_error(
                (__pyx_CyFunctionObject*)func,
                "takes exactly one argument", size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        return NULL;
    }
    __Pyx_CyFunction_raise_type_error(
        (__pyx_CyFunctionObject*)func, "takes no keyword arguments");
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *self, *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
    if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
    self = ((PyCFunctionObject*)func)->m_self;
#endif
    result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
    return result;
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
     __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
    if (vc) {
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
        return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
#else
        (void) &__Pyx_PyVectorcall_FastCallDict;
        return PyVectorcall_Call(func, args, kw);
#endif
    }
#endif
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
#if CYTHON_ASSUME_SAFE_SIZE
        argc = PyTuple_GET_SIZE(args);
#else
        argc = PyTuple_Size(args);
        if (unlikely(argc < 0)) return NULL;
#endif
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            PyErr_Format(PyExc_TypeError,
                         "unbound method %.200S() needs an argument",
                         cyfunc->func_qualname);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
{
    int ret = 0;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        if (unlikely(nargs < 1)) {
            __Pyx_CyFunction_raise_type_error(
                cyfunc, "needs an argument");
            return -1;
        }
        ret = 1;
    }
    if (unlikely(kwnames) && unlikely(__Pyx_PyTuple_GET_SIZE(kwnames))) {
        __Pyx_CyFunction_raise_type_error(
            cyfunc, "takes no keyword arguments");
        return -1;
    }
    return ret;
}
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 0)) {
        __Pyx_CyFunction_raise_argument_count_error(
            cyfunc, "takes no arguments", nargs);
        return NULL;
    }
    return meth(self, NULL);
}
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 1)) {
        __Pyx_CyFunction_raise_argument_count_error(
            cyfunc, "takes exactly one argument", nargs);
        return NULL;
    }
    return meth(self, args[0]);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))meth)(self, args, nargs, kwnames);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    #if PY_VERSION_HEX < 0x030e00A6
    size_t nargs_value = (size_t) nargs;
    #else
    Py_ssize_t nargs_value = nargs;
    #endif
    return ((__Pyx_PyCMethod)(void(*)(void))meth)(self, cls, args, nargs_value, kwnames);
}
#endif
static PyType_Slot __pyx_CyFunctionType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
    {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
    {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
    {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
    {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
    {Py_tp_methods, (void *)__pyx_CyFunction_methods},
    {Py_tp_members, (void *)__pyx_CyFunction_members},
    {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
    {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
    {0, 0},
};
static PyType_Spec __pyx_CyFunctionType_spec = {
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if CYTHON_METH_FASTCALL
#if defined(Py_TPFLAGS_HAVE_VECTORCALL)
    Py_TPFLAGS_HAVE_VECTORCALL |
#elif defined(_Py_TPFLAGS_HAVE_VECTORCALL)
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
#endif // CYTHON_METH_FASTCALL
#if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_TPFLAGS_MANAGED_DICT |
#endif
    Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION |
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    __pyx_CyFunctionType_slots
};
static int __pyx_CyFunction_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(
        mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CyFunctionType_spec, NULL);
    if (unlikely(mstate->__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_CallObject((PyObject*)defaults_type, NULL); // _PyObject_New(defaults_type);
    if (unlikely(!m->defaults))
        return NULL;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_mstate_global->__pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* Py3ClassCreate */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_mstate_global->__pyx_n_u_prepare);
        if (prep) {
            PyObject *pargs[3] = {NULL, name, bases};
            ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
            Py_DECREF(prep);
        } else {
            if (unlikely(PyErr_Occurred()))
                return NULL;
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_module, modname) < 0)) goto bad;
    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_qualname, qualname) < 0)) goto bad;
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result;
    PyObject *owned_metaclass = NULL;
    PyObject *margs[4] = {NULL, name, bases, dict};
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_mstate_global->__pyx_n_u_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
    Py_XDECREF(owned_metaclass);
    return result;
}

/* GetNameInClass */
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name) {
    PyObject *result;
    PyObject *dict;
    assert(PyType_Check(nmspace));
#if CYTHON_USE_TYPE_SLOTS
    dict = ((PyTypeObject*)nmspace)->tp_dict;
    Py_XINCREF(dict);
#else
    dict = PyObject_GetAttr(nmspace, __pyx_mstate_global->__pyx_n_u_dict);
#endif
    if (likely(dict)) {
        result = PyObject_GetItem(dict, name);
        Py_DECREF(dict);
        if (result) {
            return result;
        }
    }
    PyErr_Clear();
    __Pyx_GetModuleGlobalNameUncached(result, name);
    return result;
}

/* CLineInTraceback (used by AddTraceback) */
#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
#define __Pyx_PyProbablyModule_GetDict(o) __Pyx_XNewRef(PyModule_GetDict(o))
#elif !CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyProbablyModule_GetDict(o) PyObject_GenericGetDict(o, NULL);
#else
PyObject* __Pyx_PyProbablyModule_GetDict(PyObject *o) {
    PyObject **dict_ptr = _PyObject_GetDictPtr(o);
    return dict_ptr ? __Pyx_XNewRef(*dict_ptr) : NULL;
}
#endif
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
    PyObject *use_cline = NULL;
    PyObject *ptype, *pvalue, *ptraceback;
    PyObject *cython_runtime_dict;
    CYTHON_MAYBE_UNUSED_VAR(tstate);
    if (unlikely(!__pyx_mstate_global->__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
    cython_runtime_dict = __Pyx_PyProbablyModule_GetDict(__pyx_mstate_global->__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, cython_runtime_dict,
            __Pyx_PyDict_SetDefault(cython_runtime_dict, __pyx_mstate_global->__pyx_n_u_cline_in_traceback, Py_False))
    }
    if (use_cline == NULL || use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    Py_XDECREF(use_cline);
    Py_XDECREF(cython_runtime_dict);
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache (used by AddTraceback) */
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static __Pyx_CachedCodeObjectType *__pyx__find_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line) {
    __Pyx_CachedCodeObjectType* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!code_cache->entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
    if (unlikely(pos >= code_cache->count) || unlikely(code_cache->entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = code_cache->entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line) {
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
    (void)__pyx__find_code_object;
    return NULL; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just miss.
#else
    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_nonatomic_int_type old_count = __pyx_atomic_incr_acq_rel(&code_cache->accessor_count);
    if (old_count < 0) {
        __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
        return NULL;
    }
#endif
    __Pyx_CachedCodeObjectType *result = __pyx__find_code_object(code_cache, code_line);
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
#endif
    return result;
#endif
}
static void __pyx__insert_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line, __Pyx_CachedCodeObjectType* code_object)
{
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = code_cache->entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            code_cache->entries = entries;
            code_cache->max_count = 64;
            code_cache->count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
    if ((pos < code_cache->count) && unlikely(code_cache->entries[pos].code_line == code_line)) {
        __Pyx_CachedCodeObjectType* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_INCREF(code_object);
        Py_DECREF(tmp);
        return;
    }
    if (code_cache->count == code_cache->max_count) {
        int new_max = code_cache->max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            code_cache->entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        code_cache->entries = entries;
        code_cache->max_count = new_max;
    }
    for (i=code_cache->count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    code_cache->count++;
    Py_INCREF(code_object);
}
static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object) {
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
    (void)__pyx__insert_code_object;
    return; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just fail.
#else
    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_nonatomic_int_type expected = 0;
    if (!__pyx_atomic_int_cmp_exchange(&code_cache->accessor_count, &expected, INT_MIN)) {
        return;
    }
#endif
    __pyx__insert_code_object(code_cache, code_line, code_object);
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_sub(&code_cache->accessor_count, INT_MIN);
#endif
#endif
}

/* AddTraceback */
#include "compile.h"
#include "frameobject.h"
#include "traceback.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
                                                       PyObject *firstlineno, PyObject *name) {
    PyObject *replace = NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
    replace = PyObject_GetAttrString(code, "replace");
    if (likely(replace)) {
        PyObject *result = PyObject_Call(replace, __pyx_mstate_global->__pyx_empty_tuple, scratch_dict);
        Py_DECREF(replace);
        return result;
    }
    PyErr_Clear();
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
    PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
    PyObject *exc_type, *exc_value, *exc_traceback;
    int success = 0;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
    }
    PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
    code_object = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!code_object) {
        code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
        if (unlikely(!code_object)) goto bad;
        py_py_line = PyLong_FromLong(py_line);
        if (unlikely(!py_py_line)) goto bad;
        if (c_line) {
            py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        } else {
            py_funcname = PyUnicode_FromString(funcname);
        }
        if (unlikely(!py_funcname)) goto bad;
        dict = PyDict_New();
        if (unlikely(!dict)) goto bad;
        {
            PyObject *old_code_object = code_object;
            code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
            Py_DECREF(old_code_object);
        }
        if (unlikely(!code_object)) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, code_object);
    } else {
        dict = PyDict_New();
    }
    getframe = PySys_GetObject("_getframe");
    if (unlikely(!getframe)) goto bad;
    if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
    frame = PyEval_EvalCode(code_object, dict, dict);
    if (unlikely(!frame) || frame == Py_None) goto bad;
    success = 1;
  bad:
    PyErr_Restore(exc_type, exc_value, exc_traceback);
    Py_XDECREF(code_object);
    Py_XDECREF(py_py_line);
    Py_XDECREF(py_funcname);
    Py_XDECREF(dict);
    Py_XDECREF(replace);
    if (success) {
        PyTraceBack_Here(
            (struct _frame*)frame);
    }
    Py_XDECREF(frame);
}
#else
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = NULL;
    PyObject *py_funcname = NULL;
    if (c_line) {
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        funcname = PyUnicode_AsUTF8(py_funcname);
        if (!funcname) goto bad;
    }
    py_code = PyCode_NewEmpty(filename, funcname, py_line);
    Py_XDECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject *ptype, *pvalue, *ptraceback;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) {
            /* If the code object creation fails, then we should clear the
               fetched exception references and propagate the new exception */
            Py_XDECREF(ptype);
            Py_XDECREF(pvalue);
            Py_XDECREF(ptraceback);
            goto bad;
        }
        __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_mstate_global->__pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}
#endif

/* CheckUnpickleChecksum */
static void __Pyx_RaiseUnpickleChecksumError(long checksum, long checksum1, long checksum2, long checksum3, const char *members) {
    PyObject *pickle_module = PyImport_ImportModule("pickle");
    if (unlikely(!pickle_module)) return;
    PyObject *pickle_error = PyObject_GetAttrString(pickle_module, "PickleError");
    Py_DECREF(pickle_module);
    if (unlikely(!pickle_error)) return;
    if (checksum2 == checksum1) {
        PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x) = (%s))",
            checksum, checksum1, members);
    } else if (checksum3 == checksum2) {
        PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x, 0x%x) = (%s))",
            checksum, checksum1, checksum2, members);
    } else {
        PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x, 0x%x, 0x%x) = (%s))",
            checksum, checksum1, checksum2, checksum3, members);
    }
    Py_DECREF(pickle_error);
}
static int __Pyx_CheckUnpickleChecksum(long checksum, long checksum1, long checksum2, long checksum3, const char *members) {
    int found = 0;
    found |= checksum1 == checksum;
    found |= checksum2 == checksum;
    found |= checksum3 == checksum;
    if (likely(found))
        return 0;
    __Pyx_RaiseUnpickleChecksumError(checksum, checksum1, checksum2, checksum3, members);
    return -1;
}

/* CIntFromPyVerify */
#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* UnicodeAsUCS4 */
static void __Pyx_PyUnicode_AsPy_UCS4_error(Py_ssize_t length) {
    if (likely(length >= 0)) {
        PyErr_Format(PyExc_ValueError,
                     "only single character unicode strings can be converted to Py_UCS4, "
                     "got length %" CYTHON_FORMAT_SSIZE_T "d", length);
    }
}
static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject* x) {
    Py_ssize_t length = __Pyx_PyUnicode_GET_LENGTH(x);
    if (unlikely(length != 1)) {
        __Pyx_PyUnicode_AsPy_UCS4_error(length);
        return (Py_UCS4)-1;
    }
    return __Pyx_PyUnicode_READ_CHAR(x, 0);
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        int val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyLong_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (int) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(int) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(int) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
        } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        int val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (int) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (int) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (int) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (int) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((int) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((int) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (int) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntFromPy */
static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        long val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyLong_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (long) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(long) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(long) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
        } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        long val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (long) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (long) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (long) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (long) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((long) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((long) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (long) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* ObjectAsUCS4 */
static void __Pyx__PyObject_AsPy_UCS4_raise_error(long ival) {
   if (ival < 0) {
       if (!PyErr_Occurred())
           PyErr_SetString(PyExc_OverflowError,
                           "cannot convert negative value to Py_UCS4");
   } else {
       PyErr_SetString(PyExc_OverflowError,
                       "value too large to convert to Py_UCS4");
   }
}
static Py_UCS4 __Pyx__PyObject_AsPy_UCS4(PyObject* x) {
   long ival;
   ival = __Pyx_PyLong_As_long(x);
   if (unlikely(!__Pyx_is_valid_index(ival, 1114111 + 1))) {
       __Pyx__PyObject_AsPy_UCS4_raise_error(ival);
       return (Py_UCS4)-1;
   }
   return (Py_UCS4)ival;
}

/* UpdateUnpickledDict */
static int __Pyx__UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index) {
    PyObject *state_dict = __Pyx_PySequence_ITEM(state, index);
    if (unlikely(!state_dict)) {
        return -1;
    }
    int non_empty = PyObject_IsTrue(state_dict);
    if (non_empty == 0) {
        Py_DECREF(state_dict);
        return 0;
    } else if (unlikely(non_empty == -1)) {
        return -1;
    }
    PyObject *dict;
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    dict = PyObject_GetAttrString(obj, "__dict__");
    #else
    dict = PyObject_GenericGetDict(obj, NULL);
    #endif
    if (unlikely(!dict)) {
        Py_DECREF(state_dict);
        return -1;
    }
    int result;
    if (likely(PyDict_CheckExact(dict))) {
        result = PyDict_Update(dict, state_dict);
    } else {
        PyObject *obj_result = __Pyx_PyObject_CallMethod1(dict, __pyx_mstate_global->__pyx_n_u_update, state_dict);
        if (likely(obj_result)) {
            Py_DECREF(obj_result);
            result = 0;
        } else {
            result = -1;
        }
    }
    Py_DECREF(state_dict);
    Py_DECREF(dict);
    return result;
}
static int __Pyx_UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index) {
    Py_ssize_t state_size = __Pyx_PyTuple_GET_SIZE(state);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (unlikely(state_size == -1)) return -1;
    #endif
    if (state_size <= index) {
        return 0;
    }
    return __Pyx__UpdateUnpickledDict(obj, state, index);
}

/* FormatTypeName */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
static __Pyx_TypeName
__Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp)
{
    PyObject *module = NULL, *name = NULL, *result = NULL;
    #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
    name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_mstate_global->__pyx_n_u_qualname);
    #else
    name = PyType_GetQualName(tp);
    #endif
    if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) goto bad;
    module = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_mstate_global->__pyx_n_u_module);
    if (unlikely(module == NULL) || unlikely(!PyUnicode_Check(module))) goto bad;
    if (PyUnicode_CompareWithASCIIString(module, "builtins") == 0) {
        result = name;
        name = NULL;
        goto done;
    }
    result = PyUnicode_FromFormat("%U.%U", module, name);
    if (unlikely(result == NULL)) goto bad;
  done:
    Py_XDECREF(name);
    Py_XDECREF(module);
    return result;
  bad:
    PyErr_Clear();
    if (name) {
        result = name;
        name = NULL;
    } else {
        result = __Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u__35);
    }
    goto done;
}
#endif

/* GetRuntimeVersion */
#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
void __Pyx_init_runtime_version(void) {
    if (__Pyx_cached_runtime_version == 0) {
        const char* rt_version = Py_GetVersion();
        unsigned long version = 0;
        unsigned long factor = 0x01000000UL;
        unsigned int digit = 0;
        int i = 0;
        while (factor) {
            while ('0' <= rt_version[i] && rt_version[i] <= '9') {
                digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
                ++i;
            }
            version += factor * digit;
            if (rt_version[i] != '.')
                break;
            digit = 0;
            factor >>= 8;
            ++i;
        }
        __Pyx_cached_runtime_version = version;
    }
}
#endif
static unsigned long __Pyx_get_runtime_version(void) {
#if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
    return Py_Version & ~0xFFUL;
#else
    return __Pyx_cached_runtime_version;
#endif
}

/* ReturnWithStopIteration (used by CoroutineBase) */
static void __Pyx__ReturnWithStopIteration(PyObject* value, int async);
static CYTHON_INLINE void __Pyx_ReturnWithStopIteration(PyObject* value, int async, int iternext) {
    if (value == Py_None) {
        if (async || !iternext)
            PyErr_SetNone(async ? PyExc_StopAsyncIteration : PyExc_StopIteration);
        return;
    }
    __Pyx__ReturnWithStopIteration(value, async);
}
static void __Pyx__ReturnWithStopIteration(PyObject* value, int async) {
#if CYTHON_COMPILING_IN_CPYTHON
    __Pyx_PyThreadState_declare
#endif
    PyObject *exc;
    PyObject *exc_type = async ? PyExc_StopAsyncIteration : PyExc_StopIteration;
#if CYTHON_COMPILING_IN_CPYTHON
    if ((PY_VERSION_HEX >= (0x030C00A6)) || unlikely(PyTuple_Check(value) || PyExceptionInstance_Check(value))) {
        if (PY_VERSION_HEX >= (0x030e00A1)) {
            exc = __Pyx_PyObject_CallOneArg(exc_type, value);
        } else {
            PyObject *args_tuple = PyTuple_New(1);
            if (unlikely(!args_tuple)) return;
            Py_INCREF(value);
            PyTuple_SET_ITEM(args_tuple, 0, value);
            exc = PyObject_Call(exc_type, args_tuple, NULL);
            Py_DECREF(args_tuple);
        }
        if (unlikely(!exc)) return;
    } else {
        Py_INCREF(value);
        exc = value;
    }
    #if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    #if CYTHON_USE_EXC_INFO_STACK
    if (!__pyx_tstate->exc_info->exc_value)
    #else
    if (!__pyx_tstate->exc_type)
    #endif
    {
        Py_INCREF(exc_type);
        __Pyx_ErrRestore(exc_type, exc, NULL);
        return;
    }
    #endif
#else
    exc = __Pyx_PyObject_CallOneArg(exc_type, value);
    if (unlikely(!exc)) return;
#endif
    PyErr_SetObject(exc_type, exc);
    Py_DECREF(exc);
}

/* CoroutineBase (used by Generator) */
#if !CYTHON_COMPILING_IN_LIMITED_API
#include <frameobject.h>
#if PY_VERSION_HEX >= 0x030b00a6 && !defined(PYPY_VERSION)
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#endif // CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE void
__Pyx_Coroutine_Undelegate(__pyx_CoroutineObject *gen) {
#if CYTHON_USE_AM_SEND
    gen->yieldfrom_am_send = NULL;
#endif
    Py_CLEAR(gen->yieldfrom);
}
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *__pyx_tstate, PyObject **pvalue) {
    PyObject *et, *ev, *tb;
    PyObject *value = NULL;
    CYTHON_UNUSED_VAR(__pyx_tstate);
    __Pyx_ErrFetch(&et, &ev, &tb);
    if (!et) {
        Py_XDECREF(tb);
        Py_XDECREF(ev);
        Py_INCREF(Py_None);
        *pvalue = Py_None;
        return 0;
    }
    if (likely(et == PyExc_StopIteration)) {
        if (!ev) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
        else if (likely(__Pyx_IS_TYPE(ev, (PyTypeObject*)PyExc_StopIteration))) {
            #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL
            value = PyObject_GetAttr(ev, __pyx_mstate_global->__pyx_n_u_value);
            if (unlikely(!value)) goto limited_api_failure;
            #else
            value = ((PyStopIterationObject *)ev)->value;
            Py_INCREF(value);
            #endif
            Py_DECREF(ev);
        }
        else if (unlikely(PyTuple_Check(ev))) {
            Py_ssize_t tuple_size = __Pyx_PyTuple_GET_SIZE(ev);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely(tuple_size < 0)) {
                Py_XDECREF(tb);
                Py_DECREF(ev);
                Py_DECREF(et);
                return -1;
            }
            #endif
            if (tuple_size >= 1) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                value = PyTuple_GET_ITEM(ev, 0);
                Py_INCREF(value);
#elif CYTHON_ASSUME_SAFE_MACROS
                value = PySequence_ITEM(ev, 0);
#else
                value = PySequence_GetItem(ev, 0);
                if (!value) goto limited_api_failure;
#endif
            } else {
                Py_INCREF(Py_None);
                value = Py_None;
            }
            Py_DECREF(ev);
        }
        else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
            value = ev;
        }
        if (likely(value)) {
            Py_XDECREF(tb);
            Py_DECREF(et);
            *pvalue = value;
            return 0;
        }
    } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    PyErr_NormalizeException(&et, &ev, &tb);
    if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    Py_XDECREF(tb);
    Py_DECREF(et);
#if CYTHON_COMPILING_IN_LIMITED_API
    value = PyObject_GetAttr(ev, __pyx_mstate_global->__pyx_n_u_value);
#else
    value = ((PyStopIterationObject *)ev)->value;
    Py_INCREF(value);
#endif
    Py_DECREF(ev);
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!value)) return -1;
#endif
    *pvalue = value;
    return 0;
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL || !CYTHON_ASSUME_SAFE_MACROS
  limited_api_failure:
    Py_XDECREF(et);
    Py_XDECREF(tb);
    Py_XDECREF(ev);
    return -1;
#endif
}
static CYTHON_INLINE
__Pyx_PySendResult __Pyx_Coroutine_status_from_result(PyObject **retval) {
    if (*retval) {
        return PYGEN_NEXT;
    } else if (likely(__Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, retval) == 0)) {
        return PYGEN_RETURN;
    } else {
        return PYGEN_ERROR;
    }
}
static CYTHON_INLINE
void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_CLEAR(exc_state->exc_value);
#else
    PyObject *t, *v, *tb;
    t = exc_state->exc_type;
    v = exc_state->exc_value;
    tb = exc_state->exc_traceback;
    exc_state->exc_type = NULL;
    exc_state->exc_value = NULL;
    exc_state->exc_traceback = NULL;
    Py_XDECREF(t);
    Py_XDECREF(v);
    Py_XDECREF(tb);
#endif
}
#define __Pyx_Coroutine_AlreadyRunningError(gen)  (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyRunningError(__pyx_CoroutineObject *gen) {
    const char *msg;
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
        msg = "coroutine already executing";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
        msg = "async generator already executing";
    #endif
    } else {
        msg = "generator already executing";
    }
    PyErr_SetString(PyExc_ValueError, msg);
}
static void __Pyx_Coroutine_AlreadyTerminatedError(PyObject *gen, PyObject *value, int closing) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    CYTHON_MAYBE_UNUSED_VAR(closing);
    #ifdef __Pyx_Coroutine_USED
    if (!closing && __Pyx_Coroutine_Check(gen)) {
        PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine");
    } else
    #endif
    if (value) {
        #ifdef __Pyx_AsyncGen_USED
        if (__Pyx_AsyncGen_CheckExact(gen))
            PyErr_SetNone(PyExc_StopAsyncIteration);
        else
        #endif
        PyErr_SetNone(PyExc_StopIteration);
    }
}
static
__Pyx_PySendResult __Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, PyObject **result, int closing) {
    __Pyx_PyThreadState_declare
    PyThreadState *tstate;
    __Pyx_ExcInfoStruct *exc_state;
    PyObject *retval;
    assert(__Pyx_Coroutine_get_is_running(self));  // Callers should ensure is_running
    if (unlikely(self->resume_label == -1)) {
        __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing);
        return PYGEN_ERROR;
    }
#if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    tstate = __pyx_tstate;
#else
    tstate = __Pyx_PyThreadState_Current;
#endif
    exc_state = &self->gi_exc_state;
    if (exc_state->exc_value) {
        #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        #else
        PyObject *exc_tb;
        #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
        exc_tb = PyException_GetTraceback(exc_state->exc_value);
        #elif PY_VERSION_HEX >= 0x030B00a4
        exc_tb = ((PyBaseExceptionObject*) exc_state->exc_value)->traceback;
        #else
        exc_tb = exc_state->exc_traceback;
        #endif
        if (exc_tb) {
            PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
            PyFrameObject *f = tb->tb_frame;
            assert(f->f_back == NULL);
            #if PY_VERSION_HEX >= 0x030B00A1
            f->f_back = PyThreadState_GetFrame(tstate);
            #else
            Py_XINCREF(tstate->frame);
            f->f_back = tstate->frame;
            #endif
            #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
            Py_DECREF(exc_tb);
            #endif
        }
        #endif
    }
#if CYTHON_USE_EXC_INFO_STACK
    exc_state->previous_item = tstate->exc_info;
    tstate->exc_info = exc_state;
#else
    if (exc_state->exc_type) {
        __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    } else {
        __Pyx_Coroutine_ExceptionClear(exc_state);
        __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    }
#endif
    retval = self->body(self, tstate, value);
#if CYTHON_USE_EXC_INFO_STACK
    exc_state = &self->gi_exc_state;
    tstate->exc_info = exc_state->previous_item;
    exc_state->previous_item = NULL;
    __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
#endif
    *result = retval;
    if (self->resume_label == -1) {
        return likely(retval) ? PYGEN_RETURN : PYGEN_ERROR;
    }
    return PYGEN_NEXT;
}
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED_VAR(exc_state);
#else
    PyObject *exc_tb;
    #if PY_VERSION_HEX >= 0x030B00a4
    if (!exc_state->exc_value) return;
    exc_tb = PyException_GetTraceback(exc_state->exc_value);
    #else
    exc_tb = exc_state->exc_traceback;
    #endif
    if (likely(exc_tb)) {
        PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
        PyFrameObject *f = tb->tb_frame;
        Py_CLEAR(f->f_back);
        #if PY_VERSION_HEX >= 0x030B00a4
        Py_DECREF(exc_tb);
        #endif
    }
#endif
}
#define __Pyx_Coroutine_MethodReturnFromResult(gen, result, retval, iternext)\
    ((result) == PYGEN_NEXT ? (retval) : __Pyx__Coroutine_MethodReturnFromResult(gen, result, retval, iternext))
static PyObject *
__Pyx__Coroutine_MethodReturnFromResult(PyObject* gen, __Pyx_PySendResult result, PyObject *retval, int iternext) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if (likely(result == PYGEN_RETURN)) {
        int is_async = 0;
        #ifdef __Pyx_AsyncGen_USED
        is_async = __Pyx_AsyncGen_CheckExact(gen);
        #endif
        __Pyx_ReturnWithStopIteration(retval, is_async, iternext);
        Py_XDECREF(retval);
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE
PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
#if PY_VERSION_HEX <= 0x030A00A1
    return _PyGen_Send(gen, arg);
#else
    PyObject *result;
    if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
        if (PyAsyncGen_CheckExact(gen)) {
            assert(result == Py_None);
            PyErr_SetNone(PyExc_StopAsyncIteration);
        }
        else if (result == Py_None) {
            PyErr_SetNone(PyExc_StopIteration);
        }
        else {
#if PY_VERSION_HEX < 0x030d00A1
            _PyGen_SetStopIterationValue(result);
#else
            if (!PyTuple_Check(result) && !PyExceptionInstance_Check(result)) {
                PyErr_SetObject(PyExc_StopIteration, result);
            } else {
                PyObject *exc = __Pyx_PyObject_CallOneArg(PyExc_StopIteration, result);
                if (likely(exc != NULL)) {
                    PyErr_SetObject(PyExc_StopIteration, exc);
                    Py_DECREF(exc);
                }
            }
#endif
        }
        Py_DECREF(result);
        result = NULL;
    }
    return result;
#endif
}
#endif
static CYTHON_INLINE __Pyx_PySendResult
__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen, PyObject** retval) {
    __Pyx_PySendResult result;
    PyObject *val = NULL;
    assert(__Pyx_Coroutine_get_is_running(gen));
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
    result = __Pyx_Coroutine_SendEx(gen, val, retval, 0);
    Py_XDECREF(val);
    return result;
}
#if CYTHON_USE_AM_SEND
static __Pyx_PySendResult
__Pyx_Coroutine_SendToDelegate(__pyx_CoroutineObject *gen, __Pyx_pyiter_sendfunc gen_am_send, PyObject *value, PyObject **retval) {
    PyObject *ret = NULL;
    __Pyx_PySendResult delegate_result, result;
    assert(__Pyx_Coroutine_get_is_running(gen));
    delegate_result = gen_am_send(gen->yieldfrom, value, &ret);
    if (delegate_result == PYGEN_NEXT) {
        assert (ret != NULL);
        *retval = ret;
        return PYGEN_NEXT;
    }
    assert (delegate_result != PYGEN_ERROR || ret == NULL);
    __Pyx_Coroutine_Undelegate(gen);
    result = __Pyx_Coroutine_SendEx(gen, ret, retval, 0);
    Py_XDECREF(ret);
    return result;
}
#endif
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
    PyObject *retval = NULL;
    __Pyx_PySendResult result = __Pyx_Coroutine_AmSend(self, value, &retval);
    return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 0);
}
static __Pyx_PySendResult
__Pyx_Coroutine_AmSend(PyObject *self, PyObject *value, PyObject **retval) {
    __Pyx_PySendResult result;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        *retval = __Pyx_Coroutine_AlreadyRunningError(gen);
        return PYGEN_ERROR;
    }
    #if CYTHON_USE_AM_SEND
    if (gen->yieldfrom_am_send) {
        result = __Pyx_Coroutine_SendToDelegate(gen, gen->yieldfrom_am_send, value, retval);
    } else
    #endif
    if (gen->yieldfrom) {
        PyObject *yf = gen->yieldfrom;
        PyObject *ret;
      #if !CYTHON_USE_AM_SEND
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_AsyncGen_USED
        if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
            ret = __Pyx_async_gen_asend_send(yf, value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        if (PyCoro_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
      #endif
        {
            #if !CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x03080000
            if (value == Py_None && PyIter_Check(yf))
                ret = __Pyx_PyIter_Next_Plain(yf);
            else
            #endif
                ret = __Pyx_PyObject_CallMethod1(yf, __pyx_mstate_global->__pyx_n_u_send, value);
        }
        if (likely(ret)) {
            __Pyx_Coroutine_unset_is_running(gen);
            *retval = ret;
            return PYGEN_NEXT;
        }
        result = __Pyx_Coroutine_FinishDelegation(gen, retval);
    } else {
        result = __Pyx_Coroutine_SendEx(gen, value, retval, 0);
    }
    __Pyx_Coroutine_unset_is_running(gen);
    return result;
}
static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
    __Pyx_PySendResult result;
    PyObject *retval = NULL;
    CYTHON_UNUSED_VAR(gen);
    assert(__Pyx_Coroutine_get_is_running(gen));
    #ifdef __Pyx_Generator_USED
    if (__Pyx_Generator_CheckExact(yf)) {
        result = __Pyx_Coroutine_Close(yf, &retval);
    } else
    #endif
    #ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(yf)) {
        result = __Pyx_Coroutine_Close(yf, &retval);
    } else
    if (__Pyx_CoroutineAwait_CheckExact(yf)) {
        result = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf);
    } else
    #endif
    #ifdef __Pyx_AsyncGen_USED
    if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
        retval = __Pyx_async_gen_asend_close(yf, NULL);
        result = PYGEN_RETURN;
    } else
    if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
        retval = __Pyx_async_gen_athrow_close(yf, NULL);
        result = PYGEN_RETURN;
    } else
    #endif
    {
        PyObject *meth;
        result = PYGEN_RETURN;
        meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_mstate_global->__pyx_n_u_close);
        if (unlikely(!meth)) {
            if (unlikely(PyErr_Occurred())) {
                PyErr_WriteUnraisable(yf);
            }
        } else {
            retval = __Pyx_PyObject_CallNoArg(meth);
            Py_DECREF(meth);
            if (unlikely(!retval)) {
                result = PYGEN_ERROR;
            }
        }
    }
    Py_XDECREF(retval);
    return result == PYGEN_ERROR ? -1 : 0;
}
static PyObject *__Pyx_Generator_Next(PyObject *self) {
    __Pyx_PySendResult result;
    PyObject *retval = NULL;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    }
    #if CYTHON_USE_AM_SEND
    if (gen->yieldfrom_am_send) {
        result = __Pyx_Coroutine_SendToDelegate(gen, gen->yieldfrom_am_send, Py_None, &retval);
    } else
    #endif
    if (gen->yieldfrom) {
        PyObject *yf = gen->yieldfrom;
        PyObject *ret;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Generator_Next(yf);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, Py_None);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && (PY_VERSION_HEX < 0x030A00A3 || !CYTHON_USE_AM_SEND)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
        } else
        #endif
            ret = __Pyx_PyIter_Next_Plain(yf);
        if (likely(ret)) {
            __Pyx_Coroutine_unset_is_running(gen);
            return ret;
        }
        result = __Pyx_Coroutine_FinishDelegation(gen, &retval);
    } else {
        result = __Pyx_Coroutine_SendEx(gen, Py_None, &retval, 0);
    }
    __Pyx_Coroutine_unset_is_running(gen);
    return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 1);
}
static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, PyObject *arg) {
    PyObject *retval = NULL;
    __Pyx_PySendResult result;
    CYTHON_UNUSED_VAR(arg);
    result = __Pyx_Coroutine_Close(self, &retval);
    if (unlikely(result == PYGEN_ERROR))
        return NULL;
    Py_XDECREF(retval);
    Py_RETURN_NONE;
}
static __Pyx_PySendResult
__Pyx_Coroutine_Close(PyObject *self, PyObject **retval) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PySendResult result;
    PyObject *yf;
    int err = 0;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        *retval = __Pyx_Coroutine_AlreadyRunningError(gen);
        return PYGEN_ERROR;
    }
    yf = gen->yieldfrom;
    if (yf) {
        Py_INCREF(yf);
        err = __Pyx_Coroutine_CloseIter(gen, yf);
        __Pyx_Coroutine_Undelegate(gen);
        Py_DECREF(yf);
    }
    if (err == 0)
        PyErr_SetNone(PyExc_GeneratorExit);
    result = __Pyx_Coroutine_SendEx(gen, NULL, retval, 1);
    if (result == PYGEN_ERROR) {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_Coroutine_unset_is_running(gen);
        if (!__Pyx_PyErr_Occurred()) {
            return PYGEN_RETURN;
        } else if (likely(__Pyx_PyErr_ExceptionMatches2(PyExc_GeneratorExit, PyExc_StopIteration))) {
            __Pyx_PyErr_Clear();
            return PYGEN_RETURN;
        }
        return PYGEN_ERROR;
    } else if (likely(result == PYGEN_RETURN && *retval == Py_None)) {
        __Pyx_Coroutine_unset_is_running(gen);
        return PYGEN_RETURN;
    } else {
        const char *msg;
        Py_DECREF(*retval);
        *retval = NULL;
        if ((0)) {
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_Coroutine_Check(self)) {
            msg = "coroutine ignored GeneratorExit";
        #endif
        #ifdef __Pyx_AsyncGen_USED
        } else if (__Pyx_AsyncGen_CheckExact(self)) {
            msg = "async generator ignored GeneratorExit";
        #endif
        } else {
            msg = "generator ignored GeneratorExit";
        }
        PyErr_SetString(PyExc_RuntimeError, msg);
        __Pyx_Coroutine_unset_is_running(gen);
        return PYGEN_ERROR;
    }
}
static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb,
                                        PyObject *args, int close_on_genexit) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *yf;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen)))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    yf = gen->yieldfrom;
    if (yf) {
        __Pyx_PySendResult result;
        PyObject *ret;
        Py_INCREF(yf);
        if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
            int err = __Pyx_Coroutine_CloseIter(gen, yf);
            Py_DECREF(yf);
            __Pyx_Coroutine_Undelegate(gen);
            if (err < 0)
                goto propagate_exception;
            goto throw_here;
        }
        if (0
        #ifdef __Pyx_Generator_USED
            || __Pyx_Generator_CheckExact(yf)
        #endif
        #ifdef __Pyx_Coroutine_USED
            || __Pyx_Coroutine_Check(yf)
        #endif
            ) {
            ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
            ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
        #endif
        } else {
            PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_mstate_global->__pyx_n_u_throw);
            if (unlikely(!meth)) {
                Py_DECREF(yf);
                if (unlikely(PyErr_Occurred())) {
                    __Pyx_Coroutine_unset_is_running(gen);
                    return NULL;
                }
                __Pyx_Coroutine_Undelegate(gen);
                goto throw_here;
            }
            if (likely(args)) {
                ret = __Pyx_PyObject_Call(meth, args, NULL);
            } else {
                PyObject *cargs[4] = {NULL, typ, val, tb};
                ret = __Pyx_PyObject_FastCall(meth, cargs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
            }
            Py_DECREF(meth);
        }
        Py_DECREF(yf);
        if (ret) {
            __Pyx_Coroutine_unset_is_running(gen);
            return ret;
        }
        result = __Pyx_Coroutine_FinishDelegation(gen, &ret);
        __Pyx_Coroutine_unset_is_running(gen);
        return __Pyx_Coroutine_MethodReturnFromResult(self, result, ret, 0);
    }
throw_here:
    __Pyx_Raise(typ, val, tb, NULL);
propagate_exception:
    {
        PyObject *retval = NULL;
        __Pyx_PySendResult result = __Pyx_Coroutine_SendEx(gen, NULL, &retval, 0);
        __Pyx_Coroutine_unset_is_running(gen);
        return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 0);
    }
}
static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
    PyObject *typ;
    PyObject *val = NULL;
    PyObject *tb = NULL;
    if (unlikely(!PyArg_UnpackTuple(args, "throw", 1, 3, &typ, &val, &tb)))
        return NULL;
    return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1);
}
static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_VISIT(exc_state->exc_value);
#else
    Py_VISIT(exc_state->exc_type);
    Py_VISIT(exc_state->exc_value);
    Py_VISIT(exc_state->exc_traceback);
#endif
    return 0;
}
static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) {
    {
        int e = __Pyx_call_type_traverse((PyObject*)gen, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(gen->closure);
    Py_VISIT(gen->classobj);
    Py_VISIT(gen->yieldfrom);
    return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
}
static int __Pyx_Coroutine_clear(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    Py_CLEAR(gen->closure);
    Py_CLEAR(gen->classobj);
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
    }
#endif
    Py_CLEAR(gen->gi_code);
    Py_CLEAR(gen->gi_frame);
    Py_CLEAR(gen->gi_name);
    Py_CLEAR(gen->gi_qualname);
    Py_CLEAR(gen->gi_modulename);
    return 0;
}
static void __Pyx_Coroutine_dealloc(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject_GC_UnTrack(gen);
    #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    if (gen->gi_weakreflist != NULL)
    #endif
        PyObject_ClearWeakRefs(self);
    if (gen->resume_label >= 0) {
        PyObject_GC_Track(self);
#if CYTHON_USE_TP_FINALIZE
        if (unlikely(PyObject_CallFinalizerFromDealloc(self)))
#else
        {
            destructor del = __Pyx_PyObject_GetSlot(gen, tp_del, destructor);
            if (del) del(self);
        }
        if (unlikely(Py_REFCNT(self) > 0))
#endif
        {
            return;
        }
        PyObject_GC_UnTrack(self);
    }
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        /* We have to handle this case for asynchronous generators
           right here, because this code has to be between UNTRACK
           and GC_Del. */
        Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer);
    }
#endif
    __Pyx_Coroutine_clear(self);
    __Pyx_PyHeapTypeObject_GC_Del(gen);
}
#if CYTHON_USE_TP_FINALIZE
static void __Pyx_Coroutine_del(PyObject *self) {
    PyObject *error_type, *error_value, *error_traceback;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PyThreadState_declare
    if (gen->resume_label < 0) {
        return;
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self;
        PyObject *finalizer = agen->ag_finalizer;
        if (finalizer && !agen->ag_closed) {
            PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self);
            if (unlikely(!res)) {
                PyErr_WriteUnraisable(self);
            } else {
                Py_DECREF(res);
            }
            __Pyx_ErrRestore(error_type, error_value, error_traceback);
            return;
        }
    }
#endif
    if (unlikely(gen->resume_label == 0 && !error_value)) {
#ifdef __Pyx_Coroutine_USED
#ifdef __Pyx_Generator_USED
    if (!__Pyx_Generator_CheckExact(self))
#endif
        {
        PyObject_GC_UnTrack(self);
        if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
            PyErr_WriteUnraisable(self);
        PyObject_GC_Track(self);
        }
#endif
    } else {
        PyObject *retval = NULL;
        __Pyx_PySendResult result = __Pyx_Coroutine_Close(self, &retval);
        if (result == PYGEN_ERROR) {
            PyErr_WriteUnraisable(self);
        } else {
            Py_XDECREF(retval);
        }
    }
    __Pyx_ErrRestore(error_type, error_value, error_traceback);
}
#endif
static PyObject *
__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_name;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_name, value);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_qualname;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_qualname, value);
    return 0;
}
static PyObject *
__Pyx__Coroutine_get_frame(__pyx_CoroutineObject *self)
{
#if !CYTHON_COMPILING_IN_LIMITED_API
    PyObject *frame;
    #if PY_VERSION_HEX >= 0x030d0000
    Py_BEGIN_CRITICAL_SECTION(self);
    #endif
    frame = self->gi_frame;
    if (!frame) {
        if (unlikely(!self->gi_code)) {
            Py_RETURN_NONE;
        }
        PyObject *globals = PyDict_New();
        if (unlikely(!globals)) return NULL;
        frame = (PyObject *) PyFrame_New(
            PyThreadState_Get(),            /*PyThreadState *tstate,*/
            (PyCodeObject*) self->gi_code,  /*PyCodeObject *code,*/
            globals,                        /*PyObject *globals,*/
            0                               /*PyObject *locals*/
        );
        Py_DECREF(globals);
        if (unlikely(!frame))
            return NULL;
        if (unlikely(self->gi_frame)) {
            Py_DECREF(frame);
            frame = self->gi_frame;
        } else {
            self->gi_frame = frame;
        }
    }
    Py_INCREF(frame);
    #if PY_VERSION_HEX >= 0x030d0000
    Py_END_CRITICAL_SECTION();
    #endif
    return frame;
#else
    CYTHON_UNUSED_VAR(self);
    Py_RETURN_NONE;
#endif
}
static PyObject *
__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, void *context) {
    CYTHON_UNUSED_VAR(context);
    PyObject *frame = self->gi_frame;
    if (frame)
        return __Pyx_NewRef(frame);
    return __Pyx__Coroutine_get_frame(self);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
            PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
    if (unlikely(!gen))
        return NULL;
    return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    gen->body = body;
    gen->closure = closure;
    Py_XINCREF(closure);
    gen->is_running = 0;
    gen->resume_label = 0;
    gen->classobj = NULL;
    gen->yieldfrom = NULL;
    gen->yieldfrom_am_send = NULL;
    #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_LIMITED_API
    gen->gi_exc_state.exc_value = NULL;
    #else
    gen->gi_exc_state.exc_type = NULL;
    gen->gi_exc_state.exc_value = NULL;
    gen->gi_exc_state.exc_traceback = NULL;
    #endif
#if CYTHON_USE_EXC_INFO_STACK
    gen->gi_exc_state.previous_item = NULL;
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    gen->gi_weakreflist = NULL;
#endif
    Py_XINCREF(qualname);
    gen->gi_qualname = qualname;
    Py_XINCREF(name);
    gen->gi_name = name;
    Py_XINCREF(module_name);
    gen->gi_modulename = module_name;
    Py_XINCREF(code);
    gen->gi_code = code;
    gen->gi_frame = NULL;
    PyObject_GC_Track(gen);
    return gen;
}
static char __Pyx_Coroutine_test_and_set_is_running(__pyx_CoroutineObject *gen) {
    char result;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_BEGIN_CRITICAL_SECTION(gen);
    #endif
    result = gen->is_running;
    gen->is_running = 1;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_END_CRITICAL_SECTION();
    #endif
    return result;
}
static void __Pyx_Coroutine_unset_is_running(__pyx_CoroutineObject *gen) {
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_BEGIN_CRITICAL_SECTION(gen);
    #endif
    assert(gen->is_running);
    gen->is_running = 0;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_END_CRITICAL_SECTION();
    #endif
}
static char __Pyx_Coroutine_get_is_running(__pyx_CoroutineObject *gen) {
    char result;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_BEGIN_CRITICAL_SECTION(gen);
    #endif
    result = gen->is_running;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_END_CRITICAL_SECTION();
    #endif
    return result;
}
static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *closure) {
    CYTHON_UNUSED_VAR(closure);
    char result = __Pyx_Coroutine_get_is_running((__pyx_CoroutineObject*)gen);
    if (result) Py_RETURN_TRUE;
    else Py_RETURN_FALSE;
}
#if __PYX_HAS_PY_AM_SEND == 2
static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethodsStruct *static_amsend_methods, __Pyx_pyiter_sendfunc am_send) {
    Py_ssize_t ptr_offset = (char*)(type->tp_as_async) - (char*)type;
    if (ptr_offset < 0 || ptr_offset > type->tp_basicsize) {
        return;
    }
    memcpy((void*)static_amsend_methods, (void*)(type->tp_as_async), sizeof(*type->tp_as_async));
    static_amsend_methods->am_send = am_send;
    type->tp_as_async = __Pyx_SlotTpAsAsync(static_amsend_methods);
}
#endif
static PyObject *__Pyx_Coroutine_fail_reduce_ex(PyObject *self, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    __Pyx_TypeName self_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE((PyObject*)self));
    PyErr_Format(PyExc_TypeError, "cannot pickle '" __Pyx_FMT_TYPENAME "' object",
                         self_type_name);
    __Pyx_DECREF_TypeName(self_type_name);
    return NULL;
}

/* Generator */
static PyMethodDef __pyx_Generator_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
     PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
    {"__reduce_ex__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_O, 0},
    {"__reduce__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_NOARGS, 0},
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Generator_memberlist[] = {
    {"gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     PyDoc_STR("object being iterated by 'yield from', or None")},
    {"gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {"__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0},
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Generator_getsets[] = {
    {"__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     PyDoc_STR("name of the generator"), 0},
    {"__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     PyDoc_STR("qualified name of the generator"), 0},
    {"gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
     PyDoc_STR("Frame of the generator"), 0},
    {"gi_running", __Pyx_Coroutine_get_is_running_getter, NULL, NULL, NULL},
    {0, 0, 0, 0, 0}
};
static PyType_Slot __pyx_GeneratorType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc},
    {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse},
    {Py_tp_iter, (void *)PyObject_SelfIter},
    {Py_tp_iternext, (void *)__Pyx_Generator_Next},
    {Py_tp_methods, (void *)__pyx_Generator_methods},
    {Py_tp_members, (void *)__pyx_Generator_memberlist},
    {Py_tp_getset, (void *)__pyx_Generator_getsets},
    {Py_tp_getattro, (void *) PyObject_GenericGetAttr},
#if CYTHON_USE_TP_FINALIZE
    {Py_tp_finalize, (void *)__Pyx_Coroutine_del},
#endif
#if __PYX_HAS_PY_AM_SEND == 1
    {Py_am_send, (void *)__Pyx_Coroutine_AmSend},
#endif
    {0, 0},
};
static PyType_Spec __pyx_GeneratorType_spec = {
    __PYX_TYPE_MODULE_PREFIX "generator",
    sizeof(__pyx_CoroutineObject),
    0,
#if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_TPFLAGS_MANAGED_WEAKREF |
#endif
    Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION |
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | __Pyx_TPFLAGS_HAVE_AM_SEND,
    __pyx_GeneratorType_slots
};
#if __PYX_HAS_PY_AM_SEND == 2
static __Pyx_PyAsyncMethodsStruct __pyx_Generator_as_async;
#endif
static int __pyx_Generator_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    mstate->__pyx_GeneratorType = __Pyx_FetchCommonTypeFromSpec(
        mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_GeneratorType_spec, NULL);
    if (unlikely(!mstate->__pyx_GeneratorType)) {
        return -1;
    }
#if __PYX_HAS_PY_AM_SEND == 2
    __Pyx_SetBackportTypeAmSend(mstate->__pyx_GeneratorType, &__pyx_Generator_as_async, &__Pyx_Coroutine_AmSend);
#endif
    return 0;
}
static PyObject *__Pyx_Generator_GetInlinedResult(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *retval = NULL;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    }
    __Pyx_PySendResult result = __Pyx_Coroutine_SendEx(gen, Py_None, &retval, 0);
    __Pyx_Coroutine_unset_is_running(gen);
    (void) result;
    assert (result == PYGEN_RETURN || result == PYGEN_ERROR);
    assert ((result == PYGEN_RETURN && retval != NULL) || (result == PYGEN_ERROR && retval == NULL));
    return retval;
}

/* CheckBinaryVersion */
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
    const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
    if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
        return 0;
    if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
        return 1;
    {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compile time Python version %d.%d "
                      "of module '%.100s' "
                      "%s "
                      "runtime version %d.%d",
                       (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
                       __Pyx_MODULE_NAME,
                       (allow_newer) ? "was newer than" : "does not match",
                       (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
       );
        return PyErr_WarnEx(NULL, message, 1);
    }
}

/* NewCodeObj */
#if CYTHON_COMPILING_IN_LIMITED_API
    static PyObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
                                       PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                       PyObject *fv, PyObject *cell, PyObject* fn,
                                       PyObject *name, int fline, PyObject *lnos) {
        PyObject *exception_table = NULL;
        PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
        #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
        PyObject *version_info;
        PyObject *py_minor_version = NULL;
        #endif
        long minor_version = 0;
        PyObject *type, *value, *traceback;
        PyErr_Fetch(&type, &value, &traceback);
        #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
        minor_version = 11;
        #else
        if (!(version_info = PySys_GetObject("version_info"))) goto end;
        if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
        minor_version = PyLong_AsLong(py_minor_version);
        Py_DECREF(py_minor_version);
        if (minor_version == -1 && PyErr_Occurred()) goto end;
        #endif
        if (!(types_module = PyImport_ImportModule("types"))) goto end;
        if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
        if (minor_version <= 7) {
            (void)p;
            result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOOO", a, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else if (minor_version <= 10) {
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else {
            if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOOOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
        }
    end:
        Py_XDECREF(code_type);
        Py_XDECREF(exception_table);
        Py_XDECREF(types_module);
        if (type) {
            PyErr_Restore(type, value, traceback);
        }
        return result;
    }
#elif PY_VERSION_HEX >= 0x030B0000
  static PyCodeObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
                                         PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                         PyObject *fv, PyObject *cell, PyObject* fn,
                                         PyObject *name, int fline, PyObject *lnos) {
    PyCodeObject *result;
    result =
      #if PY_VERSION_HEX >= 0x030C0000
        PyUnstable_Code_NewWithPosOnlyArgs
      #else
        PyCode_NewWithPosOnlyArgs
      #endif
        (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1
    if (likely(result))
        result->_co_firsttraceable = 0;
    #endif
    return result;
  }
#elif !CYTHON_COMPILING_IN_PYPY
  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
static PyObject* __Pyx_PyCode_New(
        const __Pyx_PyCode_New_function_description descr,
        PyObject * const *varnames,
        PyObject *filename,
        PyObject *funcname,
        PyObject *line_table,
        PyObject *tuple_dedup_map
) {
    PyObject *code_obj = NULL, *varnames_tuple_dedup = NULL, *code_bytes = NULL;
    Py_ssize_t var_count = (Py_ssize_t) descr.nlocals;
    PyObject *varnames_tuple = PyTuple_New(var_count);
    if (unlikely(!varnames_tuple)) return NULL;
    for (Py_ssize_t i=0; i < var_count; i++) {
        Py_INCREF(varnames[i]);
        if (__Pyx_PyTuple_SET_ITEM(varnames_tuple, i, varnames[i]) != (0)) goto done;
    }
    #if CYTHON_COMPILING_IN_LIMITED_API
    varnames_tuple_dedup = PyDict_GetItem(tuple_dedup_map, varnames_tuple);
    if (!varnames_tuple_dedup) {
        if (unlikely(PyDict_SetItem(tuple_dedup_map, varnames_tuple, varnames_tuple) < 0)) goto done;
        varnames_tuple_dedup = varnames_tuple;
    }
    #else
    varnames_tuple_dedup = PyDict_SetDefault(tuple_dedup_map, varnames_tuple, varnames_tuple);
    if (unlikely(!varnames_tuple_dedup)) goto done;
    #endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(varnames_tuple_dedup);
    #endif
    if (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table != NULL && !CYTHON_COMPILING_IN_GRAAL) {
        Py_ssize_t line_table_length = __Pyx_PyBytes_GET_SIZE(line_table);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(line_table_length == -1)) goto done;
        #endif
        Py_ssize_t code_len = (line_table_length * 2 + 4) & ~3LL;
        code_bytes = PyBytes_FromStringAndSize(NULL, code_len);
        if (unlikely(!code_bytes)) goto done;
        char* c_code_bytes = PyBytes_AsString(code_bytes);
        if (unlikely(!c_code_bytes)) goto done;
        memset(c_code_bytes, 0, (size_t) code_len);
    }
    code_obj = (PyObject*) __Pyx__PyCode_New(
        (int) descr.argcount,
        (int) descr.num_posonly_args,
        (int) descr.num_kwonly_args,
        (int) descr.nlocals,
        0,
        (int) descr.flags,
        code_bytes ? code_bytes : __pyx_mstate_global->__pyx_empty_bytes,
        __pyx_mstate_global->__pyx_empty_tuple,
        __pyx_mstate_global->__pyx_empty_tuple,
        varnames_tuple_dedup,
        __pyx_mstate_global->__pyx_empty_tuple,
        __pyx_mstate_global->__pyx_empty_tuple,
        filename,
        funcname,
        (int) descr.first_line,
        (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table) ? line_table : __pyx_mstate_global->__pyx_empty_bytes
    );
done:
    Py_XDECREF(code_bytes);
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(varnames_tuple_dedup);
    #endif
    Py_DECREF(varnames_tuple);
    return code_obj;
}

/* DecompressString */
static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo) {
    PyObject *module = NULL, *decompress, *compressed_bytes, *decompressed;
    const char* module_name = algo == 3 ? "compression.zstd" : algo == 2 ? "bz2" : "zlib";
    PyObject *methodname = PyUnicode_FromString("decompress");
    if (unlikely(!methodname)) return NULL;
    #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000
    if (algo == 3) {
        PyObject *fromlist = Py_BuildValue("[O]", methodname);
        if (unlikely(!fromlist)) goto bad;
        module = PyImport_ImportModuleLevel("compression.zstd", NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
    } else
    #endif
        module = PyImport_ImportModule(module_name);
    if (unlikely(!module)) goto import_failed;
    decompress = PyObject_GetAttr(module, methodname);
    if (unlikely(!decompress)) goto import_failed;
    {
        #ifdef __cplusplus
            char *memview_bytes = const_cast<char*>(s);
        #else
            #if defined(__clang__)
              #pragma clang diagnostic push
              #pragma clang diagnostic ignored "-Wcast-qual"
            #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
              #pragma GCC diagnostic push
              #pragma GCC diagnostic ignored "-Wcast-qual"
            #endif
            char *memview_bytes = (char*) s;
            #if defined(__clang__)
              #pragma clang diagnostic pop
            #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
              #pragma GCC diagnostic pop
            #endif
        #endif
        #if CYTHON_COMPILING_IN_LIMITED_API && !defined(PyBUF_READ)
        int memview_flags = 0x100;
        #else
        int memview_flags = PyBUF_READ;
        #endif
        compressed_bytes = PyMemoryView_FromMemory(memview_bytes, length, memview_flags);
    }
    if (unlikely(!compressed_bytes)) {
        Py_DECREF(decompress);
        goto bad;
    }
    decompressed = PyObject_CallFunctionObjArgs(decompress, compressed_bytes, NULL);
    Py_DECREF(compressed_bytes);
    Py_DECREF(decompress);
    Py_DECREF(module);
    Py_DECREF(methodname);
    return decompressed;
import_failed:
    PyErr_Format(PyExc_ImportError,
        "Failed to import '%.20s.decompress' - cannot initialise module strings. "
        "String compression was configured with the C macro 'CYTHON_COMPRESS_STRINGS=%d'.",
        module_name, algo);
bad:
    Py_XDECREF(module);
    Py_DECREF(methodname);
    return NULL;
}

#include <string.h>
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
    size_t len = strlen(s);
    if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
        PyErr_SetString(PyExc_OverflowError, "byte string is too long");
        return -1;
    }
    return (Py_ssize_t) len;
}
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return PyByteArray_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    {
        const char* result;
        Py_ssize_t unicode_length;
        CYTHON_MAYBE_UNUSED_VAR(unicode_length); // only for __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
        if (unlikely(PyArg_Parse(o, "s#", &result, length) < 0)) return NULL;
        #else
        result = PyUnicode_AsUTF8AndSize(o, length);
        #endif
        #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        unicode_length = PyUnicode_GetLength(o);
        if (unlikely(unicode_length < 0)) return NULL;
        if (unlikely(unicode_length != *length)) {
            PyUnicode_AsASCIIString(o);
            return NULL;
        }
        #endif
        return result;
    }
#else
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
#endif
}
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
    if (PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
    if (PyByteArray_Check(o)) {
#if (CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) || (CYTHON_COMPILING_IN_PYPY && (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)))
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
#else
        *length = PyByteArray_Size(o);
        if (*length == -1) return NULL;
        return PyByteArray_AsString(o);
#endif
    } else
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_LongWrongResultType(PyObject* result) {
    __Pyx_TypeName result_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(result));
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ").  "
                "The ability to return an instance of a strict subclass of int is deprecated, "
                "and may be removed in a future version of Python.",
                result_type_name)) {
            __Pyx_DECREF_TypeName(result_type_name);
            Py_DECREF(result);
            return NULL;
        }
        __Pyx_DECREF_TypeName(result_type_name);
        return result;
    }
    PyErr_Format(PyExc_TypeError,
                 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ")",
                 result_type_name);
    __Pyx_DECREF_TypeName(result_type_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  PyObject *res = NULL;
  if (likely(PyLong_Check(x)))
      return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  if (likely(m && m->nb_int)) {
      res = m->nb_int(x);
  }
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
      res = PyNumber_Long(x);
  }
#endif
  if (likely(res)) {
      if (unlikely(!PyLong_CheckExact(res))) {
          return __Pyx_PyNumber_LongWrongResultType(res);
      }
  }
  else if (!PyErr_Occurred()) {
      PyErr_SetString(PyExc_TypeError,
                      "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(__Pyx_PyLong_IsCompact(b))) {
        return __Pyx_PyLong_CompactValue(b);
    } else {
      const digit* digits = __Pyx_PyLong_Digits(b);
      const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyLong_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyLong_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b) {
    CYTHON_UNUSED_VAR(b);
    return __Pyx_NewRef(Py_None);
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return __Pyx_NewRef(b ? Py_True: Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) {
    return PyLong_FromSize_t(ival);
}


/* MultiPhaseInitModuleState */
#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
#ifndef CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
#if (CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000)
  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 1
#else
  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 0
#endif
#endif
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE && !CYTHON_ATOMICS
#error "Module state with PEP489 requires atomics. Currently that's one of\
 C11, C++11, gcc atomic intrinsics or MSVC atomic intrinsics"
#endif
#if !CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
#define __Pyx_ModuleStateLookup_Lock()
#define __Pyx_ModuleStateLookup_Unlock()
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
static PyMutex __Pyx_ModuleStateLookup_mutex = {0};
#define __Pyx_ModuleStateLookup_Lock() PyMutex_Lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() PyMutex_Unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(__cplusplus) && __cplusplus >= 201103L
#include <mutex>
static std::mutex __Pyx_ModuleStateLookup_mutex;
#define __Pyx_ModuleStateLookup_Lock() __Pyx_ModuleStateLookup_mutex.lock()
#define __Pyx_ModuleStateLookup_Unlock() __Pyx_ModuleStateLookup_mutex.unlock()
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201112L) && !defined(__STDC_NO_THREADS__)
#include <threads.h>
static mtx_t __Pyx_ModuleStateLookup_mutex;
static once_flag __Pyx_ModuleStateLookup_mutex_once_flag = ONCE_FLAG_INIT;
static void __Pyx_ModuleStateLookup_initialize_mutex(void) {
    mtx_init(&__Pyx_ModuleStateLookup_mutex, mtx_plain);
}
#define __Pyx_ModuleStateLookup_Lock()\
  call_once(&__Pyx_ModuleStateLookup_mutex_once_flag, __Pyx_ModuleStateLookup_initialize_mutex);\
  mtx_lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() mtx_unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(HAVE_PTHREAD_H)
#include <pthread.h>
static pthread_mutex_t __Pyx_ModuleStateLookup_mutex = PTHREAD_MUTEX_INITIALIZER;
#define __Pyx_ModuleStateLookup_Lock() pthread_mutex_lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() pthread_mutex_unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(_WIN32)
#include <Windows.h>  // synchapi.h on its own doesn't work
static SRWLOCK __Pyx_ModuleStateLookup_mutex = SRWLOCK_INIT;
#define __Pyx_ModuleStateLookup_Lock() AcquireSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() ReleaseSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
#else
#error "No suitable lock available for CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE.\
 Requires C standard >= C11, or C++ standard >= C++11,\
 or pthreads, or the Windows 32 API, or Python >= 3.13."
#endif
typedef struct {
    int64_t id;
    PyObject *module;
} __Pyx_InterpreterIdAndModule;
typedef struct {
    char interpreter_id_as_index;
    Py_ssize_t count;
    Py_ssize_t allocated;
    __Pyx_InterpreterIdAndModule table[1];
} __Pyx_ModuleStateLookupData;
#define __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE 32
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static __pyx_atomic_int_type __Pyx_ModuleStateLookup_read_counter = 0;
#endif
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static __pyx_atomic_ptr_type __Pyx_ModuleStateLookup_data = 0;
#else
static __Pyx_ModuleStateLookupData* __Pyx_ModuleStateLookup_data = NULL;
#endif
static __Pyx_InterpreterIdAndModule* __Pyx_State_FindModuleStateLookupTableLowerBound(
        __Pyx_InterpreterIdAndModule* table,
        Py_ssize_t count,
        int64_t interpreterId) {
    __Pyx_InterpreterIdAndModule* begin = table;
    __Pyx_InterpreterIdAndModule* end = begin + count;
    if (begin->id == interpreterId) {
        return begin;
    }
    while ((end - begin) > __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
        __Pyx_InterpreterIdAndModule* halfway = begin + (end - begin)/2;
        if (halfway->id == interpreterId) {
            return halfway;
        }
        if (halfway->id < interpreterId) {
            begin = halfway;
        } else {
            end = halfway;
        }
    }
    for (; begin < end; ++begin) {
        if (begin->id >= interpreterId) return begin;
    }
    return begin;
}
static PyObject *__Pyx_State_FindModule(CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return NULL;
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData* data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
    {
        __pyx_atomic_incr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
        if (likely(data)) {
            __Pyx_ModuleStateLookupData* new_data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_acquire(&__Pyx_ModuleStateLookup_data);
            if (likely(data == new_data)) {
                goto read_finished;
            }
        }
        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
        __Pyx_ModuleStateLookup_Lock();
        __pyx_atomic_incr_relaxed(&__Pyx_ModuleStateLookup_read_counter);
        data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
        __Pyx_ModuleStateLookup_Unlock();
    }
  read_finished:;
#else
    __Pyx_ModuleStateLookupData* data = __Pyx_ModuleStateLookup_data;
#endif
    __Pyx_InterpreterIdAndModule* found = NULL;
    if (unlikely(!data)) goto end;
    if (data->interpreter_id_as_index) {
        if (interpreter_id < data->count) {
            found = data->table+interpreter_id;
        }
    } else {
        found = __Pyx_State_FindModuleStateLookupTableLowerBound(
            data->table, data->count, interpreter_id);
    }
  end:
    {
        PyObject *result=NULL;
        if (found && found->id == interpreter_id) {
            result = found->module;
        }
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
#endif
        return result;
    }
}
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static void __Pyx_ModuleStateLookup_wait_until_no_readers(void) {
    while (__pyx_atomic_load(&__Pyx_ModuleStateLookup_read_counter) != 0);
}
#else
#define __Pyx_ModuleStateLookup_wait_until_no_readers()
#endif
static int __Pyx_State_AddModuleInterpIdAsIndex(__Pyx_ModuleStateLookupData **old_data, PyObject* module, int64_t interpreter_id) {
    Py_ssize_t to_allocate = (*old_data)->allocated;
    while (to_allocate <= interpreter_id) {
        if (to_allocate == 0) to_allocate = 1;
        else to_allocate *= 2;
    }
    __Pyx_ModuleStateLookupData *new_data = *old_data;
    if (to_allocate != (*old_data)->allocated) {
         new_data = (__Pyx_ModuleStateLookupData *)realloc(
            *old_data,
            sizeof(__Pyx_ModuleStateLookupData)+(to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
        if (!new_data) {
            PyErr_NoMemory();
            return -1;
        }
        for (Py_ssize_t i = new_data->allocated; i < to_allocate; ++i) {
            new_data->table[i].id = i;
            new_data->table[i].module = NULL;
        }
        new_data->allocated = to_allocate;
    }
    new_data->table[interpreter_id].module = module;
    if (new_data->count < interpreter_id+1) {
        new_data->count = interpreter_id+1;
    }
    *old_data = new_data;
    return 0;
}
static void __Pyx_State_ConvertFromInterpIdAsIndex(__Pyx_ModuleStateLookupData *data) {
    __Pyx_InterpreterIdAndModule *read = data->table;
    __Pyx_InterpreterIdAndModule *write = data->table;
    __Pyx_InterpreterIdAndModule *end = read + data->count;
    for (; read<end; ++read) {
        if (read->module) {
            write->id = read->id;
            write->module = read->module;
            ++write;
        }
    }
    data->count = write - data->table;
    for (; write<end; ++write) {
        write->id = 0;
        write->module = NULL;
    }
    data->interpreter_id_as_index = 0;
}
static int __Pyx_State_AddModule(PyObject* module, CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return -1;
    int result = 0;
    __Pyx_ModuleStateLookup_Lock();
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData *old_data = (__Pyx_ModuleStateLookupData *)
            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
#else
    __Pyx_ModuleStateLookupData *old_data = __Pyx_ModuleStateLookup_data;
#endif
    __Pyx_ModuleStateLookupData *new_data = old_data;
    if (!new_data) {
        new_data = (__Pyx_ModuleStateLookupData *)calloc(1, sizeof(__Pyx_ModuleStateLookupData));
        if (!new_data) {
            result = -1;
            PyErr_NoMemory();
            goto end;
        }
        new_data->allocated = 1;
        new_data->interpreter_id_as_index = 1;
    }
    __Pyx_ModuleStateLookup_wait_until_no_readers();
    if (new_data->interpreter_id_as_index) {
        if (interpreter_id < __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
            result = __Pyx_State_AddModuleInterpIdAsIndex(&new_data, module, interpreter_id);
            goto end;
        }
        __Pyx_State_ConvertFromInterpIdAsIndex(new_data);
    }
    {
        Py_ssize_t insert_at = 0;
        {
            __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
                new_data->table, new_data->count, interpreter_id);
            assert(lower_bound);
            insert_at = lower_bound - new_data->table;
            if (unlikely(insert_at < new_data->count && lower_bound->id == interpreter_id)) {
                lower_bound->module = module;
                goto end;  // already in table, nothing more to do
            }
        }
        if (new_data->count+1 >= new_data->allocated) {
            Py_ssize_t to_allocate = (new_data->count+1)*2;
            new_data =
                (__Pyx_ModuleStateLookupData*)realloc(
                    new_data,
                    sizeof(__Pyx_ModuleStateLookupData) +
                    (to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
            if (!new_data) {
                result = -1;
                new_data = old_data;
                PyErr_NoMemory();
                goto end;
            }
            new_data->allocated = to_allocate;
        }
        ++new_data->count;
        int64_t last_id = interpreter_id;
        PyObject *last_module = module;
        for (Py_ssize_t i=insert_at; i<new_data->count; ++i) {
            int64_t current_id = new_data->table[i].id;
            new_data->table[i].id = last_id;
            last_id = current_id;
            PyObject *current_module = new_data->table[i].module;
            new_data->table[i].module = last_module;
            last_module = current_module;
        }
    }
  end:
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, new_data);
#else
    __Pyx_ModuleStateLookup_data = new_data;
#endif
    __Pyx_ModuleStateLookup_Unlock();
    return result;
}
static int __Pyx_State_RemoveModule(CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return -1;
    __Pyx_ModuleStateLookup_Lock();
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData *data = (__Pyx_ModuleStateLookupData *)
            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
#else
    __Pyx_ModuleStateLookupData *data = __Pyx_ModuleStateLookup_data;
#endif
    if (data->interpreter_id_as_index) {
        if (interpreter_id < data->count) {
            data->table[interpreter_id].module = NULL;
        }
        goto done;
    }
    {
        __Pyx_ModuleStateLookup_wait_until_no_readers();
        __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
            data->table, data->count, interpreter_id);
        if (!lower_bound) goto done;
        if (lower_bound->id != interpreter_id) goto done;
        __Pyx_InterpreterIdAndModule *end = data->table+data->count;
        for (;lower_bound<end-1; ++lower_bound) {
            lower_bound->id = (lower_bound+1)->id;
            lower_bound->module = (lower_bound+1)->module;
        }
    }
    --data->count;
    if (data->count == 0) {
        free(data);
        data = NULL;
    }
  done:
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, data);
#else
    __Pyx_ModuleStateLookup_data = data;
#endif
    __Pyx_ModuleStateLookup_Unlock();
    return 0;
}
#endif

/* #### Code section: utility_code_pragmas_end ### */
#ifdef _MSC_VER
#pragma warning( pop )
#endif



/* #### Code section: end ### */
#endif /* Py_PYTHON_H */
