diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp
index 9b339ebdc050a792b315a1d2617f87cd2bd11682..b5a5343eb42936d3721fdc19d94aacb67dfcf009 100644
--- a/source/App/EncoderApp/EncApp.cpp
+++ b/source/App/EncoderApp/EncApp.cpp
@@ -242,12 +242,10 @@ void EncApp::xInitLibCfg()
 #if ENABLE_WPP_PARALLELISM
   m_cEncLib.setUseAltDQPCoding                                   ( m_AltDQPCoding );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   m_cEncLib.setIntraEMT                                          ( m_EMT & 1 );
   m_cEncLib.setFastIntraEMT                                      ( m_FastEMT & m_EMT & 1 );
   m_cEncLib.setInterEMT                                          ( ( m_EMT >> 1 ) & 1 );
   m_cEncLib.setFastInterEMT                                      ( ( m_FastEMT >> 1 ) & ( m_EMT >> 1 ) & 1 );
-#endif
 #if JVET_K0157
   m_cEncLib.setUseCompositeRef                                   ( m_compositeRefEnabled );
 #endif
diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp
index 2150b9ef7299556b8f6578434d2475d64417d0db..1b47da629f81df58a0530a4a838753d965bb88e2 100644
--- a/source/App/EncoderApp/EncAppCfg.cpp
+++ b/source/App/EncoderApp/EncAppCfg.cpp
@@ -844,7 +844,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
                                                                                                                "\t1:  Enable LMChroma\n")
 #else
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   ("EMT,-emt",                                        m_EMT,                                                0, "Enhanced Multiple Transform (EMT)\n"
     "\t0:  Disable EMT\n"
     "\t1:  Enable only Intra EMT\n"
@@ -855,7 +854,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
     "\t1:  Enable fast methods only for Intra EMT\n"
     "\t2:  Enable fast methods only for Inter EMT\n"
     "\t3:  Enable fast methods for both Intra & Inter EMT\n")
-#endif
 #if JVET_K0157
   ("CompositeLTReference",                            m_compositeRefEnabled,                            false, "Enable Composite Long Term Reference Frame")
 #endif
@@ -1956,10 +1954,8 @@ bool EncAppCfg::xCheckParameter()
     xConfirmPara( m_useSaveLoadEncInfo, "Encoder decision saving can only be applied when encoding with NEXT profile" );
     xConfirmPara( m_useSaveLoadSplitDecision, "Encoder split decision saving can only be applied when encoding with NEXT profile" );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
     xConfirmPara( m_EMT, "EMT only allowed with NEXT profile" );
     xConfirmPara( m_FastEMT, "EMT only allowed with NEXT profile" );
-#endif
 #if JVET_K0157
     xConfirmPara(m_compositeRefEnabled, "Composite Reference Frame is only allowed with NEXT profile");
 #endif
@@ -2341,10 +2337,8 @@ bool EncAppCfg::xCheckParameter()
   {
     xConfirmPara( m_maxNumMergeCand > 5, "MaxNumMergeCand must be 5 or smaller." );
   }
-#if JVET_K1000_SIMPLIFIED_EMT
   xConfirmPara( m_EMT < 0 || m_EMT >3, "EMT must be 0, 1, 2 or 3" );
   xConfirmPara( m_FastEMT < 0 || m_FastEMT >3, "FEMT must be 0, 1, 2 or 3" );
-#endif
   if( m_usePCM)
   {
     for (uint32_t channelType = 0; channelType < MAX_NUM_CHANNEL_TYPE; channelType++)
@@ -3226,9 +3220,7 @@ void EncAppCfg::xPrintParameter()
 #if JVET_K0190
     msg( VERBOSE, "LMChroma:%d ", m_LMChroma );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
     msg( VERBOSE, "EMT: %1d(intra) %1d(inter) ", m_EMT & 1, ( m_EMT >> 1 ) & 1 );
-#endif
 #if JVET_K0157
     msg(VERBOSE, "CompositeLTReference:%d ", m_compositeRefEnabled);
 #endif
@@ -3252,9 +3244,7 @@ void EncAppCfg::xPrintParameter()
 #if JVET_K0357_AMVR
   if( m_ImvMode == 2 ) msg( VERBOSE, "IMV4PelFast:%d ", m_Imv4PelFast );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   if( m_EMT ) msg( VERBOSE, "EMTFast: %1d(intra) %1d(inter) ", ( m_FastEMT & m_EMT & 1 ), ( m_FastEMT >> 1 ) & ( m_EMT >> 1 ) & 1 );
-#endif
   if( m_QTBT ) msg( VERBOSE, "AMaxBT:%d ", m_useAMaxBT );
   if( m_QTBT ) msg( VERBOSE, "E0023FastEnc:%d ", m_e0023FastEnc );
   if( m_QTBT ) msg( VERBOSE, "ContentBasedFastQtbt:%d ", m_contentBasedFastQtbt );
diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h
index 106893be4d47790f170557887aee64d855bb661d..8a060f6df82d961d222f4cb3a8c4b78e29bd415c 100644
--- a/source/App/EncoderApp/EncAppCfg.h
+++ b/source/App/EncoderApp/EncAppCfg.h
@@ -225,10 +225,8 @@ protected:
 #if JVET_K0190
   int       m_LMChroma;
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   int       m_EMT;                                            ///< XZ: Enhanced Multiple Transform
   int       m_FastEMT;                                        ///< XZ: Fast Methods of Enhanced Multiple Transform
-#endif
 
 #if JVET_K0157
   bool      m_compositeRefEnabled;
diff --git a/source/Lib/CommonLib/CodingStatistics.h b/source/Lib/CommonLib/CodingStatistics.h
index 43496c0356fad85d3ef477cd0dcc62cd4dd5b41b..db496883ed55a35123ac2d19cd6b746ebc34c222 100644
--- a/source/Lib/CommonLib/CodingStatistics.h
+++ b/source/Lib/CommonLib/CodingStatistics.h
@@ -110,13 +110,9 @@ enum CodingStatisticsType
 #if JVET_K0357_AMVR
   STATS__CABAC_BITS__IMV_FLAG,
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   STATS__CABAC_BITS__EMT_CU_FLAG,
   STATS__CABAC_BITS__EMT_TU_INDEX,
-#endif
-#if JVET_K1000_SIMPLIFIED_EMT
   STATS__TOOL_EMT,
-#endif
   STATS__TOOL_TOTAL,
   STATS__NUM_STATS
 };
@@ -194,10 +190,8 @@ static inline const char* getName(CodingStatisticsType name)
 #if JVET_K0357_AMVR
     "CABAC_BITS__IMV_FLAG",
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
     "CABAC_BITS__EMT_CU_FLAG",
     "CABAC_BITS__EMT_TU_INDX",
-#endif
     "CABAC_BITS__OTHER",
     "CABAC_BITS__INVALID",
     "TOOL_FRAME",
diff --git a/source/Lib/CommonLib/CommonDef.h b/source/Lib/CommonLib/CommonDef.h
index d878f43d5bd1a0489a65f8b5aafc010739d7bd89..a22503274cb15dd96ae715ca15118b4165d6ed66 100644
--- a/source/Lib/CommonLib/CommonDef.h
+++ b/source/Lib/CommonLib/CommonDef.h
@@ -224,17 +224,10 @@ static const int DM_CHROMA_IDX =                       NUM_INTRA_MODE; ///< chro
 
 static const uint8_t INTER_MODE_IDX =                               255; ///< index for inter modes
 
-#if JVET_K1000_SIMPLIFIED_EMT
 static const uint32_t  EMT_INTRA_MAX_CU =                              32; ///< Max Intra CU size applying EMT, supported values: 8, 16, 32, 64, 128
 static const uint32_t  EMT_INTER_MAX_CU =                              32; ///< Max Inter CU size applying EMT, supported values: 8, 16, 32, 64, 128
-#if JVET_K1000_SIMPLIFIED_EMT
 static const uint32_t  EMT_INTRA_MAX_CU_WITH_QTBT =                    32; ///< Max Intra CU size applying EMT, supported values: 8, 16, 32, 64, 128
 static const uint32_t  EMT_INTER_MAX_CU_WITH_QTBT =                    32; ///< Max Inter CU size applying EMT, supported values: 8, 16, 32, 64, 128
-#else
-static const uint32_t  EMT_INTRA_MAX_CU_WITH_QTBT =                    64; ///< Max Intra CU size applying EMT, supported values: 8, 16, 32, 64, 128
-static const uint32_t  EMT_INTER_MAX_CU_WITH_QTBT =                    64; ///< Max Inter CU size applying EMT, supported values: 8, 16, 32, 64, 128
-#endif
-#endif
 
 #if INTRA67_3MPM
 static const int NUM_MOST_PROBABLE_MODES = 3;
@@ -340,9 +333,7 @@ static const int MAX_ENCODER_DEBLOCKING_QUALITY_LAYERS =           8 ;
 static const uint32_t LUMA_LEVEL_TO_DQP_LUT_MAXSIZE =                1024; ///< max LUT size for QP offset based on luma
 
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
 static const int NUM_EMT_CU_FLAG_CTX =                              6;      ///< number of context models for EMT CU-level flag
-#endif
 
 //QTBT high level parameters
 //for I slice luma CTB configuration para.
diff --git a/source/Lib/CommonLib/ContextModelling.cpp b/source/Lib/CommonLib/ContextModelling.cpp
index ad1154433cebc5d5f0c57ee59d520115c810e1cc..c9589b85c0cfd3e26bed416688c0a1502dc6dc76 100644
--- a/source/Lib/CommonLib/ContextModelling.cpp
+++ b/source/Lib/CommonLib/ContextModelling.cpp
@@ -297,9 +297,7 @@ CoeffCodingContext::CoeffCodingContext(const TransformUnit& tu, ComponentID comp
 #if JVET_K0072
 #else
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   , m_emtNumSigCoeff            (0)
-#endif
 {
   // LOGTODO
   unsigned log2sizeX = m_log2BlockWidth;
diff --git a/source/Lib/CommonLib/ContextModelling.h b/source/Lib/CommonLib/ContextModelling.h
index ff3743f96a0c5059017fb5007d5fc37790578658..6d234252a677ae428ada384a0099b572491d6a59 100644
--- a/source/Lib/CommonLib/ContextModelling.h
+++ b/source/Lib/CommonLib/ContextModelling.h
@@ -431,10 +431,8 @@ public:
   }
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT
   unsigned        emtNumSigCoeff()                          const { return m_emtNumSigCoeff; }
   void            setEmtNumSigCoeff( unsigned val )               { m_emtNumSigCoeff = val; }
-#endif
 
 private:
   // constant
@@ -516,9 +514,7 @@ private:
 #if JVET_K0072
 #else
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   unsigned                  m_emtNumSigCoeff;
-#endif
 };
 
 
diff --git a/source/Lib/CommonLib/Contexts.cpp b/source/Lib/CommonLib/Contexts.cpp
index b387c12caabc004df24bc3a9bb36e0313f6cf210..c474b3cdcc05b77073e90b2a41e8e2887c5b79e5 100644
--- a/source/Lib/CommonLib/Contexts.cpp
+++ b/source/Lib/CommonLib/Contexts.cpp
@@ -714,7 +714,6 @@ const CtxSet ContextSetCfg::RdpcmDir = ContextSetCfg::addCtxSet
   {  CNU, CNU,},
 });
 
-#if JVET_K1000_SIMPLIFIED_EMT
 const CtxSet ContextSetCfg::EMTTuIndex = ContextSetCfg::addCtxSet
 ({
   {  CNU, CNU, CNU, CNU,},
@@ -728,7 +727,6 @@ const CtxSet ContextSetCfg::EMTCuFlag = ContextSetCfg::addCtxSet
   {  CNU, CNU, CNU, CNU, CNU, CNU,},
   {  CNU, CNU, CNU, CNU, CNU, CNU,},
 });
-#endif
 
 const CtxSet ContextSetCfg::CrossCompPred = ContextSetCfg::addCtxSet
 ({
diff --git a/source/Lib/CommonLib/Contexts.h b/source/Lib/CommonLib/Contexts.h
index d98a572cd88ef9a806ceddd112a75ea42635168b..b15860c821715cb5fc5fe19aa3eb86bca869eb68 100644
--- a/source/Lib/CommonLib/Contexts.h
+++ b/source/Lib/CommonLib/Contexts.h
@@ -202,10 +202,8 @@ public:
   static const CtxSet   TransquantBypassFlag;
   static const CtxSet   RdpcmFlag;
   static const CtxSet   RdpcmDir;
-#if JVET_K1000_SIMPLIFIED_EMT
   static const CtxSet   EMTTuIndex;
   static const CtxSet   EMTCuFlag;
-#endif
   static const CtxSet   CrossCompPred;
   static const CtxSet   ChromaQpAdjFlag;
   static const CtxSet   ChromaQpAdjIdc;
diff --git a/source/Lib/CommonLib/Rom.cpp b/source/Lib/CommonLib/Rom.cpp
index 84c9beca97ea9ca805a2651e8f4d1b721e4a5e06..baba1e315fc2d6f8f69f5d212a5fd88f647b53f5 100644
--- a/source/Lib/CommonLib/Rom.cpp
+++ b/source/Lib/CommonLib/Rom.cpp
@@ -257,9 +257,6 @@ void initROM()
       case 3: iT = g_aiTr16[0][0]; break;
       case 4: iT = g_aiTr32[0][0]; break;
       case 5: iT = g_aiTr64[0][0]; break;
-#if !JVET_K1000_SIMPLIFIED_EMT
-      case 6: iT = g_aiTr128[0][0]; break;
-#endif
       default: exit(0); break;
     }
 
@@ -282,17 +279,6 @@ void initROM()
         v = sin(PI*(k + 0.5)*(n + 1) / (c + 0.5)) * sqrt(2.0 / (c + 0.5));
         iT[DST7*c*c + k*c + n] = (int16_t)(s * v + (v > 0 ? 0.5 : -0.5));
 
-#if !JVET_K1000_SIMPLIFIED_EMT
-        // DCT-V
-        w0 = (k == 0) ? sqrt(0.5) : 1.0;
-        double w1 = (n == 0) ? sqrt(0.5) : 1.0;
-        v = cos(PI*n*k / (c - 0.5)) * w0 * w1 * sqrt(2.0 / (c - 0.5));
-        iT[DCT5*c*c + k*c + n] = (int16_t)(s * v + (v > 0 ? 0.5 : -0.5));
-
-        // DST-I
-        v = sin(PI*(n + 1)*(k + 1) / (c + 1)) * sqrt(2.0 / (c + 1));
-        iT[DST1*c*c + k*c + n] = (int16_t)(s * v + (v > 0 ? 0.5 : -0.5));
-#endif
       }
     }
     c <<= 1;
@@ -474,13 +460,8 @@ const int g_invQuantScales[SCALING_LIST_REM_NUM] =
 
 //--------------------------------------------------------------------------------------------------
 //structures
-#if JVET_K1000_SIMPLIFIED_EMT
 //EMT transform sets
-#if JVET_K1000_SIMPLIFIED_EMT
 const int g_aiTrSubsetIntra[3][2] = { { DST7, DCT8 }, { DST7, DCT8 }, { DST7, DCT8 } };
-#else
-const int g_aiTrSubsetIntra[3][2] = { { DST7, DCT8 }, { DST7, DST1 }, { DST7, DCT5 } };
-#endif
 const int g_aiTrSubsetInter[4] = { DCT8, DST7 };
 
 const uint8_t g_aucTrSetVert[NUM_INTRA_MODE - 1] =
@@ -503,7 +484,6 @@ const uint8_t g_aucTrSetHorz35[35] =
 //EMT threshold
 const uint32_t g_EmtSigNumThr = 2;
 
-#endif
 
 //EMT transform coeficient variable
 TMatrixCoeff g_aiTr2  [NUM_TRANS_TYPE][  2][  2];
@@ -512,9 +492,6 @@ TMatrixCoeff g_aiTr8  [NUM_TRANS_TYPE][  8][  8];
 TMatrixCoeff g_aiTr16 [NUM_TRANS_TYPE][ 16][ 16];
 TMatrixCoeff g_aiTr32 [NUM_TRANS_TYPE][ 32][ 32];
 TMatrixCoeff g_aiTr64 [NUM_TRANS_TYPE][ 64][ 64];
-#if !JVET_K1000_SIMPLIFIED_EMT
-TMatrixCoeff g_aiTr128[NUM_TRANS_TYPE][128][128];
-#endif
 
 //--------------------------------------------------------------------------------------------------
 //coefficients
diff --git a/source/Lib/CommonLib/Rom.h b/source/Lib/CommonLib/Rom.h
index 0fe6ba2222e8c87feac1a5fe78573ddfbd5dd335..1b98dbe27410715935c5ff7588e130f424fd40dc 100644
--- a/source/Lib/CommonLib/Rom.h
+++ b/source/Lib/CommonLib/Rom.h
@@ -70,25 +70,8 @@ extern       uint32_t*  g_scanOrderPosXY[SCAN_NUMBER_OF_GROUP_TYPES][SCAN_NUMBER
 extern const int g_quantScales   [SCALING_LIST_REM_NUM];          // Q(QP%6)
 extern const int g_invQuantScales[SCALING_LIST_REM_NUM];          // IQ(QP%6)
 
-#if JVET_K1000_SIMPLIFIED_EMT
 static const int g_numTransformMatrixSizes = 6;
 static const int g_transformMatrixShift[TRANSFORM_NUMBER_OF_DIRECTIONS] = {  6, 6 };
-#else
-static const int g_numTransformMatrixSizes = 7;
-#if RExt__HIGH_PRECISION_FORWARD_TRANSFORM
-static const int g_transformMatrixShift[TRANSFORM_NUMBER_OF_DIRECTIONS] = { 14, 6 };
-#else
-static const int g_transformMatrixShift[TRANSFORM_NUMBER_OF_DIRECTIONS] = {  6, 6 };
-#endif
-
-extern const TMatrixCoeff g_aiT2  [TRANSFORM_NUMBER_OF_DIRECTIONS][  2][  2];
-extern const TMatrixCoeff g_aiT4  [TRANSFORM_NUMBER_OF_DIRECTIONS][  4][  4];
-extern const TMatrixCoeff g_aiT8  [TRANSFORM_NUMBER_OF_DIRECTIONS][  8][  8];
-extern const TMatrixCoeff g_aiT16 [TRANSFORM_NUMBER_OF_DIRECTIONS][ 16][ 16];
-extern const TMatrixCoeff g_aiT32 [TRANSFORM_NUMBER_OF_DIRECTIONS][ 32][ 32];
-extern const TMatrixCoeff g_aiT64 [TRANSFORM_NUMBER_OF_DIRECTIONS][ 64][ 64];
-extern const TMatrixCoeff g_aiT128[TRANSFORM_NUMBER_OF_DIRECTIONS][128][128];
-#endif
 
 
 // ====================================================================================================================
@@ -146,7 +129,6 @@ static const unsigned mpmCtx[NUM_INTRA_MODE] =
 extern const TMatrixCoeff g_as_DST_MAT_4 [TRANSFORM_NUMBER_OF_DIRECTIONS][4][4];
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT
 extern const int g_aiTrSubsetIntra[3][2];
 extern const int g_aiTrSubsetInter[4];
 
@@ -157,7 +139,6 @@ extern const uint8_t g_aucTrSetVert35[35];
 extern const uint8_t g_aucTrSetHorz35[35];
 
 extern const uint32_t g_EmtSigNumThr;
-#endif
 
 extern TMatrixCoeff g_aiTr2   [NUM_TRANS_TYPE][  2][  2];
 extern TMatrixCoeff g_aiTr4   [NUM_TRANS_TYPE][  4][  4];
@@ -165,9 +146,6 @@ extern TMatrixCoeff g_aiTr8   [NUM_TRANS_TYPE][  8][  8];
 extern TMatrixCoeff g_aiTr16  [NUM_TRANS_TYPE][ 16][ 16];
 extern TMatrixCoeff g_aiTr32  [NUM_TRANS_TYPE][ 32][ 32];
 extern TMatrixCoeff g_aiTr64  [NUM_TRANS_TYPE][ 64][ 64];
-#if !JVET_K1000_SIMPLIFIED_EMT
-extern TMatrixCoeff g_aiTr128 [NUM_TRANS_TYPE][128][128];
-#endif
 
 
 // ====================================================================================================================
diff --git a/source/Lib/CommonLib/RomTr.cpp b/source/Lib/CommonLib/RomTr.cpp
index 493f77f82b5fa7785810907cccc70818a8609438..4f2b3c3d869ec079129fe1b1b117f7d8d9abaaef 100644
--- a/source/Lib/CommonLib/RomTr.cpp
+++ b/source/Lib/CommonLib/RomTr.cpp
@@ -37,423 +37,5 @@
 
 #include "Rom.h"
 
-#if !JVET_K1000_SIMPLIFIED_EMT
-
-//--------------------------------------------------------------------------------------------------
-// Transformations
-
-#if HEVC_USE_4x4_DSTVII
-#define DEFINE_DST4x4_MATRIX(a,b,c,d) \
-{ \
-  {  a,  b,  c,  d }, \
-  {  c,  c,  0, -c }, \
-  {  d, -a, -c,  b }, \
-  {  b, -d,  c, -a }, \
-}
-
-#endif
-#define DEFINE_DCT2x2_MATRIX(a) \
-{ \
-  {a,  a}, \
-  {a, -a}  \
-}
-
-#define DEFINE_DCT4x4_MATRIX(a,b,c) \
-{ \
-  { a,  a,  a,  a}, \
-  { b,  c, -c, -b}, \
-  { a, -a, -a,  a}, \
-  { c, -b,  b, -c}  \
-}
-
-#define DEFINE_DCT8x8_MATRIX(a,b,c,d,e,f,g) \
-{ \
-  { a,  a,  a,  a,  a,  a,  a,  a}, \
-  { d,  e,  f,  g, -g, -f, -e, -d}, \
-  { b,  c, -c, -b, -b, -c,  c,  b}, \
-  { e, -g, -d, -f,  f,  d,  g, -e}, \
-  { a, -a, -a,  a,  a, -a, -a,  a}, \
-  { f, -d,  g,  e, -e, -g,  d, -f}, \
-  { c, -b,  b, -c, -c,  b, -b,  c}, \
-  { g, -f,  e, -d,  d, -e,  f, -g}  \
-}
-
-#define DEFINE_DCT16x16_MATRIX(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) \
-{ \
-  { a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a}, \
-  { h,  i,  j,  k,  l,  m,  n,  o, -o, -n, -m, -l, -k, -j, -i, -h}, \
-  { d,  e,  f,  g, -g, -f, -e, -d, -d, -e, -f, -g,  g,  f,  e,  d}, \
-  { i,  l,  o, -m, -j, -h, -k, -n,  n,  k,  h,  j,  m, -o, -l, -i}, \
-  { b,  c, -c, -b, -b, -c,  c,  b,  b,  c, -c, -b, -b, -c,  c,  b}, \
-  { j,  o, -k, -i, -n,  l,  h,  m, -m, -h, -l,  n,  i,  k, -o, -j}, \
-  { e, -g, -d, -f,  f,  d,  g, -e, -e,  g,  d,  f, -f, -d, -g,  e}, \
-  { k, -m, -i,  o,  h,  n, -j, -l,  l,  j, -n, -h, -o,  i,  m, -k}, \
-  { a, -a, -a,  a,  a, -a, -a,  a,  a, -a, -a,  a,  a, -a, -a,  a}, \
-  { l, -j, -n,  h, -o, -i,  m,  k, -k, -m,  i,  o, -h,  n,  j, -l}, \
-  { f, -d,  g,  e, -e, -g,  d, -f, -f,  d, -g, -e,  e,  g, -d,  f}, \
-  { m, -h,  l,  n, -i,  k,  o, -j,  j, -o, -k,  i, -n, -l,  h, -m}, \
-  { c, -b,  b, -c, -c,  b, -b,  c,  c, -b,  b, -c, -c,  b, -b,  c}, \
-  { n, -k,  h, -j,  m,  o, -l,  i, -i,  l, -o, -m,  j, -h,  k, -n}, \
-  { g, -f,  e, -d,  d, -e,  f, -g, -g,  f, -e,  d, -d,  e, -f,  g}, \
-  { o, -n,  m, -l,  k, -j,  i, -h,  h, -i,  j, -k,  l, -m,  n, -o}  \
-}
-
-#define DEFINE_DCT32x32_MATRIX(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E) \
-{ \
-  { a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a,  a}, \
-  { p,  q,  r,  s,  t,  u,  v,  w,  x,  y,  z,  A,  B,  C,  D,  E, -E, -D, -C, -B, -A, -z, -y, -x, -w, -v, -u, -t, -s, -r, -q, -p}, \
-  { h,  i,  j,  k,  l,  m,  n,  o, -o, -n, -m, -l, -k, -j, -i, -h, -h, -i, -j, -k, -l, -m, -n, -o,  o,  n,  m,  l,  k,  j,  i,  h}, \
-  { q,  t,  w,  z,  C, -E, -B, -y, -v, -s, -p, -r, -u, -x, -A, -D,  D,  A,  x,  u,  r,  p,  s,  v,  y,  B,  E, -C, -z, -w, -t, -q}, \
-  { d,  e,  f,  g, -g, -f, -e, -d, -d, -e, -f, -g,  g,  f,  e,  d,  d,  e,  f,  g, -g, -f, -e, -d, -d, -e, -f, -g,  g,  f,  e,  d}, \
-  { r,  w,  B, -D, -y, -t, -p, -u, -z, -E,  A,  v,  q,  s,  x,  C, -C, -x, -s, -q, -v, -A,  E,  z,  u,  p,  t,  y,  D, -B, -w, -r}, \
-  { i,  l,  o, -m, -j, -h, -k, -n,  n,  k,  h,  j,  m, -o, -l, -i, -i, -l, -o,  m,  j,  h,  k,  n, -n, -k, -h, -j, -m,  o,  l,  i}, \
-  { s,  z, -D, -w, -p, -v, -C,  A,  t,  r,  y, -E, -x, -q, -u, -B,  B,  u,  q,  x,  E, -y, -r, -t, -A,  C,  v,  p,  w,  D, -z, -s}, \
-  { b,  c, -c, -b, -b, -c,  c,  b,  b,  c, -c, -b, -b, -c,  c,  b,  b,  c, -c, -b, -b, -c,  c,  b,  b,  c, -c, -b, -b, -c,  c,  b}, \
-  { t,  C, -y, -p, -x,  D,  u,  s,  B, -z, -q, -w,  E,  v,  r,  A, -A, -r, -v, -E,  w,  q,  z, -B, -s, -u, -D,  x,  p,  y, -C, -t}, \
-  { j,  o, -k, -i, -n,  l,  h,  m, -m, -h, -l,  n,  i,  k, -o, -j, -j, -o,  k,  i,  n, -l, -h, -m,  m,  h,  l, -n, -i, -k,  o,  j}, \
-  { u, -E, -t, -v,  D,  s,  w, -C, -r, -x,  B,  q,  y, -A, -p, -z,  z,  p,  A, -y, -q, -B,  x,  r,  C, -w, -s, -D,  v,  t,  E, -u}, \
-  { e, -g, -d, -f,  f,  d,  g, -e, -e,  g,  d,  f, -f, -d, -g,  e,  e, -g, -d, -f,  f,  d,  g, -e, -e,  g,  d,  f, -f, -d, -g,  e}, \
-  { v, -B, -p, -C,  u,  w, -A, -q, -D,  t,  x, -z, -r, -E,  s,  y, -y, -s,  E,  r,  z, -x, -t,  D,  q,  A, -w, -u,  C,  p,  B, -v}, \
-  { k, -m, -i,  o,  h,  n, -j, -l,  l,  j, -n, -h, -o,  i,  m, -k, -k,  m,  i, -o, -h, -n,  j,  l, -l, -j,  n,  h,  o, -i, -m,  k}, \
-  { w, -y, -u,  A,  s, -C, -q,  E,  p,  D, -r, -B,  t,  z, -v, -x,  x,  v, -z, -t,  B,  r, -D, -p, -E,  q,  C, -s, -A,  u,  y, -w}, \
-  { a, -a, -a,  a,  a, -a, -a,  a,  a, -a, -a,  a,  a, -a, -a,  a,  a, -a, -a,  a,  a, -a, -a,  a,  a, -a, -a,  a,  a, -a, -a,  a}, \
-  { x, -v, -z,  t,  B, -r, -D,  p, -E, -q,  C,  s, -A, -u,  y,  w, -w, -y,  u,  A, -s, -C,  q,  E, -p,  D,  r, -B, -t,  z,  v, -x}, \
-  { l, -j, -n,  h, -o, -i,  m,  k, -k, -m,  i,  o, -h,  n,  j, -l, -l,  j,  n, -h,  o,  i, -m, -k,  k,  m, -i, -o,  h, -n, -j,  l}, \
-  { y, -s, -E,  r, -z, -x,  t,  D, -q,  A,  w, -u, -C,  p, -B, -v,  v,  B, -p,  C,  u, -w, -A,  q, -D, -t,  x,  z, -r,  E,  s, -y}, \
-  { f, -d,  g,  e, -e, -g,  d, -f, -f,  d, -g, -e,  e,  g, -d,  f,  f, -d,  g,  e, -e, -g,  d, -f, -f,  d, -g, -e,  e,  g, -d,  f}, \
-  { z, -p,  A,  y, -q,  B,  x, -r,  C,  w, -s,  D,  v, -t,  E,  u, -u, -E,  t, -v, -D,  s, -w, -C,  r, -x, -B,  q, -y, -A,  p, -z}, \
-  { m, -h,  l,  n, -i,  k,  o, -j,  j, -o, -k,  i, -n, -l,  h, -m, -m,  h, -l, -n,  i, -k, -o,  j, -j,  o,  k, -i,  n,  l, -h,  m}, \
-  { A, -r,  v, -E, -w,  q, -z, -B,  s, -u,  D,  x, -p,  y,  C, -t,  t, -C, -y,  p, -x, -D,  u, -s,  B,  z, -q,  w,  E, -v,  r, -A}, \
-  { c, -b,  b, -c, -c,  b, -b,  c,  c, -b,  b, -c, -c,  b, -b,  c,  c, -b,  b, -c, -c,  b, -b,  c,  c, -b,  b, -c, -c,  b, -b,  c}, \
-  { B, -u,  q, -x,  E,  y, -r,  t, -A, -C,  v, -p,  w, -D, -z,  s, -s,  z,  D, -w,  p, -v,  C,  A, -t,  r, -y, -E,  x, -q,  u, -B}, \
-  { n, -k,  h, -j,  m,  o, -l,  i, -i,  l, -o, -m,  j, -h,  k, -n, -n,  k, -h,  j, -m, -o,  l, -i,  i, -l,  o,  m, -j,  h, -k,  n}, \
-  { C, -x,  s, -q,  v, -A, -E,  z, -u,  p, -t,  y, -D, -B,  w, -r,  r, -w,  B,  D, -y,  t, -p,  u, -z,  E,  A, -v,  q, -s,  x, -C}, \
-  { g, -f,  e, -d,  d, -e,  f, -g, -g,  f, -e,  d, -d,  e, -f,  g,  g, -f,  e, -d,  d, -e,  f, -g, -g,  f, -e,  d, -d,  e, -f,  g}, \
-  { D, -A,  x, -u,  r, -p,  s, -v,  y, -B,  E,  C, -z,  w, -t,  q, -q,  t, -w,  z, -C, -E,  B, -y,  v, -s,  p, -r,  u, -x,  A, -D}, \
-  { o, -n,  m, -l,  k, -j,  i, -h,  h, -i,  j, -k,  l, -m,  n, -o, -o,  n, -m,  l, -k,  j, -i,  h, -h,  i, -j,  k, -l,  m, -n,  o}, \
-  { E, -D,  C, -B,  A, -z,  y, -x,  w, -v,  u, -t,  s, -r,  q, -p,  p, -q,  r, -s,  t, -u,  v, -w,  x, -y,  z, -A,  B, -C,  D, -E}  \
-}
-
-
-#define DEFINE_DCT64x64_MATRIX(aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck) \
-{ \
-  { aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa }, \
-  { bf,  bg,  bh,  bi,  bj,  bk,  bl,  bm,  bn,  bo,  bp,  bq,  br,  bs,  bt,  bu,  bv,  bw,  bx,  by,  bz,  ca,  cb,  cc,  cd,  ce,  cf,  cg,  ch,  ci,  cj,  ck, -ck, -cj, -ci, -ch, -cg, -cf, -ce, -cd, -cc, -cb, -ca, -bz, -by, -bx, -bw, -bv, -bu, -bt, -bs, -br, -bq, -bp, -bo, -bn, -bm, -bl, -bk, -bj, -bi, -bh, -bg, -bf }, \
-  { ap,  aq,  ar,  as,  at,  au,  av,  aw,  ax,  ay,  az,  ba,  bb,  bc,  bd,  be, -be, -bd, -bc, -bb, -ba, -az, -ay, -ax, -aw, -av, -au, -at, -as, -ar, -aq, -ap, -ap, -aq, -ar, -as, -at, -au, -av, -aw, -ax, -ay, -az, -ba, -bb, -bc, -bd, -be,  be,  bd,  bc,  bb,  ba,  az,  ay,  ax,  aw,  av,  au,  at,  as,  ar,  aq,  ap }, \
-  { bg,  bj,  bm,  bp,  bs,  bv,  by,  cb,  ce,  ch,  ck, -ci, -cf, -cc, -bz, -bw, -bt, -bq, -bn, -bk, -bh, -bf, -bi, -bl, -bo, -br, -bu, -bx, -ca, -cd, -cg, -cj,  cj,  cg,  cd,  ca,  bx,  bu,  br,  bo,  bl,  bi,  bf,  bh,  bk,  bn,  bq,  bt,  bw,  bz,  cc,  cf,  ci, -ck, -ch, -ce, -cb, -by, -bv, -bs, -bp, -bm, -bj, -bg }, \
-  { ah,  ai,  aj,  ak,  al,  am,  an,  ao, -ao, -an, -am, -al, -ak, -aj, -ai, -ah, -ah, -ai, -aj, -ak, -al, -am, -an, -ao,  ao,  an,  am,  al,  ak,  aj,  ai,  ah,  ah,  ai,  aj,  ak,  al,  am,  an,  ao, -ao, -an, -am, -al, -ak, -aj, -ai, -ah, -ah, -ai, -aj, -ak, -al, -am, -an, -ao,  ao,  an,  am,  al,  ak,  aj,  ai,  ah }, \
-  { bh,  bm,  br,  bw,  cb,  cg, -ck, -cf, -ca, -bv, -bq, -bl, -bg, -bi, -bn, -bs, -bx, -cc, -ch,  cj,  ce,  bz,  bu,  bp,  bk,  bf,  bj,  bo,  bt,  by,  cd,  ci, -ci, -cd, -by, -bt, -bo, -bj, -bf, -bk, -bp, -bu, -bz, -ce, -cj,  ch,  cc,  bx,  bs,  bn,  bi,  bg,  bl,  bq,  bv,  ca,  cf,  ck, -cg, -cb, -bw, -br, -bm, -bh }, \
-  { aq,  at,  aw,  az,  bc, -be, -bb, -ay, -av, -as, -ap, -ar, -au, -ax, -ba, -bd,  bd,  ba,  ax,  au,  ar,  ap,  as,  av,  ay,  bb,  be, -bc, -az, -aw, -at, -aq, -aq, -at, -aw, -az, -bc,  be,  bb,  ay,  av,  as,  ap,  ar,  au,  ax,  ba,  bd, -bd, -ba, -ax, -au, -ar, -ap, -as, -av, -ay, -bb, -be,  bc,  az,  aw,  at,  aq }, \
-  { bi,  bp,  bw,  cd,  ck, -ce, -bx, -bq, -bj, -bh, -bo, -bv, -cc, -cj,  cf,  by,  br,  bk,  bg,  bn,  bu,  cb,  ci, -cg, -bz, -bs, -bl, -bf, -bm, -bt, -ca, -ch,  ch,  ca,  bt,  bm,  bf,  bl,  bs,  bz,  cg, -ci, -cb, -bu, -bn, -bg, -bk, -br, -by, -cf,  cj,  cc,  bv,  bo,  bh,  bj,  bq,  bx,  ce, -ck, -cd, -bw, -bp, -bi }, \
-  { ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad }, \
-  { bj,  bs,  cb,  ck, -cc, -bt, -bk, -bi, -br, -ca, -cj,  cd,  bu,  bl,  bh,  bq,  bz,  ci, -ce, -bv, -bm, -bg, -bp, -by, -ch,  cf,  bw,  bn,  bf,  bo,  bx,  cg, -cg, -bx, -bo, -bf, -bn, -bw, -cf,  ch,  by,  bp,  bg,  bm,  bv,  ce, -ci, -bz, -bq, -bh, -bl, -bu, -cd,  cj,  ca,  br,  bi,  bk,  bt,  cc, -ck, -cb, -bs, -bj }, \
-  { ar,  aw,  bb, -bd, -ay, -at, -ap, -au, -az, -be,  ba,  av,  aq,  as,  ax,  bc, -bc, -ax, -as, -aq, -av, -ba,  be,  az,  au,  ap,  at,  ay,  bd, -bb, -aw, -ar, -ar, -aw, -bb,  bd,  ay,  at,  ap,  au,  az,  be, -ba, -av, -aq, -as, -ax, -bc,  bc,  ax,  as,  aq,  av,  ba, -be, -az, -au, -ap, -at, -ay, -bd,  bb,  aw,  ar }, \
-  { bk,  bv,  cg, -ce, -bt, -bi, -bm, -bx, -ci,  cc,  br,  bg,  bo,  bz,  ck, -ca, -bp, -bf, -bq, -cb,  cj,  by,  bn,  bh,  bs,  cd, -ch, -bw, -bl, -bj, -bu, -cf,  cf,  bu,  bj,  bl,  bw,  ch, -cd, -bs, -bh, -bn, -by, -cj,  cb,  bq,  bf,  bp,  ca, -ck, -bz, -bo, -bg, -br, -cc,  ci,  bx,  bm,  bi,  bt,  ce, -cg, -bv, -bk }, \
-  { ai,  al,  ao, -am, -aj, -ah, -ak, -an,  an,  ak,  ah,  aj,  am, -ao, -al, -ai, -ai, -al, -ao,  am,  aj,  ah,  ak,  an, -an, -ak, -ah, -aj, -am,  ao,  al,  ai,  ai,  al,  ao, -am, -aj, -ah, -ak, -an,  an,  ak,  ah,  aj,  am, -ao, -al, -ai, -ai, -al, -ao,  am,  aj,  ah,  ak,  an, -an, -ak, -ah, -aj, -am,  ao,  al,  ai }, \
-  { bl,  by, -ck, -bx, -bk, -bm, -bz,  cj,  bw,  bj,  bn,  ca, -ci, -bv, -bi, -bo, -cb,  ch,  bu,  bh,  bp,  cc, -cg, -bt, -bg, -bq, -cd,  cf,  bs,  bf,  br,  ce, -ce, -br, -bf, -bs, -cf,  cd,  bq,  bg,  bt,  cg, -cc, -bp, -bh, -bu, -ch,  cb,  bo,  bi,  bv,  ci, -ca, -bn, -bj, -bw, -cj,  bz,  bm,  bk,  bx,  ck, -by, -bl }, \
-  { as,  az, -bd, -aw, -ap, -av, -bc,  ba,  at,  ar,  ay, -be, -ax, -aq, -au, -bb,  bb,  au,  aq,  ax,  be, -ay, -ar, -at, -ba,  bc,  av,  ap,  aw,  bd, -az, -as, -as, -az,  bd,  aw,  ap,  av,  bc, -ba, -at, -ar, -ay,  be,  ax,  aq,  au,  bb, -bb, -au, -aq, -ax, -be,  ay,  ar,  at,  ba, -bc, -av, -ap, -aw, -bd,  az,  as }, \
-  { bm,  cb, -cf, -bq, -bi, -bx,  cj,  bu,  bf,  bt,  ci, -by, -bj, -bp, -ce,  cc,  bn,  bl,  ca, -cg, -br, -bh, -bw,  ck,  bv,  bg,  bs,  ch, -bz, -bk, -bo, -cd,  cd,  bo,  bk,  bz, -ch, -bs, -bg, -bv, -ck,  bw,  bh,  br,  cg, -ca, -bl, -bn, -cc,  ce,  bp,  bj,  by, -ci, -bt, -bf, -bu, -cj,  bx,  bi,  bq,  cf, -cb, -bm }, \
-  { ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab }, \
-  { bn,  ce, -ca, -bj, -br, -ci,  bw,  bf,  bv, -cj, -bs, -bi, -bz,  cf,  bo,  bm,  cd, -cb, -bk, -bq, -ch,  bx,  bg,  bu, -ck, -bt, -bh, -by,  cg,  bp,  bl,  cc, -cc, -bl, -bp, -cg,  by,  bh,  bt,  ck, -bu, -bg, -bx,  ch,  bq,  bk,  cb, -cd, -bm, -bo, -cf,  bz,  bi,  bs,  cj, -bv, -bf, -bw,  ci,  br,  bj,  ca, -ce, -bn }, \
-  { at,  bc, -ay, -ap, -ax,  bd,  au,  as,  bb, -az, -aq, -aw,  be,  av,  ar,  ba, -ba, -ar, -av, -be,  aw,  aq,  az, -bb, -as, -au, -bd,  ax,  ap,  ay, -bc, -at, -at, -bc,  ay,  ap,  ax, -bd, -au, -as, -bb,  az,  aq,  aw, -be, -av, -ar, -ba,  ba,  ar,  av,  be, -aw, -aq, -az,  bb,  as,  au,  bd, -ax, -ap, -ay,  bc,  at }, \
-  { bo,  ch, -bv, -bh, -ca,  cc,  bj,  bt, -cj, -bq, -bm, -cf,  bx,  bf,  by, -ce, -bl, -br, -ck,  bs,  bk,  cd, -bz, -bg, -bw,  cg,  bn,  bp,  ci, -bu, -bi, -cb,  cb,  bi,  bu, -ci, -bp, -bn, -cg,  bw,  bg,  bz, -cd, -bk, -bs,  ck,  br,  bl,  ce, -by, -bf, -bx,  cf,  bm,  bq,  cj, -bt, -bj, -cc,  ca,  bh,  bv, -ch, -bo }, \
-  { aj,  ao, -ak, -ai, -an,  al,  ah,  am, -am, -ah, -al,  an,  ai,  ak, -ao, -aj, -aj, -ao,  ak,  ai,  an, -al, -ah, -am,  am,  ah,  al, -an, -ai, -ak,  ao,  aj,  aj,  ao, -ak, -ai, -an,  al,  ah,  am, -am, -ah, -al,  an,  ai,  ak, -ao, -aj, -aj, -ao,  ak,  ai,  an, -al, -ah, -am,  am,  ah,  al, -an, -ai, -ak,  ao,  aj }, \
-  { bp,  ck, -bq, -bo, -cj,  br,  bn,  ci, -bs, -bm, -ch,  bt,  bl,  cg, -bu, -bk, -cf,  bv,  bj,  ce, -bw, -bi, -cd,  bx,  bh,  cc, -by, -bg, -cb,  bz,  bf,  ca, -ca, -bf, -bz,  cb,  bg,  by, -cc, -bh, -bx,  cd,  bi,  bw, -ce, -bj, -bv,  cf,  bk,  bu, -cg, -bl, -bt,  ch,  bm,  bs, -ci, -bn, -br,  cj,  bo,  bq, -ck, -bp }, \
-  { au, -be, -at, -av,  bd,  as,  aw, -bc, -ar, -ax,  bb,  aq,  ay, -ba, -ap, -az,  az,  ap,  ba, -ay, -aq, -bb,  ax,  ar,  bc, -aw, -as, -bd,  av,  at,  be, -au, -au,  be,  at,  av, -bd, -as, -aw,  bc,  ar,  ax, -bb, -aq, -ay,  ba,  ap,  az, -az, -ap, -ba,  ay,  aq,  bb, -ax, -ar, -bc,  aw,  as,  bd, -av, -at, -be,  au }, \
-  { bq, -ci, -bl, -bv,  cd,  bg,  ca, -by, -bi, -cf,  bt,  bn,  ck, -bo, -bs,  cg,  bj,  bx, -cb, -bf, -cc,  bw,  bk,  ch, -br, -bp,  cj,  bm,  bu, -ce, -bh, -bz,  bz,  bh,  ce, -bu, -bm, -cj,  bp,  br, -ch, -bk, -bw,  cc,  bf,  cb, -bx, -bj, -cg,  bs,  bo, -ck, -bn, -bt,  cf,  bi,  by, -ca, -bg, -cd,  bv,  bl,  ci, -bq }, \
-  { ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae }, \
-  { br, -cf, -bg, -cc,  bu,  bo, -ci, -bj, -bz,  bx,  bl,  ck, -bm, -bw,  ca,  bi,  ch, -bp, -bt,  cd,  bf,  ce, -bs, -bq,  cg,  bh,  cb, -bv, -bn,  cj,  bk,  by, -by, -bk, -cj,  bn,  bv, -cb, -bh, -cg,  bq,  bs, -ce, -bf, -cd,  bt,  bp, -ch, -bi, -ca,  bw,  bm, -ck, -bl, -bx,  bz,  bj,  ci, -bo, -bu,  cc,  bg,  cf, -br }, \
-  { av, -bb, -ap, -bc,  au,  aw, -ba, -aq, -bd,  at,  ax, -az, -ar, -be,  as,  ay, -ay, -as,  be,  ar,  az, -ax, -at,  bd,  aq,  ba, -aw, -au,  bc,  ap,  bb, -av, -av,  bb,  ap,  bc, -au, -aw,  ba,  aq,  bd, -at, -ax,  az,  ar,  be, -as, -ay,  ay,  as, -be, -ar, -az,  ax,  at, -bd, -aq, -ba,  aw,  au, -bc, -ap, -bb,  av }, \
-  { bs, -cc, -bi, -cj,  bl,  bz, -bv, -bp,  cf,  bf,  cg, -bo, -bw,  by,  bm, -ci, -bh, -cd,  br,  bt, -cb, -bj, -ck,  bk,  ca, -bu, -bq,  ce,  bg,  ch, -bn, -bx,  bx,  bn, -ch, -bg, -ce,  bq,  bu, -ca, -bk,  ck,  bj,  cb, -bt, -br,  cd,  bh,  ci, -bm, -by,  bw,  bo, -cg, -bf, -cf,  bp,  bv, -bz, -bl,  cj,  bi,  cc, -bs }, \
-  { ak, -am, -ai,  ao,  ah,  an, -aj, -al,  al,  aj, -an, -ah, -ao,  ai,  am, -ak, -ak,  am,  ai, -ao, -ah, -an,  aj,  al, -al, -aj,  an,  ah,  ao, -ai, -am,  ak,  ak, -am, -ai,  ao,  ah,  an, -aj, -al,  al,  aj, -an, -ah, -ao,  ai,  am, -ak, -ak,  am,  ai, -ao, -ah, -an,  aj,  al, -al, -aj,  an,  ah,  ao, -ai, -am,  ak }, \
-  { bt, -bz, -bn,  cf,  bh,  ck, -bi, -ce,  bo,  by, -bu, -bs,  ca,  bm, -cg, -bg, -cj,  bj,  cd, -bp, -bx,  bv,  br, -cb, -bl,  ch,  bf,  ci, -bk, -cc,  bq,  bw, -bw, -bq,  cc,  bk, -ci, -bf, -ch,  bl,  cb, -br, -bv,  bx,  bp, -cd, -bj,  cj,  bg,  cg, -bm, -ca,  bs,  bu, -by, -bo,  ce,  bi, -ck, -bh, -cf,  bn,  bz, -bt }, \
-  { aw, -ay, -au,  ba,  as, -bc, -aq,  be,  ap,  bd, -ar, -bb,  at,  az, -av, -ax,  ax,  av, -az, -at,  bb,  ar, -bd, -ap, -be,  aq,  bc, -as, -ba,  au,  ay, -aw, -aw,  ay,  au, -ba, -as,  bc,  aq, -be, -ap, -bd,  ar,  bb, -at, -az,  av,  ax, -ax, -av,  az,  at, -bb, -ar,  bd,  ap,  be, -aq, -bc,  as,  ba, -au, -ay,  aw }, \
-  { bu, -bw, -bs,  by,  bq, -ca, -bo,  cc,  bm, -ce, -bk,  cg,  bi, -ci, -bg,  ck,  bf,  cj, -bh, -ch,  bj,  cf, -bl, -cd,  bn,  cb, -bp, -bz,  br,  bx, -bt, -bv,  bv,  bt, -bx, -br,  bz,  bp, -cb, -bn,  cd,  bl, -cf, -bj,  ch,  bh, -cj, -bf, -ck,  bg,  ci, -bi, -cg,  bk,  ce, -bm, -cc,  bo,  ca, -bq, -by,  bs,  bw, -bu }, \
-  { aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa }, \
-  { bv, -bt, -bx,  br,  bz, -bp, -cb,  bn,  cd, -bl, -cf,  bj,  ch, -bh, -cj,  bf, -ck, -bg,  ci,  bi, -cg, -bk,  ce,  bm, -cc, -bo,  ca,  bq, -by, -bs,  bw,  bu, -bu, -bw,  bs,  by, -bq, -ca,  bo,  cc, -bm, -ce,  bk,  cg, -bi, -ci,  bg,  ck, -bf,  cj,  bh, -ch, -bj,  cf,  bl, -cd, -bn,  cb,  bp, -bz, -br,  bx,  bt, -bv }, \
-  { ax, -av, -az,  at,  bb, -ar, -bd,  ap, -be, -aq,  bc,  as, -ba, -au,  ay,  aw, -aw, -ay,  au,  ba, -as, -bc,  aq,  be, -ap,  bd,  ar, -bb, -at,  az,  av, -ax, -ax,  av,  az, -at, -bb,  ar,  bd, -ap,  be,  aq, -bc, -as,  ba,  au, -ay, -aw,  aw,  ay, -au, -ba,  as,  bc, -aq, -be,  ap, -bd, -ar,  bb,  at, -az, -av,  ax }, \
-  { bw, -bq, -cc,  bk,  ci, -bf,  ch,  bl, -cb, -br,  bv,  bx, -bp, -cd,  bj,  cj, -bg,  cg,  bm, -ca, -bs,  bu,  by, -bo, -ce,  bi,  ck, -bh,  cf,  bn, -bz, -bt,  bt,  bz, -bn, -cf,  bh, -ck, -bi,  ce,  bo, -by, -bu,  bs,  ca, -bm, -cg,  bg, -cj, -bj,  cd,  bp, -bx, -bv,  br,  cb, -bl, -ch,  bf, -ci, -bk,  cc,  bq, -bw }, \
-  { al, -aj, -an,  ah, -ao, -ai,  am,  ak, -ak, -am,  ai,  ao, -ah,  an,  aj, -al, -al,  aj,  an, -ah,  ao,  ai, -am, -ak,  ak,  am, -ai, -ao,  ah, -an, -aj,  al,  al, -aj, -an,  ah, -ao, -ai,  am,  ak, -ak, -am,  ai,  ao, -ah,  an,  aj, -al, -al,  aj,  an, -ah,  ao,  ai, -am, -ak,  ak,  am, -ai, -ao,  ah, -an, -aj,  al }, \
-  { bx, -bn, -ch,  bg, -ce, -bq,  bu,  ca, -bk, -ck,  bj, -cb, -bt,  br,  cd, -bh,  ci,  bm, -by, -bw,  bo,  cg, -bf,  cf,  bp, -bv, -bz,  bl,  cj, -bi,  cc,  bs, -bs, -cc,  bi, -cj, -bl,  bz,  bv, -bp, -cf,  bf, -cg, -bo,  bw,  by, -bm, -ci,  bh, -cd, -br,  bt,  cb, -bj,  ck,  bk, -ca, -bu,  bq,  ce, -bg,  ch,  bn, -bx }, \
-  { ay, -as, -be,  ar, -az, -ax,  at,  bd, -aq,  ba,  aw, -au, -bc,  ap, -bb, -av,  av,  bb, -ap,  bc,  au, -aw, -ba,  aq, -bd, -at,  ax,  az, -ar,  be,  as, -ay, -ay,  as,  be, -ar,  az,  ax, -at, -bd,  aq, -ba, -aw,  au,  bc, -ap,  bb,  av, -av, -bb,  ap, -bc, -au,  aw,  ba, -aq,  bd,  at, -ax, -az,  ar, -be, -as,  ay }, \
-  { by, -bk,  cj,  bn, -bv, -cb,  bh, -cg, -bq,  bs,  ce, -bf,  cd,  bt, -bp, -ch,  bi, -ca, -bw,  bm,  ck, -bl,  bx,  bz, -bj,  ci,  bo, -bu, -cc,  bg, -cf, -br,  br,  cf, -bg,  cc,  bu, -bo, -ci,  bj, -bz, -bx,  bl, -ck, -bm,  bw,  ca, -bi,  ch,  bp, -bt, -cd,  bf, -ce, -bs,  bq,  cg, -bh,  cb,  bv, -bn, -cj,  bk, -by }, \
-  { af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af }, \
-  { bz, -bh,  ce,  bu, -bm,  cj,  bp, -br, -ch,  bk, -bw, -cc,  bf, -cb, -bx,  bj, -cg, -bs,  bo,  ck, -bn,  bt,  cf, -bi,  by,  ca, -bg,  cd,  bv, -bl,  ci,  bq, -bq, -ci,  bl, -bv, -cd,  bg, -ca, -by,  bi, -cf, -bt,  bn, -ck, -bo,  bs,  cg, -bj,  bx,  cb, -bf,  cc,  bw, -bk,  ch,  br, -bp, -cj,  bm, -bu, -ce,  bh, -bz }, \
-  { az, -ap,  ba,  ay, -aq,  bb,  ax, -ar,  bc,  aw, -as,  bd,  av, -at,  be,  au, -au, -be,  at, -av, -bd,  as, -aw, -bc,  ar, -ax, -bb,  aq, -ay, -ba,  ap, -az, -az,  ap, -ba, -ay,  aq, -bb, -ax,  ar, -bc, -aw,  as, -bd, -av,  at, -be, -au,  au,  be, -at,  av,  bd, -as,  aw,  bc, -ar,  ax,  bb, -aq,  ay,  ba, -ap,  az }, \
-  { ca, -bf,  bz,  cb, -bg,  by,  cc, -bh,  bx,  cd, -bi,  bw,  ce, -bj,  bv,  cf, -bk,  bu,  cg, -bl,  bt,  ch, -bm,  bs,  ci, -bn,  br,  cj, -bo,  bq,  ck, -bp,  bp, -ck, -bq,  bo, -cj, -br,  bn, -ci, -bs,  bm, -ch, -bt,  bl, -cg, -bu,  bk, -cf, -bv,  bj, -ce, -bw,  bi, -cd, -bx,  bh, -cc, -by,  bg, -cb, -bz,  bf, -ca }, \
-  { am, -ah,  al,  an, -ai,  ak,  ao, -aj,  aj, -ao, -ak,  ai, -an, -al,  ah, -am, -am,  ah, -al, -an,  ai, -ak, -ao,  aj, -aj,  ao,  ak, -ai,  an,  al, -ah,  am,  am, -ah,  al,  an, -ai,  ak,  ao, -aj,  aj, -ao, -ak,  ai, -an, -al,  ah, -am, -am,  ah, -al, -an,  ai, -ak, -ao,  aj, -aj,  ao,  ak, -ai,  an,  al, -ah,  am }, \
-  { cb, -bi,  bu,  ci, -bp,  bn, -cg, -bw,  bg, -bz, -cd,  bk, -bs, -ck,  br, -bl,  ce,  by, -bf,  bx,  cf, -bm,  bq, -cj, -bt,  bj, -cc, -ca,  bh, -bv, -ch,  bo, -bo,  ch,  bv, -bh,  ca,  cc, -bj,  bt,  cj, -bq,  bm, -cf, -bx,  bf, -by, -ce,  bl, -br,  ck,  bs, -bk,  cd,  bz, -bg,  bw,  cg, -bn,  bp, -ci, -bu,  bi, -cb }, \
-  { ba, -ar,  av, -be, -aw,  aq, -az, -bb,  as, -au,  bd,  ax, -ap,  ay,  bc, -at,  at, -bc, -ay,  ap, -ax, -bd,  au, -as,  bb,  az, -aq,  aw,  be, -av,  ar, -ba, -ba,  ar, -av,  be,  aw, -aq,  az,  bb, -as,  au, -bd, -ax,  ap, -ay, -bc,  at, -at,  bc,  ay, -ap,  ax,  bd, -au,  as, -bb, -az,  aq, -aw, -be,  av, -ar,  ba }, \
-  { cc, -bl,  bp, -cg, -by,  bh, -bt,  ck,  bu, -bg,  bx,  ch, -bq,  bk, -cb, -cd,  bm, -bo,  cf,  bz, -bi,  bs, -cj, -bv,  bf, -bw, -ci,  br, -bj,  ca,  ce, -bn,  bn, -ce, -ca,  bj, -br,  ci,  bw, -bf,  bv,  cj, -bs,  bi, -bz, -cf,  bo, -bm,  cd,  cb, -bk,  bq, -ch, -bx,  bg, -bu, -ck,  bt, -bh,  by,  cg, -bp,  bl, -cc }, \
-  { ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac }, \
-  { cd, -bo,  bk, -bz, -ch,  bs, -bg,  bv, -ck, -bw,  bh, -br,  cg,  ca, -bl,  bn, -cc, -ce,  bp, -bj,  by,  ci, -bt,  bf, -bu,  cj,  bx, -bi,  bq, -cf, -cb,  bm, -bm,  cb,  cf, -bq,  bi, -bx, -cj,  bu, -bf,  bt, -ci, -by,  bj, -bp,  ce,  cc, -bn,  bl, -ca, -cg,  br, -bh,  bw,  ck, -bv,  bg, -bs,  ch,  bz, -bk,  bo, -cd }, \
-  { bb, -au,  aq, -ax,  be,  ay, -ar,  at, -ba, -bc,  av, -ap,  aw, -bd, -az,  as, -as,  az,  bd, -aw,  ap, -av,  bc,  ba, -at,  ar, -ay, -be,  ax, -aq,  au, -bb, -bb,  au, -aq,  ax, -be, -ay,  ar, -at,  ba,  bc, -av,  ap, -aw,  bd,  az, -as,  as, -az, -bd,  aw, -ap,  av, -bc, -ba,  at, -ar,  ay,  be, -ax,  aq, -au,  bb }, \
-  { ce, -br,  bf, -bs,  cf,  cd, -bq,  bg, -bt,  cg,  cc, -bp,  bh, -bu,  ch,  cb, -bo,  bi, -bv,  ci,  ca, -bn,  bj, -bw,  cj,  bz, -bm,  bk, -bx,  ck,  by, -bl,  bl, -by, -ck,  bx, -bk,  bm, -bz, -cj,  bw, -bj,  bn, -ca, -ci,  bv, -bi,  bo, -cb, -ch,  bu, -bh,  bp, -cc, -cg,  bt, -bg,  bq, -cd, -cf,  bs, -bf,  br, -ce }, \
-  { an, -ak,  ah, -aj,  am,  ao, -al,  ai, -ai,  al, -ao, -am,  aj, -ah,  ak, -an, -an,  ak, -ah,  aj, -am, -ao,  al, -ai,  ai, -al,  ao,  am, -aj,  ah, -ak,  an,  an, -ak,  ah, -aj,  am,  ao, -al,  ai, -ai,  al, -ao, -am,  aj, -ah,  ak, -an, -an,  ak, -ah,  aj, -am, -ao,  al, -ai,  ai, -al,  ao,  am, -aj,  ah, -ak,  an }, \
-  { cf, -bu,  bj, -bl,  bw, -ch, -cd,  bs, -bh,  bn, -by,  cj,  cb, -bq,  bf, -bp,  ca,  ck, -bz,  bo, -bg,  br, -cc, -ci,  bx, -bm,  bi, -bt,  ce,  cg, -bv,  bk, -bk,  bv, -cg, -ce,  bt, -bi,  bm, -bx,  ci,  cc, -br,  bg, -bo,  bz, -ck, -ca,  bp, -bf,  bq, -cb, -cj,  by, -bn,  bh, -bs,  cd,  ch, -bw,  bl, -bj,  bu, -cf }, \
-  { bc, -ax,  as, -aq,  av, -ba, -be,  az, -au,  ap, -at,  ay, -bd, -bb,  aw, -ar,  ar, -aw,  bb,  bd, -ay,  at, -ap,  au, -az,  be,  ba, -av,  aq, -as,  ax, -bc, -bc,  ax, -as,  aq, -av,  ba,  be, -az,  au, -ap,  at, -ay,  bd,  bb, -aw,  ar, -ar,  aw, -bb, -bd,  ay, -at,  ap, -au,  az, -be, -ba,  av, -aq,  as, -ax,  bc }, \
-  { cg, -bx,  bo, -bf,  bn, -bw,  cf,  ch, -by,  bp, -bg,  bm, -bv,  ce,  ci, -bz,  bq, -bh,  bl, -bu,  cd,  cj, -ca,  br, -bi,  bk, -bt,  cc,  ck, -cb,  bs, -bj,  bj, -bs,  cb, -ck, -cc,  bt, -bk,  bi, -br,  ca, -cj, -cd,  bu, -bl,  bh, -bq,  bz, -ci, -ce,  bv, -bm,  bg, -bp,  by, -ch, -cf,  bw, -bn,  bf, -bo,  bx, -cg }, \
-  { ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag }, \
-  { ch, -ca,  bt, -bm,  bf, -bl,  bs, -bz,  cg,  ci, -cb,  bu, -bn,  bg, -bk,  br, -by,  cf,  cj, -cc,  bv, -bo,  bh, -bj,  bq, -bx,  ce,  ck, -cd,  bw, -bp,  bi, -bi,  bp, -bw,  cd, -ck, -ce,  bx, -bq,  bj, -bh,  bo, -bv,  cc, -cj, -cf,  by, -br,  bk, -bg,  bn, -bu,  cb, -ci, -cg,  bz, -bs,  bl, -bf,  bm, -bt,  ca, -ch }, \
-  { bd, -ba,  ax, -au,  ar, -ap,  as, -av,  ay, -bb,  be,  bc, -az,  aw, -at,  aq, -aq,  at, -aw,  az, -bc, -be,  bb, -ay,  av, -as,  ap, -ar,  au, -ax,  ba, -bd, -bd,  ba, -ax,  au, -ar,  ap, -as,  av, -ay,  bb, -be, -bc,  az, -aw,  at, -aq,  aq, -at,  aw, -az,  bc,  be, -bb,  ay, -av,  as, -ap,  ar, -au,  ax, -ba,  bd }, \
-  { ci, -cd,  by, -bt,  bo, -bj,  bf, -bk,  bp, -bu,  bz, -ce,  cj,  ch, -cc,  bx, -bs,  bn, -bi,  bg, -bl,  bq, -bv,  ca, -cf,  ck,  cg, -cb,  bw, -br,  bm, -bh,  bh, -bm,  br, -bw,  cb, -cg, -ck,  cf, -ca,  bv, -bq,  bl, -bg,  bi, -bn,  bs, -bx,  cc, -ch, -cj,  ce, -bz,  bu, -bp,  bk, -bf,  bj, -bo,  bt, -by,  cd, -ci }, \
-  { ao, -an,  am, -al,  ak, -aj,  ai, -ah,  ah, -ai,  aj, -ak,  al, -am,  an, -ao, -ao,  an, -am,  al, -ak,  aj, -ai,  ah, -ah,  ai, -aj,  ak, -al,  am, -an,  ao,  ao, -an,  am, -al,  ak, -aj,  ai, -ah,  ah, -ai,  aj, -ak,  al, -am,  an, -ao, -ao,  an, -am,  al, -ak,  aj, -ai,  ah, -ah,  ai, -aj,  ak, -al,  am, -an,  ao }, \
-  { cj, -cg,  cd, -ca,  bx, -bu,  br, -bo,  bl, -bi,  bf, -bh,  bk, -bn,  bq, -bt,  bw, -bz,  cc, -cf,  ci,  ck, -ch,  ce, -cb,  by, -bv,  bs, -bp,  bm, -bj,  bg, -bg,  bj, -bm,  bp, -bs,  bv, -by,  cb, -ce,  ch, -ck, -ci,  cf, -cc,  bz, -bw,  bt, -bq,  bn, -bk,  bh, -bf,  bi, -bl,  bo, -br,  bu, -bx,  ca, -cd,  cg, -cj }, \
-  { be, -bd,  bc, -bb,  ba, -az,  ay, -ax,  aw, -av,  au, -at,  as, -ar,  aq, -ap,  ap, -aq,  ar, -as,  at, -au,  av, -aw,  ax, -ay,  az, -ba,  bb, -bc,  bd, -be, -be,  bd, -bc,  bb, -ba,  az, -ay,  ax, -aw,  av, -au,  at, -as,  ar, -aq,  ap, -ap,  aq, -ar,  as, -at,  au, -av,  aw, -ax,  ay, -az,  ba, -bb,  bc, -bd,  be }, \
-  { ck, -cj,  ci, -ch,  cg, -cf,  ce, -cd,  cc, -cb,  ca, -bz,  by, -bx,  bw, -bv,  bu, -bt,  bs, -br,  bq, -bp,  bo, -bn,  bm, -bl,  bk, -bj,  bi, -bh,  bg, -bf,  bf, -bg,  bh, -bi,  bj, -bk,  bl, -bm,  bn, -bo,  bp, -bq,  br, -bs,  bt, -bu,  bv, -bw,  bx, -by,  bz, -ca,  cb, -cc,  cd, -ce,  cf, -cg,  ch, -ci,  cj, -ck }, \
- }
-
-
-#define DEFINE_DCT128x128_MATRIX( aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, cl, cm, cn, co, cp, cq, cr, cs, ct, cu, cv, cw, cx, cy, cz, da, db, dc, dd, de, df, dg, dh, di, dj, dk, dl, dm, dn, d_, dp, dq, dr, ds, dt, du, dv, dw, dx, dy, dz, ea, eb, ec, ed, ee, ef, eg, eh, ei, ej, ek, el, em, en, eo, ep, eq, er, es, et, eu, ev, ew ) \
-{ \
-  { aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa,  aa } ,\
-  { cl,  cm,  cn,  co,  cp,  cq,  cr,  cs,  ct,  cu,  cv,  cw,  cx,  cy,  cz,  da,  db,  dc,  dd,  de,  df,  dg,  dh,  di,  dj,  dk,  dl,  dm,  dn,  d_,  dp,  dq,  dr,  ds,  dt,  du,  dv,  dw,  dx,  dy,  dz,  ea,  eb,  ec,  ed,  ee,  ef,  eg,  eh,  ei,  ej,  ek,  el,  em,  en,  eo,  ep,  eq,  er,  es,  et,  eu,  ev,  ew, -ew, -ev, -eu, -et, -es, -er, -eq, -ep, -eo, -en, -em, -el, -ek, -ej, -ei, -eh, -eg, -ef, -ee, -ed, -ec, -eb, -ea, -dz, -dy, -dx, -dw, -dv, -du, -dt, -ds, -dr, -dq, -dp, -d_, -dn, -dm, -dl, -dk, -dj, -di, -dh, -dg, -df, -de, -dd, -dc, -db, -da, -cz, -cy, -cx, -cw, -cv, -cu, -ct, -cs, -cr, -cq, -cp, -co, -cn, -cm, -cl } ,\
-  { bf,  bg,  bh,  bi,  bj,  bk,  bl,  bm,  bn,  bo,  bp,  bq,  br,  bs,  bt,  bu,  bv,  bw,  bx,  by,  bz,  ca,  cb,  cc,  cd,  ce,  cf,  cg,  ch,  ci,  cj,  ck, -ck, -cj, -ci, -ch, -cg, -cf, -ce, -cd, -cc, -cb, -ca, -bz, -by, -bx, -bw, -bv, -bu, -bt, -bs, -br, -bq, -bp, -bo, -bn, -bm, -bl, -bk, -bj, -bi, -bh, -bg, -bf, -bf, -bg, -bh, -bi, -bj, -bk, -bl, -bm, -bn, -bo, -bp, -bq, -br, -bs, -bt, -bu, -bv, -bw, -bx, -by, -bz, -ca, -cb, -cc, -cd, -ce, -cf, -cg, -ch, -ci, -cj, -ck,  ck,  cj,  ci,  ch,  cg,  cf,  ce,  cd,  cc,  cb,  ca,  bz,  by,  bx,  bw,  bv,  bu,  bt,  bs,  br,  bq,  bp,  bo,  bn,  bm,  bl,  bk,  bj,  bi,  bh,  bg,  bf } ,\
-  { cm,  cp,  cs,  cv,  cy,  db,  de,  dh,  dk,  dn,  dq,  dt,  dw,  dz,  ec,  ef,  ei,  el,  eo,  er,  eu, -ew, -et, -eq, -en, -ek, -eh, -ee, -eb, -dy, -dv, -ds, -dp, -dm, -dj, -dg, -dd, -da, -cx, -cu, -cr, -co, -cl, -cn, -cq, -ct, -cw, -cz, -dc, -df, -di, -dl, -d_, -dr, -du, -dx, -ea, -ed, -eg, -ej, -em, -ep, -es, -ev,  ev,  es,  ep,  em,  ej,  eg,  ed,  ea,  dx,  du,  dr,  d_,  dl,  di,  df,  dc,  cz,  cw,  ct,  cq,  cn,  cl,  co,  cr,  cu,  cx,  da,  dd,  dg,  dj,  dm,  dp,  ds,  dv,  dy,  eb,  ee,  eh,  ek,  en,  eq,  et,  ew, -eu, -er, -eo, -el, -ei, -ef, -ec, -dz, -dw, -dt, -dq, -dn, -dk, -dh, -de, -db, -cy, -cv, -cs, -cp, -cm } ,\
-  { ap,  aq,  ar,  as,  at,  au,  av,  aw,  ax,  ay,  az,  ba,  bb,  bc,  bd,  be, -be, -bd, -bc, -bb, -ba, -az, -ay, -ax, -aw, -av, -au, -at, -as, -ar, -aq, -ap, -ap, -aq, -ar, -as, -at, -au, -av, -aw, -ax, -ay, -az, -ba, -bb, -bc, -bd, -be,  be,  bd,  bc,  bb,  ba,  az,  ay,  ax,  aw,  av,  au,  at,  as,  ar,  aq,  ap,  ap,  aq,  ar,  as,  at,  au,  av,  aw,  ax,  ay,  az,  ba,  bb,  bc,  bd,  be, -be, -bd, -bc, -bb, -ba, -az, -ay, -ax, -aw, -av, -au, -at, -as, -ar, -aq, -ap, -ap, -aq, -ar, -as, -at, -au, -av, -aw, -ax, -ay, -az, -ba, -bb, -bc, -bd, -be,  be,  bd,  bc,  bb,  ba,  az,  ay,  ax,  aw,  av,  au,  at,  as,  ar,  aq,  ap } ,\
-  { cn,  cs,  cx,  dc,  dh,  dm,  dr,  dw,  eb,  eg,  el,  eq,  ev, -et, -eo, -ej, -ee, -dz, -du, -dp, -dk, -df, -da, -cv, -cq, -cl, -cp, -cu, -cz, -de, -dj, -d_, -dt, -dy, -ed, -ei, -en, -es,  ew,  er,  em,  eh,  ec,  dx,  ds,  dn,  di,  dd,  cy,  ct,  co,  cm,  cr,  cw,  db,  dg,  dl,  dq,  dv,  ea,  ef,  ek,  ep,  eu, -eu, -ep, -ek, -ef, -ea, -dv, -dq, -dl, -dg, -db, -cw, -cr, -cm, -co, -ct, -cy, -dd, -di, -dn, -ds, -dx, -ec, -eh, -em, -er, -ew,  es,  en,  ei,  ed,  dy,  dt,  d_,  dj,  de,  cz,  cu,  cp,  cl,  cq,  cv,  da,  df,  dk,  dp,  du,  dz,  ee,  ej,  eo,  et, -ev, -eq, -el, -eg, -eb, -dw, -dr, -dm, -dh, -dc, -cx, -cs, -cn } ,\
-  { bg,  bj,  bm,  bp,  bs,  bv,  by,  cb,  ce,  ch,  ck, -ci, -cf, -cc, -bz, -bw, -bt, -bq, -bn, -bk, -bh, -bf, -bi, -bl, -bo, -br, -bu, -bx, -ca, -cd, -cg, -cj,  cj,  cg,  cd,  ca,  bx,  bu,  br,  bo,  bl,  bi,  bf,  bh,  bk,  bn,  bq,  bt,  bw,  bz,  cc,  cf,  ci, -ck, -ch, -ce, -cb, -by, -bv, -bs, -bp, -bm, -bj, -bg, -bg, -bj, -bm, -bp, -bs, -bv, -by, -cb, -ce, -ch, -ck,  ci,  cf,  cc,  bz,  bw,  bt,  bq,  bn,  bk,  bh,  bf,  bi,  bl,  bo,  br,  bu,  bx,  ca,  cd,  cg,  cj, -cj, -cg, -cd, -ca, -bx, -bu, -br, -bo, -bl, -bi, -bf, -bh, -bk, -bn, -bq, -bt, -bw, -bz, -cc, -cf, -ci,  ck,  ch,  ce,  cb,  by,  bv,  bs,  bp,  bm,  bj,  bg } ,\
-  { co,  cv,  dc,  dj,  dq,  dx,  ee,  el,  es, -eu, -en, -eg, -dz, -ds, -dl, -de, -cx, -cq, -cm, -ct, -da, -dh, -d_, -dv, -ec, -ej, -eq,  ew,  ep,  ei,  eb,  du,  dn,  dg,  cz,  cs,  cl,  cr,  cy,  df,  dm,  dt,  ea,  eh,  eo,  ev, -er, -ek, -ed, -dw, -dp, -di, -db, -cu, -cn, -cp, -cw, -dd, -dk, -dr, -dy, -ef, -em, -et,  et,  em,  ef,  dy,  dr,  dk,  dd,  cw,  cp,  cn,  cu,  db,  di,  dp,  dw,  ed,  ek,  er, -ev, -eo, -eh, -ea, -dt, -dm, -df, -cy, -cr, -cl, -cs, -cz, -dg, -dn, -du, -eb, -ei, -ep, -ew,  eq,  ej,  ec,  dv,  d_,  dh,  da,  ct,  cm,  cq,  cx,  de,  dl,  ds,  dz,  eg,  en,  eu, -es, -el, -ee, -dx, -dq, -dj, -dc, -cv, -co } ,\
-  { ah,  ai,  aj,  ak,  al,  am,  an,  ao, -ao, -an, -am, -al, -ak, -aj, -ai, -ah, -ah, -ai, -aj, -ak, -al, -am, -an, -ao,  ao,  an,  am,  al,  ak,  aj,  ai,  ah,  ah,  ai,  aj,  ak,  al,  am,  an,  ao, -ao, -an, -am, -al, -ak, -aj, -ai, -ah, -ah, -ai, -aj, -ak, -al, -am, -an, -ao,  ao,  an,  am,  al,  ak,  aj,  ai,  ah,  ah,  ai,  aj,  ak,  al,  am,  an,  ao, -ao, -an, -am, -al, -ak, -aj, -ai, -ah, -ah, -ai, -aj, -ak, -al, -am, -an, -ao,  ao,  an,  am,  al,  ak,  aj,  ai,  ah,  ah,  ai,  aj,  ak,  al,  am,  an,  ao, -ao, -an, -am, -al, -ak, -aj, -ai, -ah, -ah, -ai, -aj, -ak, -al, -am, -an, -ao,  ao,  an,  am,  al,  ak,  aj,  ai,  ah } ,\
-  { cp,  cy,  dh,  dq,  dz,  ei,  er, -et, -ek, -eb, -ds, -dj, -da, -cr, -cn, -cw, -df, -d_, -dx, -eg, -ep,  ev,  em,  ed,  du,  dl,  dc,  ct,  cl,  cu,  dd,  dm,  dv,  ee,  en,  ew, -eo, -ef, -dw, -dn, -de, -cv, -cm, -cs, -db, -dk, -dt, -ec, -el, -eu,  eq,  eh,  dy,  dp,  dg,  cx,  co,  cq,  cz,  di,  dr,  ea,  ej,  es, -es, -ej, -ea, -dr, -di, -cz, -cq, -co, -cx, -dg, -dp, -dy, -eh, -eq,  eu,  el,  ec,  dt,  dk,  db,  cs,  cm,  cv,  de,  dn,  dw,  ef,  eo, -ew, -en, -ee, -dv, -dm, -dd, -cu, -cl, -ct, -dc, -dl, -du, -ed, -em, -ev,  ep,  eg,  dx,  d_,  df,  cw,  cn,  cr,  da,  dj,  ds,  eb,  ek,  et, -er, -ei, -dz, -dq, -dh, -cy, -cp } ,\
-  { bh,  bm,  br,  bw,  cb,  cg, -ck, -cf, -ca, -bv, -bq, -bl, -bg, -bi, -bn, -bs, -bx, -cc, -ch,  cj,  ce,  bz,  bu,  bp,  bk,  bf,  bj,  bo,  bt,  by,  cd,  ci, -ci, -cd, -by, -bt, -bo, -bj, -bf, -bk, -bp, -bu, -bz, -ce, -cj,  ch,  cc,  bx,  bs,  bn,  bi,  bg,  bl,  bq,  bv,  ca,  cf,  ck, -cg, -cb, -bw, -br, -bm, -bh, -bh, -bm, -br, -bw, -cb, -cg,  ck,  cf,  ca,  bv,  bq,  bl,  bg,  bi,  bn,  bs,  bx,  cc,  ch, -cj, -ce, -bz, -bu, -bp, -bk, -bf, -bj, -bo, -bt, -by, -cd, -ci,  ci,  cd,  by,  bt,  bo,  bj,  bf,  bk,  bp,  bu,  bz,  ce,  cj, -ch, -cc, -bx, -bs, -bn, -bi, -bg, -bl, -bq, -bv, -ca, -cf, -ck,  cg,  cb,  bw,  br,  bm,  bh } ,\
-  { cq,  db,  dm,  dx,  ei,  et, -ep, -ee, -dt, -di, -cx, -cm, -cu, -df, -dq, -eb, -em,  ew,  el,  ea,  dp,  de,  ct,  cn,  cy,  dj,  du,  ef,  eq, -es, -eh, -dw, -dl, -da, -cp, -cr, -dc, -dn, -dy, -ej, -eu,  eo,  ed,  ds,  dh,  cw,  cl,  cv,  dg,  dr,  ec,  en, -ev, -ek, -dz, -d_, -dd, -cs, -co, -cz, -dk, -dv, -eg, -er,  er,  eg,  dv,  dk,  cz,  co,  cs,  dd,  d_,  dz,  ek,  ev, -en, -ec, -dr, -dg, -cv, -cl, -cw, -dh, -ds, -ed, -eo,  eu,  ej,  dy,  dn,  dc,  cr,  cp,  da,  dl,  dw,  eh,  es, -eq, -ef, -du, -dj, -cy, -cn, -ct, -de, -dp, -ea, -el, -ew,  em,  eb,  dq,  df,  cu,  cm,  cx,  di,  dt,  ee,  ep, -et, -ei, -dx, -dm, -db, -cq } ,\
-  { aq,  at,  aw,  az,  bc, -be, -bb, -ay, -av, -as, -ap, -ar, -au, -ax, -ba, -bd,  bd,  ba,  ax,  au,  ar,  ap,  as,  av,  ay,  bb,  be, -bc, -az, -aw, -at, -aq, -aq, -at, -aw, -az, -bc,  be,  bb,  ay,  av,  as,  ap,  ar,  au,  ax,  ba,  bd, -bd, -ba, -ax, -au, -ar, -ap, -as, -av, -ay, -bb, -be,  bc,  az,  aw,  at,  aq,  aq,  at,  aw,  az,  bc, -be, -bb, -ay, -av, -as, -ap, -ar, -au, -ax, -ba, -bd,  bd,  ba,  ax,  au,  ar,  ap,  as,  av,  ay,  bb,  be, -bc, -az, -aw, -at, -aq, -aq, -at, -aw, -az, -bc,  be,  bb,  ay,  av,  as,  ap,  ar,  au,  ax,  ba,  bd, -bd, -ba, -ax, -au, -ar, -ap, -as, -av, -ay, -bb, -be,  bc,  az,  aw,  at,  aq } ,\
-  { cr,  de,  dr,  ee,  er, -ep, -ec, -dp, -dc, -cp, -ct, -dg, -dt, -eg, -et,  en,  ea,  dn,  da,  cn,  cv,  di,  dv,  ei,  ev, -el, -dy, -dl, -cy, -cl, -cx, -dk, -dx, -ek,  ew,  ej,  dw,  dj,  cw,  cm,  cz,  dm,  dz,  em, -eu, -eh, -du, -dh, -cu, -co, -db, -d_, -eb, -eo,  es,  ef,  ds,  df,  cs,  cq,  dd,  dq,  ed,  eq, -eq, -ed, -dq, -dd, -cq, -cs, -df, -ds, -ef, -es,  eo,  eb,  d_,  db,  co,  cu,  dh,  du,  eh,  eu, -em, -dz, -dm, -cz, -cm, -cw, -dj, -dw, -ej, -ew,  ek,  dx,  dk,  cx,  cl,  cy,  dl,  dy,  el, -ev, -ei, -dv, -di, -cv, -cn, -da, -dn, -ea, -en,  et,  eg,  dt,  dg,  ct,  cp,  dc,  dp,  ec,  ep, -er, -ee, -dr, -de, -cr } ,\
-  { bi,  bp,  bw,  cd,  ck, -ce, -bx, -bq, -bj, -bh, -bo, -bv, -cc, -cj,  cf,  by,  br,  bk,  bg,  bn,  bu,  cb,  ci, -cg, -bz, -bs, -bl, -bf, -bm, -bt, -ca, -ch,  ch,  ca,  bt,  bm,  bf,  bl,  bs,  bz,  cg, -ci, -cb, -bu, -bn, -bg, -bk, -br, -by, -cf,  cj,  cc,  bv,  bo,  bh,  bj,  bq,  bx,  ce, -ck, -cd, -bw, -bp, -bi, -bi, -bp, -bw, -cd, -ck,  ce,  bx,  bq,  bj,  bh,  bo,  bv,  cc,  cj, -cf, -by, -br, -bk, -bg, -bn, -bu, -cb, -ci,  cg,  bz,  bs,  bl,  bf,  bm,  bt,  ca,  ch, -ch, -ca, -bt, -bm, -bf, -bl, -bs, -bz, -cg,  ci,  cb,  bu,  bn,  bg,  bk,  br,  by,  cf, -cj, -cc, -bv, -bo, -bh, -bj, -bq, -bx, -ce,  ck,  cd,  bw,  bp,  bi } ,\
-  { cs,  dh,  dw,  el, -et, -ee, -dp, -da, -cl, -cz, -d_, -ed, -es,  em,  dx,  di,  ct,  cr,  dg,  dv,  ek, -eu, -ef, -dq, -db, -cm, -cy, -dn, -ec, -er,  en,  dy,  dj,  cu,  cq,  df,  du,  ej, -ev, -eg, -dr, -dc, -cn, -cx, -dm, -eb, -eq,  eo,  dz,  dk,  cv,  cp,  de,  dt,  ei, -ew, -eh, -ds, -dd, -co, -cw, -dl, -ea, -ep,  ep,  ea,  dl,  cw,  co,  dd,  ds,  eh,  ew, -ei, -dt, -de, -cp, -cv, -dk, -dz, -eo,  eq,  eb,  dm,  cx,  cn,  dc,  dr,  eg,  ev, -ej, -du, -df, -cq, -cu, -dj, -dy, -en,  er,  ec,  dn,  cy,  cm,  db,  dq,  ef,  eu, -ek, -dv, -dg, -cr, -ct, -di, -dx, -em,  es,  ed,  d_,  cz,  cl,  da,  dp,  ee,  et, -el, -dw, -dh, -cs } ,\
-  { ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad,  ad,  ae,  af,  ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag,  ag,  af,  ae,  ad } ,\
-  { ct,  dk,  eb,  es, -ek, -dt, -dc, -cl, -db, -ds, -ej,  et,  ec,  dl,  cu,  cs,  dj,  ea,  er, -el, -du, -dd, -cm, -da, -dr, -ei,  eu,  ed,  dm,  cv,  cr,  di,  dz,  eq, -em, -dv, -de, -cn, -cz, -dq, -eh,  ev,  ee,  dn,  cw,  cq,  dh,  dy,  ep, -en, -dw, -df, -co, -cy, -dp, -eg,  ew,  ef,  d_,  cx,  cp,  dg,  dx,  eo, -eo, -dx, -dg, -cp, -cx, -d_, -ef, -ew,  eg,  dp,  cy,  co,  df,  dw,  en, -ep, -dy, -dh, -cq, -cw, -dn, -ee, -ev,  eh,  dq,  cz,  cn,  de,  dv,  em, -eq, -dz, -di, -cr, -cv, -dm, -ed, -eu,  ei,  dr,  da,  cm,  dd,  du,  el, -er, -ea, -dj, -cs, -cu, -dl, -ec, -et,  ej,  ds,  db,  cl,  dc,  dt,  ek, -es, -eb, -dk, -ct } ,\
-  { bj,  bs,  cb,  ck, -cc, -bt, -bk, -bi, -br, -ca, -cj,  cd,  bu,  bl,  bh,  bq,  bz,  ci, -ce, -bv, -bm, -bg, -bp, -by, -ch,  cf,  bw,  bn,  bf,  bo,  bx,  cg, -cg, -bx, -bo, -bf, -bn, -bw, -cf,  ch,  by,  bp,  bg,  bm,  bv,  ce, -ci, -bz, -bq, -bh, -bl, -bu, -cd,  cj,  ca,  br,  bi,  bk,  bt,  cc, -ck, -cb, -bs, -bj, -bj, -bs, -cb, -ck,  cc,  bt,  bk,  bi,  br,  ca,  cj, -cd, -bu, -bl, -bh, -bq, -bz, -ci,  ce,  bv,  bm,  bg,  bp,  by,  ch, -cf, -bw, -bn, -bf, -bo, -bx, -cg,  cg,  bx,  bo,  bf,  bn,  bw,  cf, -ch, -by, -bp, -bg, -bm, -bv, -ce,  ci,  bz,  bq,  bh,  bl,  bu,  cd, -cj, -ca, -br, -bi, -bk, -bt, -cc,  ck,  cb,  bs,  bj } ,\
-  { cu,  dn,  eg, -eu, -eb, -di, -cp, -cz, -ds, -el,  ep,  dw,  dd,  cl,  de,  dx,  eq, -ek, -dr, -cy, -cq, -dj, -ec, -ev,  ef,  dm,  ct,  cv,  d_,  eh, -et, -ea, -dh, -co, -da, -dt, -em,  eo,  dv,  dc,  cm,  df,  dy,  er, -ej, -dq, -cx, -cr, -dk, -ed, -ew,  ee,  dl,  cs,  cw,  dp,  ei, -es, -dz, -dg, -cn, -db, -du, -en,  en,  du,  db,  cn,  dg,  dz,  es, -ei, -dp, -cw, -cs, -dl, -ee,  ew,  ed,  dk,  cr,  cx,  dq,  ej, -er, -dy, -df, -cm, -dc, -dv, -eo,  em,  dt,  da,  co,  dh,  ea,  et, -eh, -d_, -cv, -ct, -dm, -ef,  ev,  ec,  dj,  cq,  cy,  dr,  ek, -eq, -dx, -de, -cl, -dd, -dw, -ep,  el,  ds,  cz,  cp,  di,  eb,  eu, -eg, -dn, -cu } ,\
-  { ar,  aw,  bb, -bd, -ay, -at, -ap, -au, -az, -be,  ba,  av,  aq,  as,  ax,  bc, -bc, -ax, -as, -aq, -av, -ba,  be,  az,  au,  ap,  at,  ay,  bd, -bb, -aw, -ar, -ar, -aw, -bb,  bd,  ay,  at,  ap,  au,  az,  be, -ba, -av, -aq, -as, -ax, -bc,  bc,  ax,  as,  aq,  av,  ba, -be, -az, -au, -ap, -at, -ay, -bd,  bb,  aw,  ar,  ar,  aw,  bb, -bd, -ay, -at, -ap, -au, -az, -be,  ba,  av,  aq,  as,  ax,  bc, -bc, -ax, -as, -aq, -av, -ba,  be,  az,  au,  ap,  at,  ay,  bd, -bb, -aw, -ar, -ar, -aw, -bb,  bd,  ay,  at,  ap,  au,  az,  be, -ba, -av, -aq, -as, -ax, -bc,  bc,  ax,  as,  aq,  av,  ba, -be, -az, -au, -ap, -at, -ay, -bd,  bb,  aw,  ar } ,\
-  { cv,  dq,  el, -en, -ds, -cx, -ct, -d_, -ej,  ep,  du,  cz,  cr,  dm,  eh, -er, -dw, -db, -cp, -dk, -ef,  et,  dy,  dd,  cn,  di,  ed, -ev, -ea, -df, -cl, -dg, -eb, -ew,  ec,  dh,  cm,  de,  dz,  eu, -ee, -dj, -co, -dc, -dx, -es,  eg,  dl,  cq,  da,  dv,  eq, -ei, -dn, -cs, -cy, -dt, -eo,  ek,  dp,  cu,  cw,  dr,  em, -em, -dr, -cw, -cu, -dp, -ek,  eo,  dt,  cy,  cs,  dn,  ei, -eq, -dv, -da, -cq, -dl, -eg,  es,  dx,  dc,  co,  dj,  ee, -eu, -dz, -de, -cm, -dh, -ec,  ew,  eb,  dg,  cl,  df,  ea,  ev, -ed, -di, -cn, -dd, -dy, -et,  ef,  dk,  cp,  db,  dw,  er, -eh, -dm, -cr, -cz, -du, -ep,  ej,  d_,  ct,  cx,  ds,  en, -el, -dq, -cv } ,\
-  { bk,  bv,  cg, -ce, -bt, -bi, -bm, -bx, -ci,  cc,  br,  bg,  bo,  bz,  ck, -ca, -bp, -bf, -bq, -cb,  cj,  by,  bn,  bh,  bs,  cd, -ch, -bw, -bl, -bj, -bu, -cf,  cf,  bu,  bj,  bl,  bw,  ch, -cd, -bs, -bh, -bn, -by, -cj,  cb,  bq,  bf,  bp,  ca, -ck, -bz, -bo, -bg, -br, -cc,  ci,  bx,  bm,  bi,  bt,  ce, -cg, -bv, -bk, -bk, -bv, -cg,  ce,  bt,  bi,  bm,  bx,  ci, -cc, -br, -bg, -bo, -bz, -ck,  ca,  bp,  bf,  bq,  cb, -cj, -by, -bn, -bh, -bs, -cd,  ch,  bw,  bl,  bj,  bu,  cf, -cf, -bu, -bj, -bl, -bw, -ch,  cd,  bs,  bh,  bn,  by,  cj, -cb, -bq, -bf, -bp, -ca,  ck,  bz,  bo,  bg,  br,  cc, -ci, -bx, -bm, -bi, -bt, -ce,  cg,  bv,  bk } ,\
-  { cw,  dt,  eq, -eg, -dj, -cm, -dg, -ed,  et,  dw,  cz,  ct,  dq,  en, -ej, -dm, -cp, -dd, -ea,  ew,  dz,  dc,  cq,  dn,  ek, -em, -dp, -cs, -da, -dx, -eu,  ec,  df,  cn,  dk,  eh, -ep, -ds, -cv, -cx, -du, -er,  ef,  di,  cl,  dh,  ee, -es, -dv, -cy, -cu, -dr, -eo,  ei,  dl,  co,  de,  eb, -ev, -dy, -db, -cr, -d_, -el,  el,  d_,  cr,  db,  dy,  ev, -eb, -de, -co, -dl, -ei,  eo,  dr,  cu,  cy,  dv,  es, -ee, -dh, -cl, -di, -ef,  er,  du,  cx,  cv,  ds,  ep, -eh, -dk, -cn, -df, -ec,  eu,  dx,  da,  cs,  dp,  em, -ek, -dn, -cq, -dc, -dz, -ew,  ea,  dd,  cp,  dm,  ej, -en, -dq, -ct, -cz, -dw, -et,  ed,  dg,  cm,  dj,  eg, -eq, -dt, -cw } ,\
-  { ai,  al,  ao, -am, -aj, -ah, -ak, -an,  an,  ak,  ah,  aj,  am, -ao, -al, -ai, -ai, -al, -ao,  am,  aj,  ah,  ak,  an, -an, -ak, -ah, -aj, -am,  ao,  al,  ai,  ai,  al,  ao, -am, -aj, -ah, -ak, -an,  an,  ak,  ah,  aj,  am, -ao, -al, -ai, -ai, -al, -ao,  am,  aj,  ah,  ak,  an, -an, -ak, -ah, -aj, -am,  ao,  al,  ai,  ai,  al,  ao, -am, -aj, -ah, -ak, -an,  an,  ak,  ah,  aj,  am, -ao, -al, -ai, -ai, -al, -ao,  am,  aj,  ah,  ak,  an, -an, -ak, -ah, -aj, -am,  ao,  al,  ai,  ai,  al,  ao, -am, -aj, -ah, -ak, -an,  an,  ak,  ah,  aj,  am, -ao, -al, -ai, -ai, -al, -ao,  am,  aj,  ah,  ak,  an, -an, -ak, -ah, -aj, -am,  ao,  al,  ai } ,\
-  { cx,  dw,  ev, -dz, -da, -cu, -dt, -es,  ec,  dd,  cr,  dq,  ep, -ef, -dg, -co, -dn, -em,  ei,  dj,  cl,  dk,  ej, -el, -dm, -cn, -dh, -eg,  eo,  dp,  cq,  de,  ed, -er, -ds, -ct, -db, -ea,  eu,  dv,  cw,  cy,  dx,  ew, -dy, -cz, -cv, -du, -et,  eb,  dc,  cs,  dr,  eq, -ee, -df, -cp, -d_, -en,  eh,  di,  cm,  dl,  ek, -ek, -dl, -cm, -di, -eh,  en,  d_,  cp,  df,  ee, -eq, -dr, -cs, -dc, -eb,  et,  du,  cv,  cz,  dy, -ew, -dx, -cy, -cw, -dv, -eu,  ea,  db,  ct,  ds,  er, -ed, -de, -cq, -dp, -eo,  eg,  dh,  cn,  dm,  el, -ej, -dk, -cl, -dj, -ei,  em,  dn,  co,  dg,  ef, -ep, -dq, -cr, -dd, -ec,  es,  dt,  cu,  da,  dz, -ev, -dw, -cx } ,\
-  { bl,  by, -ck, -bx, -bk, -bm, -bz,  cj,  bw,  bj,  bn,  ca, -ci, -bv, -bi, -bo, -cb,  ch,  bu,  bh,  bp,  cc, -cg, -bt, -bg, -bq, -cd,  cf,  bs,  bf,  br,  ce, -ce, -br, -bf, -bs, -cf,  cd,  bq,  bg,  bt,  cg, -cc, -bp, -bh, -bu, -ch,  cb,  bo,  bi,  bv,  ci, -ca, -bn, -bj, -bw, -cj,  bz,  bm,  bk,  bx,  ck, -by, -bl, -bl, -by,  ck,  bx,  bk,  bm,  bz, -cj, -bw, -bj, -bn, -ca,  ci,  bv,  bi,  bo,  cb, -ch, -bu, -bh, -bp, -cc,  cg,  bt,  bg,  bq,  cd, -cf, -bs, -bf, -br, -ce,  ce,  br,  bf,  bs,  cf, -cd, -bq, -bg, -bt, -cg,  cc,  bp,  bh,  bu,  ch, -cb, -bo, -bi, -bv, -ci,  ca,  bn,  bj,  bw,  cj, -bz, -bm, -bk, -bx, -ck,  by,  bl } ,\
-  { cy,  dz, -et, -ds, -cr, -df, -eg,  em,  dl,  cl,  dm,  en, -ef, -de, -cs, -dt, -eu,  dy,  cx,  cz,  ea, -es, -dr, -cq, -dg, -eh,  el,  dk,  cm,  dn,  eo, -ee, -dd, -ct, -du, -ev,  dx,  cw,  da,  eb, -er, -dq, -cp, -dh, -ei,  ek,  dj,  cn,  d_,  ep, -ed, -dc, -cu, -dv, -ew,  dw,  cv,  db,  ec, -eq, -dp, -co, -di, -ej,  ej,  di,  co,  dp,  eq, -ec, -db, -cv, -dw,  ew,  dv,  cu,  dc,  ed, -ep, -d_, -cn, -dj, -ek,  ei,  dh,  cp,  dq,  er, -eb, -da, -cw, -dx,  ev,  du,  ct,  dd,  ee, -eo, -dn, -cm, -dk, -el,  eh,  dg,  cq,  dr,  es, -ea, -cz, -cx, -dy,  eu,  dt,  cs,  de,  ef, -en, -dm, -cl, -dl, -em,  eg,  df,  cr,  ds,  et, -dz, -cy } ,\
-  { as,  az, -bd, -aw, -ap, -av, -bc,  ba,  at,  ar,  ay, -be, -ax, -aq, -au, -bb,  bb,  au,  aq,  ax,  be, -ay, -ar, -at, -ba,  bc,  av,  ap,  aw,  bd, -az, -as, -as, -az,  bd,  aw,  ap,  av,  bc, -ba, -at, -ar, -ay,  be,  ax,  aq,  au,  bb, -bb, -au, -aq, -ax, -be,  ay,  ar,  at,  ba, -bc, -av, -ap, -aw, -bd,  az,  as,  as,  az, -bd, -aw, -ap, -av, -bc,  ba,  at,  ar,  ay, -be, -ax, -aq, -au, -bb,  bb,  au,  aq,  ax,  be, -ay, -ar, -at, -ba,  bc,  av,  ap,  aw,  bd, -az, -as, -as, -az,  bd,  aw,  ap,  av,  bc, -ba, -at, -ar, -ay,  be,  ax,  aq,  au,  bb, -bb, -au, -aq, -ax, -be,  ay,  ar,  at,  ba, -bc, -av, -ap, -aw, -bd,  az,  as } ,\
-  { cz,  ec, -eo, -dl, -cn, -dq, -et,  dx,  cu,  de,  eh, -ej, -dg, -cs, -dv,  ev,  ds,  cp,  dj,  em, -ee, -db, -cx, -ea,  eq,  dn,  cl,  d_,  er, -dz, -cw, -dc, -ef,  el,  di,  cq,  dt,  ew, -du, -cr, -dh, -ek,  eg,  dd,  cv,  dy, -es, -dp, -cm, -dm, -ep,  eb,  cy,  da,  ed, -en, -dk, -co, -dr, -eu,  dw,  ct,  df,  ei, -ei, -df, -ct, -dw,  eu,  dr,  co,  dk,  en, -ed, -da, -cy, -eb,  ep,  dm,  cm,  dp,  es, -dy, -cv, -dd, -eg,  ek,  dh,  cr,  du, -ew, -dt, -cq, -di, -el,  ef,  dc,  cw,  dz, -er, -d_, -cl, -dn, -eq,  ea,  cx,  db,  ee, -em, -dj, -cp, -ds, -ev,  dv,  cs,  dg,  ej, -eh, -de, -cu, -dx,  et,  dq,  cn,  dl,  eo, -ec, -cz } ,\
-  { bm,  cb, -cf, -bq, -bi, -bx,  cj,  bu,  bf,  bt,  ci, -by, -bj, -bp, -ce,  cc,  bn,  bl,  ca, -cg, -br, -bh, -bw,  ck,  bv,  bg,  bs,  ch, -bz, -bk, -bo, -cd,  cd,  bo,  bk,  bz, -ch, -bs, -bg, -bv, -ck,  bw,  bh,  br,  cg, -ca, -bl, -bn, -cc,  ce,  bp,  bj,  by, -ci, -bt, -bf, -bu, -cj,  bx,  bi,  bq,  cf, -cb, -bm, -bm, -cb,  cf,  bq,  bi,  bx, -cj, -bu, -bf, -bt, -ci,  by,  bj,  bp,  ce, -cc, -bn, -bl, -ca,  cg,  br,  bh,  bw, -ck, -bv, -bg, -bs, -ch,  bz,  bk,  bo,  cd, -cd, -bo, -bk, -bz,  ch,  bs,  bg,  bv,  ck, -bw, -bh, -br, -cg,  ca,  bl,  bn,  cc, -ce, -bp, -bj, -by,  ci,  bt,  bf,  bu,  cj, -bx, -bi, -bq, -cf,  cb,  bm } ,\
-  { da,  ef, -ej, -de, -cw, -eb,  en,  di,  cs,  dx, -er, -dm, -co, -dt,  ev,  dq,  cl,  dp,  eu, -du, -cp, -dl, -eq,  dy,  ct,  dh,  em, -ec, -cx, -dd, -ei,  eg,  db,  cz,  ee, -ek, -df, -cv, -ea,  eo,  dj,  cr,  dw, -es, -dn, -cn, -ds,  ew,  dr,  cm,  d_,  et, -dv, -cq, -dk, -ep,  dz,  cu,  dg,  el, -ed, -cy, -dc, -eh,  eh,  dc,  cy,  ed, -el, -dg, -cu, -dz,  ep,  dk,  cq,  dv, -et, -d_, -cm, -dr, -ew,  ds,  cn,  dn,  es, -dw, -cr, -dj, -eo,  ea,  cv,  df,  ek, -ee, -cz, -db, -eg,  ei,  dd,  cx,  ec, -em, -dh, -ct, -dy,  eq,  dl,  cp,  du, -eu, -dp, -cl, -dq, -ev,  dt,  co,  dm,  er, -dx, -cs, -di, -en,  eb,  cw,  de,  ej, -ef, -da } ,\
-  { ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab,  ab,  ac, -ac, -ab, -ab, -ac,  ac,  ab } ,\
-  { db,  ei, -ee, -cx, -df, -em,  ea,  ct,  dj,  eq, -dw, -cp, -dn, -eu,  ds,  cl,  dr, -ev, -d_, -co, -dv,  er,  dk,  cs,  dz, -en, -dg, -cw, -ed,  ej,  dc,  da,  eh, -ef, -cy, -de, -el,  eb,  cu,  di,  ep, -dx, -cq, -dm, -et,  dt,  cm,  dq, -ew, -dp, -cn, -du,  es,  dl,  cr,  dy, -eo, -dh, -cv, -ec,  ek,  dd,  cz,  eg, -eg, -cz, -dd, -ek,  ec,  cv,  dh,  eo, -dy, -cr, -dl, -es,  du,  cn,  dp,  ew, -dq, -cm, -dt,  et,  dm,  cq,  dx, -ep, -di, -cu, -eb,  el,  de,  cy,  ef, -eh, -da, -dc, -ej,  ed,  cw,  dg,  en, -dz, -cs, -dk, -er,  dv,  co,  d_,  ev, -dr, -cl, -ds,  eu,  dn,  cp,  dw, -eq, -dj, -ct, -ea,  em,  df,  cx,  ee, -ei, -db } ,\
-  { bn,  ce, -ca, -bj, -br, -ci,  bw,  bf,  bv, -cj, -bs, -bi, -bz,  cf,  bo,  bm,  cd, -cb, -bk, -bq, -ch,  bx,  bg,  bu, -ck, -bt, -bh, -by,  cg,  bp,  bl,  cc, -cc, -bl, -bp, -cg,  by,  bh,  bt,  ck, -bu, -bg, -bx,  ch,  bq,  bk,  cb, -cd, -bm, -bo, -cf,  bz,  bi,  bs,  cj, -bv, -bf, -bw,  ci,  br,  bj,  ca, -ce, -bn, -bn, -ce,  ca,  bj,  br,  ci, -bw, -bf, -bv,  cj,  bs,  bi,  bz, -cf, -bo, -bm, -cd,  cb,  bk,  bq,  ch, -bx, -bg, -bu,  ck,  bt,  bh,  by, -cg, -bp, -bl, -cc,  cc,  bl,  bp,  cg, -by, -bh, -bt, -ck,  bu,  bg,  bx, -ch, -bq, -bk, -cb,  cd,  bm,  bo,  cf, -bz, -bi, -bs, -cj,  bv,  bf,  bw, -ci, -br, -bj, -ca,  ce,  bn } ,\
-  { dc,  el, -dz, -cq, -d_,  ew,  dn,  cr,  ea, -ek, -db, -dd, -em,  dy,  cp,  dp, -ev, -dm, -cs, -eb,  ej,  da,  de,  en, -dx, -co, -dq,  eu,  dl,  ct,  ec, -ei, -cz, -df, -eo,  dw,  cn,  dr, -et, -dk, -cu, -ed,  eh,  cy,  dg,  ep, -dv, -cm, -ds,  es,  dj,  cv,  ee, -eg, -cx, -dh, -eq,  du,  cl,  dt, -er, -di, -cw, -ef,  ef,  cw,  di,  er, -dt, -cl, -du,  eq,  dh,  cx,  eg, -ee, -cv, -dj, -es,  ds,  cm,  dv, -ep, -dg, -cy, -eh,  ed,  cu,  dk,  et, -dr, -cn, -dw,  eo,  df,  cz,  ei, -ec, -ct, -dl, -eu,  dq,  co,  dx, -en, -de, -da, -ej,  eb,  cs,  dm,  ev, -dp, -cp, -dy,  em,  dd,  db,  ek, -ea, -cr, -dn, -ew,  d_,  cq,  dz, -el, -dc } ,\
-  { at,  bc, -ay, -ap, -ax,  bd,  au,  as,  bb, -az, -aq, -aw,  be,  av,  ar,  ba, -ba, -ar, -av, -be,  aw,  aq,  az, -bb, -as, -au, -bd,  ax,  ap,  ay, -bc, -at, -at, -bc,  ay,  ap,  ax, -bd, -au, -as, -bb,  az,  aq,  aw, -be, -av, -ar, -ba,  ba,  ar,  av,  be, -aw, -aq, -az,  bb,  as,  au,  bd, -ax, -ap, -ay,  bc,  at,  at,  bc, -ay, -ap, -ax,  bd,  au,  as,  bb, -az, -aq, -aw,  be,  av,  ar,  ba, -ba, -ar, -av, -be,  aw,  aq,  az, -bb, -as, -au, -bd,  ax,  ap,  ay, -bc, -at, -at, -bc,  ay,  ap,  ax, -bd, -au, -as, -bb,  az,  aq,  aw, -be, -av, -ar, -ba,  ba,  ar,  av,  be, -aw, -aq, -az,  bb,  as,  au,  bd, -ax, -ap, -ay,  bc,  at } ,\
-  { dd,  eo, -du, -cm, -dx,  el,  da,  dg,  er, -dr, -cp, -ea,  ei,  cx,  dj,  eu, -d_, -cs, -ed,  ef,  cu,  dm, -ew, -dl, -cv, -eg,  ec,  cr,  dp, -et, -di, -cy, -ej,  dz,  co,  ds, -eq, -df, -db, -em,  dw,  cl,  dv, -en, -dc, -de, -ep,  dt,  cn,  dy, -ek, -cz, -dh, -es,  dq,  cq,  eb, -eh, -cw, -dk, -ev,  dn,  ct,  ee, -ee, -ct, -dn,  ev,  dk,  cw,  eh, -eb, -cq, -dq,  es,  dh,  cz,  ek, -dy, -cn, -dt,  ep,  de,  dc,  en, -dv, -cl, -dw,  em,  db,  df,  eq, -ds, -co, -dz,  ej,  cy,  di,  et, -dp, -cr, -ec,  eg,  cv,  dl,  ew, -dm, -cu, -ef,  ed,  cs,  d_, -eu, -dj, -cx, -ei,  ea,  cp,  dr, -er, -dg, -da, -el,  dx,  cm,  du, -eo, -dd } ,\
-  { bo,  ch, -bv, -bh, -ca,  cc,  bj,  bt, -cj, -bq, -bm, -cf,  bx,  bf,  by, -ce, -bl, -br, -ck,  bs,  bk,  cd, -bz, -bg, -bw,  cg,  bn,  bp,  ci, -bu, -bi, -cb,  cb,  bi,  bu, -ci, -bp, -bn, -cg,  bw,  bg,  bz, -cd, -bk, -bs,  ck,  br,  bl,  ce, -by, -bf, -bx,  cf,  bm,  bq,  cj, -bt, -bj, -cc,  ca,  bh,  bv, -ch, -bo, -bo, -ch,  bv,  bh,  ca, -cc, -bj, -bt,  cj,  bq,  bm,  cf, -bx, -bf, -by,  ce,  bl,  br,  ck, -bs, -bk, -cd,  bz,  bg,  bw, -cg, -bn, -bp, -ci,  bu,  bi,  cb, -cb, -bi, -bu,  ci,  bp,  bn,  cg, -bw, -bg, -bz,  cd,  bk,  bs, -ck, -br, -bl, -ce,  by,  bf,  bx, -cf, -bm, -bq, -cj,  bt,  bj,  cc, -ca, -bh, -bv,  ch,  bo } ,\
-  { de,  er, -dp, -ct, -eg,  ea,  cn,  dv, -el, -cy, -dk,  ew,  dj,  cz,  em, -du, -co, -eb,  ef,  cs,  dq, -eq, -dd, -df, -es,  d_,  cu,  eh, -dz, -cm, -dw,  ek,  cx,  dl, -ev, -di, -da, -en,  dt,  cp,  ec, -ee, -cr, -dr,  ep,  dc,  dg,  et, -dn, -cv, -ei,  dy,  cl,  dx, -ej, -cw, -dm,  eu,  dh,  db,  eo, -ds, -cq, -ed,  ed,  cq,  ds, -eo, -db, -dh, -eu,  dm,  cw,  ej, -dx, -cl, -dy,  ei,  cv,  dn, -et, -dg, -dc, -ep,  dr,  cr,  ee, -ec, -cp, -dt,  en,  da,  di,  ev, -dl, -cx, -ek,  dw,  cm,  dz, -eh, -cu, -d_,  es,  df,  dd,  eq, -dq, -cs, -ef,  eb,  co,  du, -em, -cz, -dj, -ew,  dk,  cy,  el, -dv, -cn, -ea,  eg,  ct,  dp, -er, -de } ,\
-  { aj,  ao, -ak, -ai, -an,  al,  ah,  am, -am, -ah, -al,  an,  ai,  ak, -ao, -aj, -aj, -ao,  ak,  ai,  an, -al, -ah, -am,  am,  ah,  al, -an, -ai, -ak,  ao,  aj,  aj,  ao, -ak, -ai, -an,  al,  ah,  am, -am, -ah, -al,  an,  ai,  ak, -ao, -aj, -aj, -ao,  ak,  ai,  an, -al, -ah, -am,  am,  ah,  al, -an, -ai, -ak,  ao,  aj,  aj,  ao, -ak, -ai, -an,  al,  ah,  am, -am, -ah, -al,  an,  ai,  ak, -ao, -aj, -aj, -ao,  ak,  ai,  an, -al, -ah, -am,  am,  ah,  al, -an, -ai, -ak,  ao,  aj,  aj,  ao, -ak, -ai, -an,  al,  ah,  am, -am, -ah, -al,  an,  ai,  ak, -ao, -aj, -aj, -ao,  ak,  ai,  an, -al, -ah, -am,  am,  ah,  al, -an, -ai, -ak,  ao,  aj } ,\
-  { df,  eu, -dk, -da, -ep,  dp,  cv,  ek, -du, -cq, -ef,  dz,  cl,  ea, -ee, -cp, -dv,  ej,  cu,  dq, -eo, -cz, -dl,  et,  de,  dg,  ev, -dj, -db, -eq,  d_,  cw,  el, -dt, -cr, -eg,  dy,  cm,  eb, -ed, -co, -dw,  ei,  ct,  dr, -en, -cy, -dm,  es,  dd,  dh,  ew, -di, -dc, -er,  dn,  cx,  em, -ds, -cs, -eh,  dx,  cn,  ec, -ec, -cn, -dx,  eh,  cs,  ds, -em, -cx, -dn,  er,  dc,  di, -ew, -dh, -dd, -es,  dm,  cy,  en, -dr, -ct, -ei,  dw,  co,  ed, -eb, -cm, -dy,  eg,  cr,  dt, -el, -cw, -d_,  eq,  db,  dj, -ev, -dg, -de, -et,  dl,  cz,  eo, -dq, -cu, -ej,  dv,  cp,  ee, -ea, -cl, -dz,  ef,  cq,  du, -ek, -cv, -dp,  ep,  da,  dk, -eu, -df } ,\
-  { bp,  ck, -bq, -bo, -cj,  br,  bn,  ci, -bs, -bm, -ch,  bt,  bl,  cg, -bu, -bk, -cf,  bv,  bj,  ce, -bw, -bi, -cd,  bx,  bh,  cc, -by, -bg, -cb,  bz,  bf,  ca, -ca, -bf, -bz,  cb,  bg,  by, -cc, -bh, -bx,  cd,  bi,  bw, -ce, -bj, -bv,  cf,  bk,  bu, -cg, -bl, -bt,  ch,  bm,  bs, -ci, -bn, -br,  cj,  bo,  bq, -ck, -bp, -bp, -ck,  bq,  bo,  cj, -br, -bn, -ci,  bs,  bm,  ch, -bt, -bl, -cg,  bu,  bk,  cf, -bv, -bj, -ce,  bw,  bi,  cd, -bx, -bh, -cc,  by,  bg,  cb, -bz, -bf, -ca,  ca,  bf,  bz, -cb, -bg, -by,  cc,  bh,  bx, -cd, -bi, -bw,  ce,  bj,  bv, -cf, -bk, -bu,  cg,  bl,  bt, -ch, -bm, -bs,  ci,  bn,  br, -cj, -bo, -bq,  ck,  bp } ,\
-  { dg, -ew, -df, -dh,  ev,  de,  di, -eu, -dd, -dj,  et,  dc,  dk, -es, -db, -dl,  er,  da,  dm, -eq, -cz, -dn,  ep,  cy,  d_, -eo, -cx, -dp,  en,  cw,  dq, -em, -cv, -dr,  el,  cu,  ds, -ek, -ct, -dt,  ej,  cs,  du, -ei, -cr, -dv,  eh,  cq,  dw, -eg, -cp, -dx,  ef,  co,  dy, -ee, -cn, -dz,  ed,  cm,  ea, -ec, -cl, -eb,  eb,  cl,  ec, -ea, -cm, -ed,  dz,  cn,  ee, -dy, -co, -ef,  dx,  cp,  eg, -dw, -cq, -eh,  dv,  cr,  ei, -du, -cs, -ej,  dt,  ct,  ek, -ds, -cu, -el,  dr,  cv,  em, -dq, -cw, -en,  dp,  cx,  eo, -d_, -cy, -ep,  dn,  cz,  eq, -dm, -da, -er,  dl,  db,  es, -dk, -dc, -et,  dj,  dd,  eu, -di, -de, -ev,  dh,  df,  ew, -dg } ,\
-  { au, -be, -at, -av,  bd,  as,  aw, -bc, -ar, -ax,  bb,  aq,  ay, -ba, -ap, -az,  az,  ap,  ba, -ay, -aq, -bb,  ax,  ar,  bc, -aw, -as, -bd,  av,  at,  be, -au, -au,  be,  at,  av, -bd, -as, -aw,  bc,  ar,  ax, -bb, -aq, -ay,  ba,  ap,  az, -az, -ap, -ba,  ay,  aq,  bb, -ax, -ar, -bc,  aw,  as,  bd, -av, -at, -be,  au,  au, -be, -at, -av,  bd,  as,  aw, -bc, -ar, -ax,  bb,  aq,  ay, -ba, -ap, -az,  az,  ap,  ba, -ay, -aq, -bb,  ax,  ar,  bc, -aw, -as, -bd,  av,  at,  be, -au, -au,  be,  at,  av, -bd, -as, -aw,  bc,  ar,  ax, -bb, -aq, -ay,  ba,  ap,  az, -az, -ap, -ba,  ay,  aq,  bb, -ax, -ar, -bc,  aw,  as,  bd, -av, -at, -be,  au } ,\
-  { dh, -et, -da, -d_,  em,  ct,  dv, -ef, -cm, -ec,  dy,  cq,  ej, -dr, -cx, -eq,  dk,  de, -ew, -dd, -dl,  ep,  cw,  ds, -ei, -cp, -dz,  eb,  cn,  eg, -du, -cu, -en,  dn,  db,  eu, -dg, -di,  es,  cz,  dp, -el, -cs, -dw,  ee,  cl,  ed, -dx, -cr, -ek,  dq,  cy,  er, -dj, -df,  ev,  dc,  dm, -eo, -cv, -dt,  eh,  co,  ea, -ea, -co, -eh,  dt,  cv,  eo, -dm, -dc, -ev,  df,  dj, -er, -cy, -dq,  ek,  cr,  dx, -ed, -cl, -ee,  dw,  cs,  el, -dp, -cz, -es,  di,  dg, -eu, -db, -dn,  en,  cu,  du, -eg, -cn, -eb,  dz,  cp,  ei, -ds, -cw, -ep,  dl,  dd,  ew, -de, -dk,  eq,  cx,  dr, -ej, -cq, -dy,  ec,  cm,  ef, -dv, -ct, -em,  d_,  da,  et, -dh } ,\
-  { bq, -ci, -bl, -bv,  cd,  bg,  ca, -by, -bi, -cf,  bt,  bn,  ck, -bo, -bs,  cg,  bj,  bx, -cb, -bf, -cc,  bw,  bk,  ch, -br, -bp,  cj,  bm,  bu, -ce, -bh, -bz,  bz,  bh,  ce, -bu, -bm, -cj,  bp,  br, -ch, -bk, -bw,  cc,  bf,  cb, -bx, -bj, -cg,  bs,  bo, -ck, -bn, -bt,  cf,  bi,  by, -ca, -bg, -cd,  bv,  bl,  ci, -bq, -bq,  ci,  bl,  bv, -cd, -bg, -ca,  by,  bi,  cf, -bt, -bn, -ck,  bo,  bs, -cg, -bj, -bx,  cb,  bf,  cc, -bw, -bk, -ch,  br,  bp, -cj, -bm, -bu,  ce,  bh,  bz, -bz, -bh, -ce,  bu,  bm,  cj, -bp, -br,  ch,  bk,  bw, -cc, -bf, -cb,  bx,  bj,  cg, -bs, -bo,  ck,  bn,  bt, -cf, -bi, -by,  ca,  bg,  cd, -bv, -bl, -ci,  bq } ,\
-  { di, -eq, -cv, -dv,  ed,  cn,  ei, -dq, -da, -ev,  dd,  dn, -el, -cq, -ea,  dy,  cs,  en, -dl, -df,  et,  cy,  ds, -eg, -cl, -ef,  dt,  cx,  es, -dg, -dk,  eo,  ct,  dx, -eb, -cp, -ek,  d_,  dc, -ew, -db, -dp,  ej,  co,  ec, -dw, -cu, -ep,  dj,  dh, -er, -cw, -du,  ee,  cm,  eh, -dr, -cz, -eu,  de,  dm, -em, -cr, -dz,  dz,  cr,  em, -dm, -de,  eu,  cz,  dr, -eh, -cm, -ee,  du,  cw,  er, -dh, -dj,  ep,  cu,  dw, -ec, -co, -ej,  dp,  db,  ew, -dc, -d_,  ek,  cp,  eb, -dx, -ct, -eo,  dk,  dg, -es, -cx, -dt,  ef,  cl,  eg, -ds, -cy, -et,  df,  dl, -en, -cs, -dy,  ea,  cq,  el, -dn, -dd,  ev,  da,  dq, -ei, -cn, -ed,  dv,  cv,  eq, -di } ,\
-  { ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae,  ae, -ag, -ad, -af,  af,  ad,  ag, -ae, -ae,  ag,  ad,  af, -af, -ad, -ag,  ae } ,\
-  { dj, -en, -cq, -ec,  du,  cy,  ev, -db, -dr,  ef,  cn,  ek, -dm, -dg,  eq,  ct,  dz, -dx, -cv, -es,  de,  d_, -ei, -cl, -eh,  dp,  dd, -et, -cw, -dw,  ea,  cs,  ep, -dh, -dl,  el,  co,  ee, -ds, -da,  ew,  cz,  dt, -ed, -cp, -em,  dk,  di, -eo, -cr, -eb,  dv,  cx,  eu, -dc, -dq,  eg,  cm,  ej, -dn, -df,  er,  cu,  dy, -dy, -cu, -er,  df,  dn, -ej, -cm, -eg,  dq,  dc, -eu, -cx, -dv,  eb,  cr,  eo, -di, -dk,  em,  cp,  ed, -dt, -cz, -ew,  da,  ds, -ee, -co, -el,  dl,  dh, -ep, -cs, -ea,  dw,  cw,  et, -dd, -dp,  eh,  cl,  ei, -d_, -de,  es,  cv,  dx, -dz, -ct, -eq,  dg,  dm, -ek, -cn, -ef,  dr,  db, -ev, -cy, -du,  ec,  cq,  en, -dj } ,\
-  { br, -cf, -bg, -cc,  bu,  bo, -ci, -bj, -bz,  bx,  bl,  ck, -bm, -bw,  ca,  bi,  ch, -bp, -bt,  cd,  bf,  ce, -bs, -bq,  cg,  bh,  cb, -bv, -bn,  cj,  bk,  by, -by, -bk, -cj,  bn,  bv, -cb, -bh, -cg,  bq,  bs, -ce, -bf, -cd,  bt,  bp, -ch, -bi, -ca,  bw,  bm, -ck, -bl, -bx,  bz,  bj,  ci, -bo, -bu,  cc,  bg,  cf, -br, -br,  cf,  bg,  cc, -bu, -bo,  ci,  bj,  bz, -bx, -bl, -ck,  bm,  bw, -ca, -bi, -ch,  bp,  bt, -cd, -bf, -ce,  bs,  bq, -cg, -bh, -cb,  bv,  bn, -cj, -bk, -by,  by,  bk,  cj, -bn, -bv,  cb,  bh,  cg, -bq, -bs,  ce,  bf,  cd, -bt, -bp,  ch,  bi,  ca, -bw, -bm,  ck,  bl,  bx, -bz, -bj, -ci,  bo,  bu, -cc, -bg, -cf,  br } ,\
-  { dk, -ek, -cl, -ej,  dl,  dj, -el, -cm, -ei,  dm,  di, -em, -cn, -eh,  dn,  dh, -en, -co, -eg,  d_,  dg, -eo, -cp, -ef,  dp,  df, -ep, -cq, -ee,  dq,  de, -eq, -cr, -ed,  dr,  dd, -er, -cs, -ec,  ds,  dc, -es, -ct, -eb,  dt,  db, -et, -cu, -ea,  du,  da, -eu, -cv, -dz,  dv,  cz, -ev, -cw, -dy,  dw,  cy, -ew, -cx, -dx,  dx,  cx,  ew, -cy, -dw,  dy,  cw,  ev, -cz, -dv,  dz,  cv,  eu, -da, -du,  ea,  cu,  et, -db, -dt,  eb,  ct,  es, -dc, -ds,  ec,  cs,  er, -dd, -dr,  ed,  cr,  eq, -de, -dq,  ee,  cq,  ep, -df, -dp,  ef,  cp,  eo, -dg, -d_,  eg,  co,  en, -dh, -dn,  eh,  cn,  em, -di, -dm,  ei,  cm,  el, -dj, -dl,  ej,  cl,  ek, -dk } ,\
-  { av, -bb, -ap, -bc,  au,  aw, -ba, -aq, -bd,  at,  ax, -az, -ar, -be,  as,  ay, -ay, -as,  be,  ar,  az, -ax, -at,  bd,  aq,  ba, -aw, -au,  bc,  ap,  bb, -av, -av,  bb,  ap,  bc, -au, -aw,  ba,  aq,  bd, -at, -ax,  az,  ar,  be, -as, -ay,  ay,  as, -be, -ar, -az,  ax,  at, -bd, -aq, -ba,  aw,  au, -bc, -ap, -bb,  av,  av, -bb, -ap, -bc,  au,  aw, -ba, -aq, -bd,  at,  ax, -az, -ar, -be,  as,  ay, -ay, -as,  be,  ar,  az, -ax, -at,  bd,  aq,  ba, -aw, -au,  bc,  ap,  bb, -av, -av,  bb,  ap,  bc, -au, -aw,  ba,  aq,  bd, -at, -ax,  az,  ar,  be, -as, -ay,  ay,  as, -be, -ar, -az,  ax,  at, -bd, -aq, -ba,  aw,  au, -bc, -ap, -bb,  av } ,\
-  { dl, -eh, -cp, -eq,  dc,  du, -dy, -cy,  eu,  ct,  ed, -dp, -dh,  el,  cl,  em, -dg, -dq,  ec,  cu,  ev, -cx, -dz,  dt,  dd, -ep, -co, -ei,  dk,  dm, -eg, -cq, -er,  db,  dv, -dx, -cz,  et,  cs,  ee, -d_, -di,  ek,  cm,  en, -df, -dr,  eb,  cv,  ew, -cw, -ea,  ds,  de, -eo, -cn, -ej,  dj,  dn, -ef, -cr, -es,  da,  dw, -dw, -da,  es,  cr,  ef, -dn, -dj,  ej,  cn,  eo, -de, -ds,  ea,  cw, -ew, -cv, -eb,  dr,  df, -en, -cm, -ek,  di,  d_, -ee, -cs, -et,  cz,  dx, -dv, -db,  er,  cq,  eg, -dm, -dk,  ei,  co,  ep, -dd, -dt,  dz,  cx, -ev, -cu, -ec,  dq,  dg, -em, -cl, -el,  dh,  dp, -ed, -ct, -eu,  cy,  dy, -du, -dc,  eq,  cp,  eh, -dl } ,\
-  { bs, -cc, -bi, -cj,  bl,  bz, -bv, -bp,  cf,  bf,  cg, -bo, -bw,  by,  bm, -ci, -bh, -cd,  br,  bt, -cb, -bj, -ck,  bk,  ca, -bu, -bq,  ce,  bg,  ch, -bn, -bx,  bx,  bn, -ch, -bg, -ce,  bq,  bu, -ca, -bk,  ck,  bj,  cb, -bt, -br,  cd,  bh,  ci, -bm, -by,  bw,  bo, -cg, -bf, -cf,  bp,  bv, -bz, -bl,  cj,  bi,  cc, -bs, -bs,  cc,  bi,  cj, -bl, -bz,  bv,  bp, -cf, -bf, -cg,  bo,  bw, -by, -bm,  ci,  bh,  cd, -br, -bt,  cb,  bj,  ck, -bk, -ca,  bu,  bq, -ce, -bg, -ch,  bn,  bx, -bx, -bn,  ch,  bg,  ce, -bq, -bu,  ca,  bk, -ck, -bj, -cb,  bt,  br, -cd, -bh, -ci,  bm,  by, -bw, -bo,  cg,  bf,  cf, -bp, -bv,  bz,  bl, -cj, -bi, -cc,  bs } ,\
-  { dm, -ee, -cu,  ew,  ct,  ef, -dl, -dn,  ed,  cv, -ev, -cs, -eg,  dk,  d_, -ec, -cw,  eu,  cr,  eh, -dj, -dp,  eb,  cx, -et, -cq, -ei,  di,  dq, -ea, -cy,  es,  cp,  ej, -dh, -dr,  dz,  cz, -er, -co, -ek,  dg,  ds, -dy, -da,  eq,  cn,  el, -df, -dt,  dx,  db, -ep, -cm, -em,  de,  du, -dw, -dc,  eo,  cl,  en, -dd, -dv,  dv,  dd, -en, -cl, -eo,  dc,  dw, -du, -de,  em,  cm,  ep, -db, -dx,  dt,  df, -el, -cn, -eq,  da,  dy, -ds, -dg,  ek,  co,  er, -cz, -dz,  dr,  dh, -ej, -cp, -es,  cy,  ea, -dq, -di,  ei,  cq,  et, -cx, -eb,  dp,  dj, -eh, -cr, -eu,  cw,  ec, -d_, -dk,  eg,  cs,  ev, -cv, -ed,  dn,  dl, -ef, -ct, -ew,  cu,  ee, -dm } ,\
-  { ak, -am, -ai,  ao,  ah,  an, -aj, -al,  al,  aj, -an, -ah, -ao,  ai,  am, -ak, -ak,  am,  ai, -ao, -ah, -an,  aj,  al, -al, -aj,  an,  ah,  ao, -ai, -am,  ak,  ak, -am, -ai,  ao,  ah,  an, -aj, -al,  al,  aj, -an, -ah, -ao,  ai,  am, -ak, -ak,  am,  ai, -ao, -ah, -an,  aj,  al, -al, -aj,  an,  ah,  ao, -ai, -am,  ak,  ak, -am, -ai,  ao,  ah,  an, -aj, -al,  al,  aj, -an, -ah, -ao,  ai,  am, -ak, -ak,  am,  ai, -ao, -ah, -an,  aj,  al, -al, -aj,  an,  ah,  ao, -ai, -am,  ak,  ak, -am, -ai,  ao,  ah,  an, -aj, -al,  al,  aj, -an, -ah, -ao,  ai,  am, -ak, -ak,  am,  ai, -ao, -ah, -an,  aj,  al, -al, -aj,  an,  ah,  ao, -ai, -am,  ak } ,\
-  { dn, -eb, -cz,  ep,  cl,  eq, -cy, -ec,  dm,  d_, -ea, -da,  eo,  cm,  er, -cx, -ed,  dl,  dp, -dz, -db,  en,  cn,  es, -cw, -ee,  dk,  dq, -dy, -dc,  em,  co,  et, -cv, -ef,  dj,  dr, -dx, -dd,  el,  cp,  eu, -cu, -eg,  di,  ds, -dw, -de,  ek,  cq,  ev, -ct, -eh,  dh,  dt, -dv, -df,  ej,  cr,  ew, -cs, -ei,  dg,  du, -du, -dg,  ei,  cs, -ew, -cr, -ej,  df,  dv, -dt, -dh,  eh,  ct, -ev, -cq, -ek,  de,  dw, -ds, -di,  eg,  cu, -eu, -cp, -el,  dd,  dx, -dr, -dj,  ef,  cv, -et, -co, -em,  dc,  dy, -dq, -dk,  ee,  cw, -es, -cn, -en,  db,  dz, -dp, -dl,  ed,  cx, -er, -cm, -eo,  da,  ea, -d_, -dm,  ec,  cy, -eq, -cl, -ep,  cz,  eb, -dn } ,\
-  { bt, -bz, -bn,  cf,  bh,  ck, -bi, -ce,  bo,  by, -bu, -bs,  ca,  bm, -cg, -bg, -cj,  bj,  cd, -bp, -bx,  bv,  br, -cb, -bl,  ch,  bf,  ci, -bk, -cc,  bq,  bw, -bw, -bq,  cc,  bk, -ci, -bf, -ch,  bl,  cb, -br, -bv,  bx,  bp, -cd, -bj,  cj,  bg,  cg, -bm, -ca,  bs,  bu, -by, -bo,  ce,  bi, -ck, -bh, -cf,  bn,  bz, -bt, -bt,  bz,  bn, -cf, -bh, -ck,  bi,  ce, -bo, -by,  bu,  bs, -ca, -bm,  cg,  bg,  cj, -bj, -cd,  bp,  bx, -bv, -br,  cb,  bl, -ch, -bf, -ci,  bk,  cc, -bq, -bw,  bw,  bq, -cc, -bk,  ci,  bf,  ch, -bl, -cb,  br,  bv, -bx, -bp,  cd,  bj, -cj, -bg, -cg,  bm,  ca, -bs, -bu,  by,  bo, -ce, -bi,  ck,  bh,  cf, -bn, -bz,  bt } ,\
-  { d_, -dy, -de,  ei,  cu, -es, -cl, -er,  cv,  eh, -df, -dx,  dp,  dn, -dz, -dd,  ej,  ct, -et, -cm, -eq,  cw,  eg, -dg, -dw,  dq,  dm, -ea, -dc,  ek,  cs, -eu, -cn, -ep,  cx,  ef, -dh, -dv,  dr,  dl, -eb, -db,  el,  cr, -ev, -co, -eo,  cy,  ee, -di, -du,  ds,  dk, -ec, -da,  em,  cq, -ew, -cp, -en,  cz,  ed, -dj, -dt,  dt,  dj, -ed, -cz,  en,  cp,  ew, -cq, -em,  da,  ec, -dk, -ds,  du,  di, -ee, -cy,  eo,  co,  ev, -cr, -el,  db,  eb, -dl, -dr,  dv,  dh, -ef, -cx,  ep,  cn,  eu, -cs, -ek,  dc,  ea, -dm, -dq,  dw,  dg, -eg, -cw,  eq,  cm,  et, -ct, -ej,  dd,  dz, -dn, -dp,  dx,  df, -eh, -cv,  er,  cl,  es, -cu, -ei,  de,  dy, -d_ } ,\
-  { aw, -ay, -au,  ba,  as, -bc, -aq,  be,  ap,  bd, -ar, -bb,  at,  az, -av, -ax,  ax,  av, -az, -at,  bb,  ar, -bd, -ap, -be,  aq,  bc, -as, -ba,  au,  ay, -aw, -aw,  ay,  au, -ba, -as,  bc,  aq, -be, -ap, -bd,  ar,  bb, -at, -az,  av,  ax, -ax, -av,  az,  at, -bb, -ar,  bd,  ap,  be, -aq, -bc,  as,  ba, -au, -ay,  aw,  aw, -ay, -au,  ba,  as, -bc, -aq,  be,  ap,  bd, -ar, -bb,  at,  az, -av, -ax,  ax,  av, -az, -at,  bb,  ar, -bd, -ap, -be,  aq,  bc, -as, -ba,  au,  ay, -aw, -aw,  ay,  au, -ba, -as,  bc,  aq, -be, -ap, -bd,  ar,  bb, -at, -az,  av,  ax, -ax, -av,  az,  at, -bb, -ar,  bd,  ap,  be, -aq, -bc,  as,  ba, -au, -ay,  aw } ,\
-  { dp, -dv, -dj,  eb,  dd, -eh, -cx,  en,  cr, -et, -cl, -eu,  cq,  eo, -cw, -ei,  dc,  ec, -di, -dw,  d_,  dq, -du, -dk,  ea,  de, -eg, -cy,  em,  cs, -es, -cm, -ev,  cp,  ep, -cv, -ej,  db,  ed, -dh, -dx,  dn,  dr, -dt, -dl,  dz,  df, -ef, -cz,  el,  ct, -er, -cn, -ew,  co,  eq, -cu, -ek,  da,  ee, -dg, -dy,  dm,  ds, -ds, -dm,  dy,  dg, -ee, -da,  ek,  cu, -eq, -co,  ew,  cn,  er, -ct, -el,  cz,  ef, -df, -dz,  dl,  dt, -dr, -dn,  dx,  dh, -ed, -db,  ej,  cv, -ep, -cp,  ev,  cm,  es, -cs, -em,  cy,  eg, -de, -ea,  dk,  du, -dq, -d_,  dw,  di, -ec, -dc,  ei,  cw, -eo, -cq,  eu,  cl,  et, -cr, -en,  cx,  eh, -dd, -eb,  dj,  dv, -dp } ,\
-  { bu, -bw, -bs,  by,  bq, -ca, -bo,  cc,  bm, -ce, -bk,  cg,  bi, -ci, -bg,  ck,  bf,  cj, -bh, -ch,  bj,  cf, -bl, -cd,  bn,  cb, -bp, -bz,  br,  bx, -bt, -bv,  bv,  bt, -bx, -br,  bz,  bp, -cb, -bn,  cd,  bl, -cf, -bj,  ch,  bh, -cj, -bf, -ck,  bg,  ci, -bi, -cg,  bk,  ce, -bm, -cc,  bo,  ca, -bq, -by,  bs,  bw, -bu, -bu,  bw,  bs, -by, -bq,  ca,  bo, -cc, -bm,  ce,  bk, -cg, -bi,  ci,  bg, -ck, -bf, -cj,  bh,  ch, -bj, -cf,  bl,  cd, -bn, -cb,  bp,  bz, -br, -bx,  bt,  bv, -bv, -bt,  bx,  br, -bz, -bp,  cb,  bn, -cd, -bl,  cf,  bj, -ch, -bh,  cj,  bf,  ck, -bg, -ci,  bi,  cg, -bk, -ce,  bm,  cc, -bo, -ca,  bq,  by, -bs, -bw,  bu } ,\
-  { dq, -ds, -d_,  du,  dm, -dw, -dk,  dy,  di, -ea, -dg,  ec,  de, -ee, -dc,  eg,  da, -ei, -cy,  ek,  cw, -em, -cu,  eo,  cs, -eq, -cq,  es,  co, -eu, -cm,  ew,  cl,  ev, -cn, -et,  cp,  er, -cr, -ep,  ct,  en, -cv, -el,  cx,  ej, -cz, -eh,  db,  ef, -dd, -ed,  df,  eb, -dh, -dz,  dj,  dx, -dl, -dv,  dn,  dt, -dp, -dr,  dr,  dp, -dt, -dn,  dv,  dl, -dx, -dj,  dz,  dh, -eb, -df,  ed,  dd, -ef, -db,  eh,  cz, -ej, -cx,  el,  cv, -en, -ct,  ep,  cr, -er, -cp,  et,  cn, -ev, -cl, -ew,  cm,  eu, -co, -es,  cq,  eq, -cs, -eo,  cu,  em, -cw, -ek,  cy,  ei, -da, -eg,  dc,  ee, -de, -ec,  dg,  ea, -di, -dy,  dk,  dw, -dm, -du,  d_,  ds, -dq } ,\
-  { aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa,  aa, -aa, -aa,  aa } ,\
-  { dr, -dp, -dt,  dn,  dv, -dl, -dx,  dj,  dz, -dh, -eb,  df,  ed, -dd, -ef,  db,  eh, -cz, -ej,  cx,  el, -cv, -en,  ct,  ep, -cr, -er,  cp,  et, -cn, -ev,  cl, -ew, -cm,  eu,  co, -es, -cq,  eq,  cs, -eo, -cu,  em,  cw, -ek, -cy,  ei,  da, -eg, -dc,  ee,  de, -ec, -dg,  ea,  di, -dy, -dk,  dw,  dm, -du, -d_,  ds,  dq, -dq, -ds,  d_,  du, -dm, -dw,  dk,  dy, -di, -ea,  dg,  ec, -de, -ee,  dc,  eg, -da, -ei,  cy,  ek, -cw, -em,  cu,  eo, -cs, -eq,  cq,  es, -co, -eu,  cm,  ew, -cl,  ev,  cn, -et, -cp,  er,  cr, -ep, -ct,  en,  cv, -el, -cx,  ej,  cz, -eh, -db,  ef,  dd, -ed, -df,  eb,  dh, -dz, -dj,  dx,  dl, -dv, -dn,  dt,  dp, -dr } ,\
-  { bv, -bt, -bx,  br,  bz, -bp, -cb,  bn,  cd, -bl, -cf,  bj,  ch, -bh, -cj,  bf, -ck, -bg,  ci,  bi, -cg, -bk,  ce,  bm, -cc, -bo,  ca,  bq, -by, -bs,  bw,  bu, -bu, -bw,  bs,  by, -bq, -ca,  bo,  cc, -bm, -ce,  bk,  cg, -bi, -ci,  bg,  ck, -bf,  cj,  bh, -ch, -bj,  cf,  bl, -cd, -bn,  cb,  bp, -bz, -br,  bx,  bt, -bv, -bv,  bt,  bx, -br, -bz,  bp,  cb, -bn, -cd,  bl,  cf, -bj, -ch,  bh,  cj, -bf,  ck,  bg, -ci, -bi,  cg,  bk, -ce, -bm,  cc,  bo, -ca, -bq,  by,  bs, -bw, -bu,  bu,  bw, -bs, -by,  bq,  ca, -bo, -cc,  bm,  ce, -bk, -cg,  bi,  ci, -bg, -ck,  bf, -cj, -bh,  ch,  bj, -cf, -bl,  cd,  bn, -cb, -bp,  bz,  br, -bx, -bt,  bv } ,\
-  { ds, -dm, -dy,  dg,  ee, -da, -ek,  cu,  eq, -co, -ew,  cn, -er, -ct,  el,  cz, -ef, -df,  dz,  dl, -dt, -dr,  dn,  dx, -dh, -ed,  db,  ej, -cv, -ep,  cp,  ev, -cm,  es,  cs, -em, -cy,  eg,  de, -ea, -dk,  du,  dq, -d_, -dw,  di,  ec, -dc, -ei,  cw,  eo, -cq, -eu,  cl, -et, -cr,  en,  cx, -eh, -dd,  eb,  dj, -dv, -dp,  dp,  dv, -dj, -eb,  dd,  eh, -cx, -en,  cr,  et, -cl,  eu,  cq, -eo, -cw,  ei,  dc, -ec, -di,  dw,  d_, -dq, -du,  dk,  ea, -de, -eg,  cy,  em, -cs, -es,  cm, -ev, -cp,  ep,  cv, -ej, -db,  ed,  dh, -dx, -dn,  dr,  dt, -dl, -dz,  df,  ef, -cz, -el,  ct,  er, -cn,  ew,  co, -eq, -cu,  ek,  da, -ee, -dg,  dy,  dm, -ds } ,\
-  { ax, -av, -az,  at,  bb, -ar, -bd,  ap, -be, -aq,  bc,  as, -ba, -au,  ay,  aw, -aw, -ay,  au,  ba, -as, -bc,  aq,  be, -ap,  bd,  ar, -bb, -at,  az,  av, -ax, -ax,  av,  az, -at, -bb,  ar,  bd, -ap,  be,  aq, -bc, -as,  ba,  au, -ay, -aw,  aw,  ay, -au, -ba,  as,  bc, -aq, -be,  ap, -bd, -ar,  bb,  at, -az, -av,  ax,  ax, -av, -az,  at,  bb, -ar, -bd,  ap, -be, -aq,  bc,  as, -ba, -au,  ay,  aw, -aw, -ay,  au,  ba, -as, -bc,  aq,  be, -ap,  bd,  ar, -bb, -at,  az,  av, -ax, -ax,  av,  az, -at, -bb,  ar,  bd, -ap,  be,  aq, -bc, -as,  ba,  au, -ay, -aw,  aw,  ay, -au, -ba,  as,  bc, -aq, -be,  ap, -bd, -ar,  bb,  at, -az, -av,  ax } ,\
-  { dt, -dj, -ed,  cz,  en, -cp,  ew,  cq, -em, -da,  ec,  dk, -ds, -du,  di,  ee, -cy, -eo,  co, -ev, -cr,  el,  db, -eb, -dl,  dr,  dv, -dh, -ef,  cx,  ep, -cn,  eu,  cs, -ek, -dc,  ea,  dm, -dq, -dw,  dg,  eg, -cw, -eq,  cm, -et, -ct,  ej,  dd, -dz, -dn,  dp,  dx, -df, -eh,  cv,  er, -cl,  es,  cu, -ei, -de,  dy,  d_, -d_, -dy,  de,  ei, -cu, -es,  cl, -er, -cv,  eh,  df, -dx, -dp,  dn,  dz, -dd, -ej,  ct,  et, -cm,  eq,  cw, -eg, -dg,  dw,  dq, -dm, -ea,  dc,  ek, -cs, -eu,  cn, -ep, -cx,  ef,  dh, -dv, -dr,  dl,  eb, -db, -el,  cr,  ev, -co,  eo,  cy, -ee, -di,  du,  ds, -dk, -ec,  da,  em, -cq, -ew,  cp, -en, -cz,  ed,  dj, -dt } ,\
-  { bw, -bq, -cc,  bk,  ci, -bf,  ch,  bl, -cb, -br,  bv,  bx, -bp, -cd,  bj,  cj, -bg,  cg,  bm, -ca, -bs,  bu,  by, -bo, -ce,  bi,  ck, -bh,  cf,  bn, -bz, -bt,  bt,  bz, -bn, -cf,  bh, -ck, -bi,  ce,  bo, -by, -bu,  bs,  ca, -bm, -cg,  bg, -cj, -bj,  cd,  bp, -bx, -bv,  br,  cb, -bl, -ch,  bf, -ci, -bk,  cc,  bq, -bw, -bw,  bq,  cc, -bk, -ci,  bf, -ch, -bl,  cb,  br, -bv, -bx,  bp,  cd, -bj, -cj,  bg, -cg, -bm,  ca,  bs, -bu, -by,  bo,  ce, -bi, -ck,  bh, -cf, -bn,  bz,  bt, -bt, -bz,  bn,  cf, -bh,  ck,  bi, -ce, -bo,  by,  bu, -bs, -ca,  bm,  cg, -bg,  cj,  bj, -cd, -bp,  bx,  bv, -br, -cb,  bl,  ch, -bf,  ci,  bk, -cc, -bq,  bw } ,\
-  { du, -dg, -ei,  cs,  ew, -cr,  ej,  df, -dv, -dt,  dh,  eh, -ct, -ev,  cq, -ek, -de,  dw,  ds, -di, -eg,  cu,  eu, -cp,  el,  dd, -dx, -dr,  dj,  ef, -cv, -et,  co, -em, -dc,  dy,  dq, -dk, -ee,  cw,  es, -cn,  en,  db, -dz, -dp,  dl,  ed, -cx, -er,  cm, -eo, -da,  ea,  d_, -dm, -ec,  cy,  eq, -cl,  ep,  cz, -eb, -dn,  dn,  eb, -cz, -ep,  cl, -eq, -cy,  ec,  dm, -d_, -ea,  da,  eo, -cm,  er,  cx, -ed, -dl,  dp,  dz, -db, -en,  cn, -es, -cw,  ee,  dk, -dq, -dy,  dc,  em, -co,  et,  cv, -ef, -dj,  dr,  dx, -dd, -el,  cp, -eu, -cu,  eg,  di, -ds, -dw,  de,  ek, -cq,  ev,  ct, -eh, -dh,  dt,  dv, -df, -ej,  cr, -ew, -cs,  ei,  dg, -du } ,\
-  { al, -aj, -an,  ah, -ao, -ai,  am,  ak, -ak, -am,  ai,  ao, -ah,  an,  aj, -al, -al,  aj,  an, -ah,  ao,  ai, -am, -ak,  ak,  am, -ai, -ao,  ah, -an, -aj,  al,  al, -aj, -an,  ah, -ao, -ai,  am,  ak, -ak, -am,  ai,  ao, -ah,  an,  aj, -al, -al,  aj,  an, -ah,  ao,  ai, -am, -ak,  ak,  am, -ai, -ao,  ah, -an, -aj,  al,  al, -aj, -an,  ah, -ao, -ai,  am,  ak, -ak, -am,  ai,  ao, -ah,  an,  aj, -al, -al,  aj,  an, -ah,  ao,  ai, -am, -ak,  ak,  am, -ai, -ao,  ah, -an, -aj,  al,  al, -aj, -an,  ah, -ao, -ai,  am,  ak, -ak, -am,  ai,  ao, -ah,  an,  aj, -al, -al,  aj,  an, -ah,  ao,  ai, -am, -ak,  ak,  am, -ai, -ao,  ah, -an, -aj,  al } ,\
-  { dv, -dd, -en,  cl, -eo, -dc,  dw,  du, -de, -em,  cm, -ep, -db,  dx,  dt, -df, -el,  cn, -eq, -da,  dy,  ds, -dg, -ek,  co, -er, -cz,  dz,  dr, -dh, -ej,  cp, -es, -cy,  ea,  dq, -di, -ei,  cq, -et, -cx,  eb,  dp, -dj, -eh,  cr, -eu, -cw,  ec,  d_, -dk, -eg,  cs, -ev, -cv,  ed,  dn, -dl, -ef,  ct, -ew, -cu,  ee,  dm, -dm, -ee,  cu,  ew, -ct,  ef,  dl, -dn, -ed,  cv,  ev, -cs,  eg,  dk, -d_, -ec,  cw,  eu, -cr,  eh,  dj, -dp, -eb,  cx,  et, -cq,  ei,  di, -dq, -ea,  cy,  es, -cp,  ej,  dh, -dr, -dz,  cz,  er, -co,  ek,  dg, -ds, -dy,  da,  eq, -cn,  el,  df, -dt, -dx,  db,  ep, -cm,  em,  de, -du, -dw,  dc,  eo, -cl,  en,  dd, -dv } ,\
-  { bx, -bn, -ch,  bg, -ce, -bq,  bu,  ca, -bk, -ck,  bj, -cb, -bt,  br,  cd, -bh,  ci,  bm, -by, -bw,  bo,  cg, -bf,  cf,  bp, -bv, -bz,  bl,  cj, -bi,  cc,  bs, -bs, -cc,  bi, -cj, -bl,  bz,  bv, -bp, -cf,  bf, -cg, -bo,  bw,  by, -bm, -ci,  bh, -cd, -br,  bt,  cb, -bj,  ck,  bk, -ca, -bu,  bq,  ce, -bg,  ch,  bn, -bx, -bx,  bn,  ch, -bg,  ce,  bq, -bu, -ca,  bk,  ck, -bj,  cb,  bt, -br, -cd,  bh, -ci, -bm,  by,  bw, -bo, -cg,  bf, -cf, -bp,  bv,  bz, -bl, -cj,  bi, -cc, -bs,  bs,  cc, -bi,  cj,  bl, -bz, -bv,  bp,  cf, -bf,  cg,  bo, -bw, -by,  bm,  ci, -bh,  cd,  br, -bt, -cb,  bj, -ck, -bk,  ca,  bu, -bq, -ce,  bg, -ch, -bn,  bx } ,\
-  { dw, -da, -es,  cr, -ef, -dn,  dj,  ej, -cn,  eo,  de, -ds, -ea,  cw,  ew, -cv,  eb,  dr, -df, -en,  cm, -ek, -di,  d_,  ee, -cs,  et,  cz, -dx, -dv,  db,  er, -cq,  eg,  dm, -dk, -ei,  co, -ep, -dd,  dt,  dz, -cx, -ev,  cu, -ec, -dq,  dg,  em, -cl,  el,  dh, -dp, -ed,  ct, -eu, -cy,  dy,  du, -dc, -eq,  cp, -eh, -dl,  dl,  eh, -cp,  eq,  dc, -du, -dy,  cy,  eu, -ct,  ed,  dp, -dh, -el,  cl, -em, -dg,  dq,  ec, -cu,  ev,  cx, -dz, -dt,  dd,  ep, -co,  ei,  dk, -dm, -eg,  cq, -er, -db,  dv,  dx, -cz, -et,  cs, -ee, -d_,  di,  ek, -cm,  en,  df, -dr, -eb,  cv, -ew, -cw,  ea,  ds, -de, -eo,  cn, -ej, -dj,  dn,  ef, -cr,  es,  da, -dw } ,\
-  { ay, -as, -be,  ar, -az, -ax,  at,  bd, -aq,  ba,  aw, -au, -bc,  ap, -bb, -av,  av,  bb, -ap,  bc,  au, -aw, -ba,  aq, -bd, -at,  ax,  az, -ar,  be,  as, -ay, -ay,  as,  be, -ar,  az,  ax, -at, -bd,  aq, -ba, -aw,  au,  bc, -ap,  bb,  av, -av, -bb,  ap, -bc, -au,  aw,  ba, -aq,  bd,  at, -ax, -az,  ar, -be, -as,  ay,  ay, -as, -be,  ar, -az, -ax,  at,  bd, -aq,  ba,  aw, -au, -bc,  ap, -bb, -av,  av,  bb, -ap,  bc,  au, -aw, -ba,  aq, -bd, -at,  ax,  az, -ar,  be,  as, -ay, -ay,  as,  be, -ar,  az,  ax, -at, -bd,  aq, -ba, -aw,  au,  bc, -ap,  bb,  av, -av, -bb,  ap, -bc, -au,  aw,  ba, -aq,  bd,  at, -ax, -az,  ar, -be, -as,  ay } ,\
-  { dx, -cx,  ew,  cy, -dw, -dy,  cw, -ev, -cz,  dv,  dz, -cv,  eu,  da, -du, -ea,  cu, -et, -db,  dt,  eb, -ct,  es,  dc, -ds, -ec,  cs, -er, -dd,  dr,  ed, -cr,  eq,  de, -dq, -ee,  cq, -ep, -df,  dp,  ef, -cp,  eo,  dg, -d_, -eg,  co, -en, -dh,  dn,  eh, -cn,  em,  di, -dm, -ei,  cm, -el, -dj,  dl,  ej, -cl,  ek,  dk, -dk, -ek,  cl, -ej, -dl,  dj,  el, -cm,  ei,  dm, -di, -em,  cn, -eh, -dn,  dh,  en, -co,  eg,  d_, -dg, -eo,  cp, -ef, -dp,  df,  ep, -cq,  ee,  dq, -de, -eq,  cr, -ed, -dr,  dd,  er, -cs,  ec,  ds, -dc, -es,  ct, -eb, -dt,  db,  et, -cu,  ea,  du, -da, -eu,  cv, -dz, -dv,  cz,  ev, -cw,  dy,  dw, -cy, -ew,  cx, -dx } ,\
-  { by, -bk,  cj,  bn, -bv, -cb,  bh, -cg, -bq,  bs,  ce, -bf,  cd,  bt, -bp, -ch,  bi, -ca, -bw,  bm,  ck, -bl,  bx,  bz, -bj,  ci,  bo, -bu, -cc,  bg, -cf, -br,  br,  cf, -bg,  cc,  bu, -bo, -ci,  bj, -bz, -bx,  bl, -ck, -bm,  bw,  ca, -bi,  ch,  bp, -bt, -cd,  bf, -ce, -bs,  bq,  cg, -bh,  cb,  bv, -bn, -cj,  bk, -by, -by,  bk, -cj, -bn,  bv,  cb, -bh,  cg,  bq, -bs, -ce,  bf, -cd, -bt,  bp,  ch, -bi,  ca,  bw, -bm, -ck,  bl, -bx, -bz,  bj, -ci, -bo,  bu,  cc, -bg,  cf,  br, -br, -cf,  bg, -cc, -bu,  bo,  ci, -bj,  bz,  bx, -bl,  ck,  bm, -bw, -ca,  bi, -ch, -bp,  bt,  cd, -bf,  ce,  bs, -bq, -cg,  bh, -cb, -bv,  bn,  cj, -bk,  by } ,\
-  { dy, -cu,  er,  df, -dn, -ej,  cm, -eg, -dq,  dc,  eu, -cx,  dv,  eb, -cr,  eo,  di, -dk, -em,  cp, -ed, -dt,  cz, -ew, -da,  ds,  ee, -co,  el,  dl, -dh, -ep,  cs, -ea, -dw,  cw, -et, -dd,  dp,  eh, -cl,  ei,  d_, -de, -es,  cv, -dx, -dz,  ct, -eq, -dg,  dm,  ek, -cn,  ef,  dr, -db, -ev,  cy, -du, -ec,  cq, -en, -dj,  dj,  en, -cq,  ec,  du, -cy,  ev,  db, -dr, -ef,  cn, -ek, -dm,  dg,  eq, -ct,  dz,  dx, -cv,  es,  de, -d_, -ei,  cl, -eh, -dp,  dd,  et, -cw,  dw,  ea, -cs,  ep,  dh, -dl, -el,  co, -ee, -ds,  da,  ew, -cz,  dt,  ed, -cp,  em,  dk, -di, -eo,  cr, -eb, -dv,  cx, -eu, -dc,  dq,  eg, -cm,  ej,  dn, -df, -er,  cu, -dy } ,\
-  { af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af,  af, -ad,  ag,  ae, -ae, -ag,  ad, -af, -af,  ad, -ag, -ae,  ae,  ag, -ad,  af } ,\
-  { dz, -cr,  em,  dm, -de, -eu,  cz, -dr, -eh,  cm, -ee, -du,  cw, -er, -dh,  dj,  ep, -cu,  dw,  ec, -co,  ej,  dp, -db,  ew,  dc, -d_, -ek,  cp, -eb, -dx,  ct, -eo, -dk,  dg,  es, -cx,  dt,  ef, -cl,  eg,  ds, -cy,  et,  df, -dl, -en,  cs, -dy, -ea,  cq, -el, -dn,  dd,  ev, -da,  dq,  ei, -cn,  ed,  dv, -cv,  eq,  di, -di, -eq,  cv, -dv, -ed,  cn, -ei, -dq,  da, -ev, -dd,  dn,  el, -cq,  ea,  dy, -cs,  en,  dl, -df, -et,  cy, -ds, -eg,  cl, -ef, -dt,  cx, -es, -dg,  dk,  eo, -ct,  dx,  eb, -cp,  ek,  d_, -dc, -ew,  db, -dp, -ej,  co, -ec, -dw,  cu, -ep, -dj,  dh,  er, -cw,  du,  ee, -cm,  eh,  dr, -cz,  eu,  de, -dm, -em,  cr, -dz } ,\
-  { bz, -bh,  ce,  bu, -bm,  cj,  bp, -br, -ch,  bk, -bw, -cc,  bf, -cb, -bx,  bj, -cg, -bs,  bo,  ck, -bn,  bt,  cf, -bi,  by,  ca, -bg,  cd,  bv, -bl,  ci,  bq, -bq, -ci,  bl, -bv, -cd,  bg, -ca, -by,  bi, -cf, -bt,  bn, -ck, -bo,  bs,  cg, -bj,  bx,  cb, -bf,  cc,  bw, -bk,  ch,  br, -bp, -cj,  bm, -bu, -ce,  bh, -bz, -bz,  bh, -ce, -bu,  bm, -cj, -bp,  br,  ch, -bk,  bw,  cc, -bf,  cb,  bx, -bj,  cg,  bs, -bo, -ck,  bn, -bt, -cf,  bi, -by, -ca,  bg, -cd, -bv,  bl, -ci, -bq,  bq,  ci, -bl,  bv,  cd, -bg,  ca,  by, -bi,  cf,  bt, -bn,  ck,  bo, -bs, -cg,  bj, -bx, -cb,  bf, -cc, -bw,  bk, -ch, -br,  bp,  cj, -bm,  bu,  ce, -bh,  bz } ,\
-  { ea, -co,  eh,  dt, -cv,  eo,  dm, -dc,  ev,  df, -dj, -er,  cy, -dq, -ek,  cr, -dx, -ed,  cl, -ee, -dw,  cs, -el, -dp,  cz, -es, -di,  dg,  eu, -db,  dn,  en, -cu,  du,  eg, -cn,  eb,  dz, -cp,  ei,  ds, -cw,  ep,  dl, -dd,  ew,  de, -dk, -eq,  cx, -dr, -ej,  cq, -dy, -ec,  cm, -ef, -dv,  ct, -em, -d_,  da, -et, -dh,  dh,  et, -da,  d_,  em, -ct,  dv,  ef, -cm,  ec,  dy, -cq,  ej,  dr, -cx,  eq,  dk, -de, -ew,  dd, -dl, -ep,  cw, -ds, -ei,  cp, -dz, -eb,  cn, -eg, -du,  cu, -en, -dn,  db, -eu, -dg,  di,  es, -cz,  dp,  el, -cs,  dw,  ee, -cl,  ed,  dx, -cr,  ek,  dq, -cy,  er,  dj, -df, -ev,  dc, -dm, -eo,  cv, -dt, -eh,  co, -ea } ,\
-  { az, -ap,  ba,  ay, -aq,  bb,  ax, -ar,  bc,  aw, -as,  bd,  av, -at,  be,  au, -au, -be,  at, -av, -bd,  as, -aw, -bc,  ar, -ax, -bb,  aq, -ay, -ba,  ap, -az, -az,  ap, -ba, -ay,  aq, -bb, -ax,  ar, -bc, -aw,  as, -bd, -av,  at, -be, -au,  au,  be, -at,  av,  bd, -as,  aw,  bc, -ar,  ax,  bb, -aq,  ay,  ba, -ap,  az,  az, -ap,  ba,  ay, -aq,  bb,  ax, -ar,  bc,  aw, -as,  bd,  av, -at,  be,  au, -au, -be,  at, -av, -bd,  as, -aw, -bc,  ar, -ax, -bb,  aq, -ay, -ba,  ap, -az, -az,  ap, -ba, -ay,  aq, -bb, -ax,  ar, -bc, -aw,  as, -bd, -av,  at, -be, -au,  au,  be, -at,  av,  bd, -as,  aw,  bc, -ar,  ax,  bb, -aq,  ay,  ba, -ap,  az } ,\
-  { eb, -cl,  ec,  ea, -cm,  ed,  dz, -cn,  ee,  dy, -co,  ef,  dx, -cp,  eg,  dw, -cq,  eh,  dv, -cr,  ei,  du, -cs,  ej,  dt, -ct,  ek,  ds, -cu,  el,  dr, -cv,  em,  dq, -cw,  en,  dp, -cx,  eo,  d_, -cy,  ep,  dn, -cz,  eq,  dm, -da,  er,  dl, -db,  es,  dk, -dc,  et,  dj, -dd,  eu,  di, -de,  ev,  dh, -df,  ew,  dg, -dg, -ew,  df, -dh, -ev,  de, -di, -eu,  dd, -dj, -et,  dc, -dk, -es,  db, -dl, -er,  da, -dm, -eq,  cz, -dn, -ep,  cy, -d_, -eo,  cx, -dp, -en,  cw, -dq, -em,  cv, -dr, -el,  cu, -ds, -ek,  ct, -dt, -ej,  cs, -du, -ei,  cr, -dv, -eh,  cq, -dw, -eg,  cp, -dx, -ef,  co, -dy, -ee,  cn, -dz, -ed,  cm, -ea, -ec,  cl, -eb } ,\
-  { ca, -bf,  bz,  cb, -bg,  by,  cc, -bh,  bx,  cd, -bi,  bw,  ce, -bj,  bv,  cf, -bk,  bu,  cg, -bl,  bt,  ch, -bm,  bs,  ci, -bn,  br,  cj, -bo,  bq,  ck, -bp,  bp, -ck, -bq,  bo, -cj, -br,  bn, -ci, -bs,  bm, -ch, -bt,  bl, -cg, -bu,  bk, -cf, -bv,  bj, -ce, -bw,  bi, -cd, -bx,  bh, -cc, -by,  bg, -cb, -bz,  bf, -ca, -ca,  bf, -bz, -cb,  bg, -by, -cc,  bh, -bx, -cd,  bi, -bw, -ce,  bj, -bv, -cf,  bk, -bu, -cg,  bl, -bt, -ch,  bm, -bs, -ci,  bn, -br, -cj,  bo, -bq, -ck,  bp, -bp,  ck,  bq, -bo,  cj,  br, -bn,  ci,  bs, -bm,  ch,  bt, -bl,  cg,  bu, -bk,  cf,  bv, -bj,  ce,  bw, -bi,  cd,  bx, -bh,  cc,  by, -bg,  cb,  bz, -bf,  ca } ,\
-  { ec, -cn,  dx,  eh, -cs,  ds,  em, -cx,  dn,  er, -dc,  di,  ew, -dh,  dd, -es, -dm,  cy, -en, -dr,  ct, -ei, -dw,  co, -ed, -eb,  cm, -dy, -eg,  cr, -dt, -el,  cw, -d_, -eq,  db, -dj, -ev,  dg, -de,  et,  dl, -cz,  eo,  dq, -cu,  ej,  dv, -cp,  ee,  ea, -cl,  dz,  ef, -cq,  du,  ek, -cv,  dp,  ep, -da,  dk,  eu, -df,  df, -eu, -dk,  da, -ep, -dp,  cv, -ek, -du,  cq, -ef, -dz,  cl, -ea, -ee,  cp, -dv, -ej,  cu, -dq, -eo,  cz, -dl, -et,  de, -dg,  ev,  dj, -db,  eq,  d_, -cw,  el,  dt, -cr,  eg,  dy, -cm,  eb,  ed, -co,  dw,  ei, -ct,  dr,  en, -cy,  dm,  es, -dd,  dh, -ew, -di,  dc, -er, -dn,  cx, -em, -ds,  cs, -eh, -dx,  cn, -ec } ,\
-  { am, -ah,  al,  an, -ai,  ak,  ao, -aj,  aj, -ao, -ak,  ai, -an, -al,  ah, -am, -am,  ah, -al, -an,  ai, -ak, -ao,  aj, -aj,  ao,  ak, -ai,  an,  al, -ah,  am,  am, -ah,  al,  an, -ai,  ak,  ao, -aj,  aj, -ao, -ak,  ai, -an, -al,  ah, -am, -am,  ah, -al, -an,  ai, -ak, -ao,  aj, -aj,  ao,  ak, -ai,  an,  al, -ah,  am,  am, -ah,  al,  an, -ai,  ak,  ao, -aj,  aj, -ao, -ak,  ai, -an, -al,  ah, -am, -am,  ah, -al, -an,  ai, -ak, -ao,  aj, -aj,  ao,  ak, -ai,  an,  al, -ah,  am,  am, -ah,  al,  an, -ai,  ak,  ao, -aj,  aj, -ao, -ak,  ai, -an, -al,  ah, -am, -am,  ah, -al, -an,  ai, -ak, -ao,  aj, -aj,  ao,  ak, -ai,  an,  al, -ah,  am } ,\
-  { ed, -cq,  ds,  eo, -db,  dh, -eu, -dm,  cw, -ej, -dx,  cl, -dy, -ei,  cv, -dn, -et,  dg, -dc,  ep,  dr, -cr,  ee,  ec, -cp,  dt,  en, -da,  di, -ev, -dl,  cx, -ek, -dw,  cm, -dz, -eh,  cu, -d_, -es,  df, -dd,  eq,  dq, -cs,  ef,  eb, -co,  du,  em, -cz,  dj, -ew, -dk,  cy, -el, -dv,  cn, -ea, -eg,  ct, -dp, -er,  de, -de,  er,  dp, -ct,  eg,  ea, -cn,  dv,  el, -cy,  dk,  ew, -dj,  cz, -em, -du,  co, -eb, -ef,  cs, -dq, -eq,  dd, -df,  es,  d_, -cu,  eh,  dz, -cm,  dw,  ek, -cx,  dl,  ev, -di,  da, -en, -dt,  cp, -ec, -ee,  cr, -dr, -ep,  dc, -dg,  et,  dn, -cv,  ei,  dy, -cl,  dx,  ej, -cw,  dm,  eu, -dh,  db, -eo, -ds,  cq, -ed } ,\
-  { cb, -bi,  bu,  ci, -bp,  bn, -cg, -bw,  bg, -bz, -cd,  bk, -bs, -ck,  br, -bl,  ce,  by, -bf,  bx,  cf, -bm,  bq, -cj, -bt,  bj, -cc, -ca,  bh, -bv, -ch,  bo, -bo,  ch,  bv, -bh,  ca,  cc, -bj,  bt,  cj, -bq,  bm, -cf, -bx,  bf, -by, -ce,  bl, -br,  ck,  bs, -bk,  cd,  bz, -bg,  bw,  cg, -bn,  bp, -ci, -bu,  bi, -cb, -cb,  bi, -bu, -ci,  bp, -bn,  cg,  bw, -bg,  bz,  cd, -bk,  bs,  ck, -br,  bl, -ce, -by,  bf, -bx, -cf,  bm, -bq,  cj,  bt, -bj,  cc,  ca, -bh,  bv,  ch, -bo,  bo, -ch, -bv,  bh, -ca, -cc,  bj, -bt, -cj,  bq, -bm,  cf,  bx, -bf,  by,  ce, -bl,  br, -ck, -bs,  bk, -cd, -bz,  bg, -bw, -cg,  bn, -bp,  ci,  bu, -bi,  cb } ,\
-  { ee, -ct,  dn,  ev, -dk,  cw, -eh, -eb,  cq, -dq, -es,  dh, -cz,  ek,  dy, -cn,  dt,  ep, -de,  dc, -en, -dv,  cl, -dw, -em,  db, -df,  eq,  ds, -co,  dz,  ej, -cy,  di, -et, -dp,  cr, -ec, -eg,  cv, -dl,  ew,  dm, -cu,  ef,  ed, -cs,  d_,  eu, -dj,  cx, -ei, -ea,  cp, -dr, -er,  dg, -da,  el,  dx, -cm,  du,  eo, -dd,  dd, -eo, -du,  cm, -dx, -el,  da, -dg,  er,  dr, -cp,  ea,  ei, -cx,  dj, -eu, -d_,  cs, -ed, -ef,  cu, -dm, -ew,  dl, -cv,  eg,  ec, -cr,  dp,  et, -di,  cy, -ej, -dz,  co, -ds, -eq,  df, -db,  em,  dw, -cl,  dv,  en, -dc,  de, -ep, -dt,  cn, -dy, -ek,  cz, -dh,  es,  dq, -cq,  eb,  eh, -cw,  dk, -ev, -dn,  ct, -ee } ,\
-  { ba, -ar,  av, -be, -aw,  aq, -az, -bb,  as, -au,  bd,  ax, -ap,  ay,  bc, -at,  at, -bc, -ay,  ap, -ax, -bd,  au, -as,  bb,  az, -aq,  aw,  be, -av,  ar, -ba, -ba,  ar, -av,  be,  aw, -aq,  az,  bb, -as,  au, -bd, -ax,  ap, -ay, -bc,  at, -at,  bc,  ay, -ap,  ax,  bd, -au,  as, -bb, -az,  aq, -aw, -be,  av, -ar,  ba,  ba, -ar,  av, -be, -aw,  aq, -az, -bb,  as, -au,  bd,  ax, -ap,  ay,  bc, -at,  at, -bc, -ay,  ap, -ax, -bd,  au, -as,  bb,  az, -aq,  aw,  be, -av,  ar, -ba, -ba,  ar, -av,  be,  aw, -aq,  az,  bb, -as,  au, -bd, -ax,  ap, -ay, -bc,  at, -at,  bc,  ay, -ap,  ax,  bd, -au,  as, -bb, -az,  aq, -aw, -be,  av, -ar,  ba } ,\
-  { ef, -cw,  di, -er, -dt,  cl, -du, -eq,  dh, -cx,  eg,  ee, -cv,  dj, -es, -ds,  cm, -dv, -ep,  dg, -cy,  eh,  ed, -cu,  dk, -et, -dr,  cn, -dw, -eo,  df, -cz,  ei,  ec, -ct,  dl, -eu, -dq,  co, -dx, -en,  de, -da,  ej,  eb, -cs,  dm, -ev, -dp,  cp, -dy, -em,  dd, -db,  ek,  ea, -cr,  dn, -ew, -d_,  cq, -dz, -el,  dc, -dc,  el,  dz, -cq,  d_,  ew, -dn,  cr, -ea, -ek,  db, -dd,  em,  dy, -cp,  dp,  ev, -dm,  cs, -eb, -ej,  da, -de,  en,  dx, -co,  dq,  eu, -dl,  ct, -ec, -ei,  cz, -df,  eo,  dw, -cn,  dr,  et, -dk,  cu, -ed, -eh,  cy, -dg,  ep,  dv, -cm,  ds,  es, -dj,  cv, -ee, -eg,  cx, -dh,  eq,  du, -cl,  dt,  er, -di,  cw, -ef } ,\
-  { cc, -bl,  bp, -cg, -by,  bh, -bt,  ck,  bu, -bg,  bx,  ch, -bq,  bk, -cb, -cd,  bm, -bo,  cf,  bz, -bi,  bs, -cj, -bv,  bf, -bw, -ci,  br, -bj,  ca,  ce, -bn,  bn, -ce, -ca,  bj, -br,  ci,  bw, -bf,  bv,  cj, -bs,  bi, -bz, -cf,  bo, -bm,  cd,  cb, -bk,  bq, -ch, -bx,  bg, -bu, -ck,  bt, -bh,  by,  cg, -bp,  bl, -cc, -cc,  bl, -bp,  cg,  by, -bh,  bt, -ck, -bu,  bg, -bx, -ch,  bq, -bk,  cb,  cd, -bm,  bo, -cf, -bz,  bi, -bs,  cj,  bv, -bf,  bw,  ci, -br,  bj, -ca, -ce,  bn, -bn,  ce,  ca, -bj,  br, -ci, -bw,  bf, -bv, -cj,  bs, -bi,  bz,  cf, -bo,  bm, -cd, -cb,  bk, -bq,  ch,  bx, -bg,  bu,  ck, -bt,  bh, -by, -cg,  bp, -bl,  cc } ,\
-  { eg, -cz,  dd, -ek, -ec,  cv, -dh,  eo,  dy, -cr,  dl, -es, -du,  cn, -dp,  ew,  dq, -cm,  dt,  et, -dm,  cq, -dx, -ep,  di, -cu,  eb,  el, -de,  cy, -ef, -eh,  da, -dc,  ej,  ed, -cw,  dg, -en, -dz,  cs, -dk,  er,  dv, -co,  d_, -ev, -dr,  cl, -ds, -eu,  dn, -cp,  dw,  eq, -dj,  ct, -ea, -em,  df, -cx,  ee,  ei, -db,  db, -ei, -ee,  cx, -df,  em,  ea, -ct,  dj, -eq, -dw,  cp, -dn,  eu,  ds, -cl,  dr,  ev, -d_,  co, -dv, -er,  dk, -cs,  dz,  en, -dg,  cw, -ed, -ej,  dc, -da,  eh,  ef, -cy,  de, -el, -eb,  cu, -di,  ep,  dx, -cq,  dm, -et, -dt,  cm, -dq, -ew,  dp, -cn,  du,  es, -dl,  cr, -dy, -eo,  dh, -cv,  ec,  ek, -dd,  cz, -eg } ,\
-  { ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac,  ac, -ab,  ab, -ac, -ac,  ab, -ab,  ac } ,\
-  { eh, -dc,  cy, -ed, -el,  dg, -cu,  dz,  ep, -dk,  cq, -dv, -et,  d_, -cm,  dr, -ew, -ds,  cn, -dn,  es,  dw, -cr,  dj, -eo, -ea,  cv, -df,  ek,  ee, -cz,  db, -eg, -ei,  dd, -cx,  ec,  em, -dh,  ct, -dy, -eq,  dl, -cp,  du,  eu, -dp,  cl, -dq,  ev,  dt, -co,  dm, -er, -dx,  cs, -di,  en,  eb, -cw,  de, -ej, -ef,  da, -da,  ef,  ej, -de,  cw, -eb, -en,  di, -cs,  dx,  er, -dm,  co, -dt, -ev,  dq, -cl,  dp, -eu, -du,  cp, -dl,  eq,  dy, -ct,  dh, -em, -ec,  cx, -dd,  ei,  eg, -db,  cz, -ee, -ek,  df, -cv,  ea,  eo, -dj,  cr, -dw, -es,  dn, -cn,  ds,  ew, -dr,  cm, -d_,  et,  dv, -cq,  dk, -ep, -dz,  cu, -dg,  el,  ed, -cy,  dc, -eh } ,\
-  { cd, -bo,  bk, -bz, -ch,  bs, -bg,  bv, -ck, -bw,  bh, -br,  cg,  ca, -bl,  bn, -cc, -ce,  bp, -bj,  by,  ci, -bt,  bf, -bu,  cj,  bx, -bi,  bq, -cf, -cb,  bm, -bm,  cb,  cf, -bq,  bi, -bx, -cj,  bu, -bf,  bt, -ci, -by,  bj, -bp,  ce,  cc, -bn,  bl, -ca, -cg,  br, -bh,  bw,  ck, -bv,  bg, -bs,  ch,  bz, -bk,  bo, -cd, -cd,  bo, -bk,  bz,  ch, -bs,  bg, -bv,  ck,  bw, -bh,  br, -cg, -ca,  bl, -bn,  cc,  ce, -bp,  bj, -by, -ci,  bt, -bf,  bu, -cj, -bx,  bi, -bq,  cf,  cb, -bm,  bm, -cb, -cf,  bq, -bi,  bx,  cj, -bu,  bf, -bt,  ci,  by, -bj,  bp, -ce, -cc,  bn, -bl,  ca,  cg, -br,  bh, -bw, -ck,  bv, -bg,  bs, -ch, -bz,  bk, -bo,  cd } ,\
-  { ei, -df,  ct, -dw, -eu,  dr, -co,  dk, -en, -ed,  da, -cy,  eb,  ep, -dm,  cm, -dp,  es,  dy, -cv,  dd, -eg, -ek,  dh, -cr,  du,  ew, -dt,  cq, -di,  el,  ef, -dc,  cw, -dz, -er,  d_, -cl,  dn, -eq, -ea,  cx, -db,  ee,  em, -dj,  cp, -ds,  ev,  dv, -cs,  dg, -ej, -eh,  de, -cu,  dx,  et, -dq,  cn, -dl,  eo,  ec, -cz,  cz, -ec, -eo,  dl, -cn,  dq, -et, -dx,  cu, -de,  eh,  ej, -dg,  cs, -dv, -ev,  ds, -cp,  dj, -em, -ee,  db, -cx,  ea,  eq, -dn,  cl, -d_,  er,  dz, -cw,  dc, -ef, -el,  di, -cq,  dt, -ew, -du,  cr, -dh,  ek,  eg, -dd,  cv, -dy, -es,  dp, -cm,  dm, -ep, -eb,  cy, -da,  ed,  en, -dk,  co, -dr,  eu,  dw, -ct,  df, -ei } ,\
-  { bb, -au,  aq, -ax,  be,  ay, -ar,  at, -ba, -bc,  av, -ap,  aw, -bd, -az,  as, -as,  az,  bd, -aw,  ap, -av,  bc,  ba, -at,  ar, -ay, -be,  ax, -aq,  au, -bb, -bb,  au, -aq,  ax, -be, -ay,  ar, -at,  ba,  bc, -av,  ap, -aw,  bd,  az, -as,  as, -az, -bd,  aw, -ap,  av, -bc, -ba,  at, -ar,  ay,  be, -ax,  aq, -au,  bb,  bb, -au,  aq, -ax,  be,  ay, -ar,  at, -ba, -bc,  av, -ap,  aw, -bd, -az,  as, -as,  az,  bd, -aw,  ap, -av,  bc,  ba, -at,  ar, -ay, -be,  ax, -aq,  au, -bb, -bb,  au, -aq,  ax, -be, -ay,  ar, -at,  ba,  bc, -av,  ap, -aw,  bd,  az, -as,  as, -az, -bd,  aw, -ap,  av, -bc, -ba,  at, -ar,  ay,  be, -ax,  aq, -au,  bb } ,\
-  { ej, -di,  co, -dp,  eq,  ec, -db,  cv, -dw, -ew,  dv, -cu,  dc, -ed, -ep,  d_, -cn,  dj, -ek, -ei,  dh, -cp,  dq, -er, -eb,  da, -cw,  dx,  ev, -du,  ct, -dd,  ee,  eo, -dn,  cm, -dk,  el,  eh, -dg,  cq, -dr,  es,  ea, -cz,  cx, -dy, -eu,  dt, -cs,  de, -ef, -en,  dm, -cl,  dl, -em, -eg,  df, -cr,  ds, -et, -dz,  cy, -cy,  dz,  et, -ds,  cr, -df,  eg,  em, -dl,  cl, -dm,  en,  ef, -de,  cs, -dt,  eu,  dy, -cx,  cz, -ea, -es,  dr, -cq,  dg, -eh, -el,  dk, -cm,  dn, -eo, -ee,  dd, -ct,  du, -ev, -dx,  cw, -da,  eb,  er, -dq,  cp, -dh,  ei,  ek, -dj,  cn, -d_,  ep,  ed, -dc,  cu, -dv,  ew,  dw, -cv,  db, -ec, -eq,  dp, -co,  di, -ej } ,\
-  { ce, -br,  bf, -bs,  cf,  cd, -bq,  bg, -bt,  cg,  cc, -bp,  bh, -bu,  ch,  cb, -bo,  bi, -bv,  ci,  ca, -bn,  bj, -bw,  cj,  bz, -bm,  bk, -bx,  ck,  by, -bl,  bl, -by, -ck,  bx, -bk,  bm, -bz, -cj,  bw, -bj,  bn, -ca, -ci,  bv, -bi,  bo, -cb, -ch,  bu, -bh,  bp, -cc, -cg,  bt, -bg,  bq, -cd, -cf,  bs, -bf,  br, -ce, -ce,  br, -bf,  bs, -cf, -cd,  bq, -bg,  bt, -cg, -cc,  bp, -bh,  bu, -ch, -cb,  bo, -bi,  bv, -ci, -ca,  bn, -bj,  bw, -cj, -bz,  bm, -bk,  bx, -ck, -by,  bl, -bl,  by,  ck, -bx,  bk, -bm,  bz,  cj, -bw,  bj, -bn,  ca,  ci, -bv,  bi, -bo,  cb,  ch, -bu,  bh, -bp,  cc,  cg, -bt,  bg, -bq,  cd,  cf, -bs,  bf, -br,  ce } ,\
-  { ek, -dl,  cm, -di,  eh,  en, -d_,  cp, -df,  ee,  eq, -dr,  cs, -dc,  eb,  et, -du,  cv, -cz,  dy,  ew, -dx,  cy, -cw,  dv, -eu, -ea,  db, -ct,  ds, -er, -ed,  de, -cq,  dp, -eo, -eg,  dh, -cn,  dm, -el, -ej,  dk, -cl,  dj, -ei, -em,  dn, -co,  dg, -ef, -ep,  dq, -cr,  dd, -ec, -es,  dt, -cu,  da, -dz, -ev,  dw, -cx,  cx, -dw,  ev,  dz, -da,  cu, -dt,  es,  ec, -dd,  cr, -dq,  ep,  ef, -dg,  co, -dn,  em,  ei, -dj,  cl, -dk,  ej,  el, -dm,  cn, -dh,  eg,  eo, -dp,  cq, -de,  ed,  er, -ds,  ct, -db,  ea,  eu, -dv,  cw, -cy,  dx, -ew, -dy,  cz, -cv,  du, -et, -eb,  dc, -cs,  dr, -eq, -ee,  df, -cp,  d_, -en, -eh,  di, -cm,  dl, -ek } ,\
-  { an, -ak,  ah, -aj,  am,  ao, -al,  ai, -ai,  al, -ao, -am,  aj, -ah,  ak, -an, -an,  ak, -ah,  aj, -am, -ao,  al, -ai,  ai, -al,  ao,  am, -aj,  ah, -ak,  an,  an, -ak,  ah, -aj,  am,  ao, -al,  ai, -ai,  al, -ao, -am,  aj, -ah,  ak, -an, -an,  ak, -ah,  aj, -am, -ao,  al, -ai,  ai, -al,  ao,  am, -aj,  ah, -ak,  an,  an, -ak,  ah, -aj,  am,  ao, -al,  ai, -ai,  al, -ao, -am,  aj, -ah,  ak, -an, -an,  ak, -ah,  aj, -am, -ao,  al, -ai,  ai, -al,  ao,  am, -aj,  ah, -ak,  an,  an, -ak,  ah, -aj,  am,  ao, -al,  ai, -ai,  al, -ao, -am,  aj, -ah,  ak, -an, -an,  ak, -ah,  aj, -am, -ao,  al, -ai,  ai, -al,  ao,  am, -aj,  ah, -ak,  an } ,\
-  { el, -d_,  cr, -db,  dy, -ev, -eb,  de, -co,  dl, -ei, -eo,  dr, -cu,  cy, -dv,  es,  ee, -dh,  cl, -di,  ef,  er, -du,  cx, -cv,  ds, -ep, -eh,  dk, -cn,  df, -ec, -eu,  dx, -da,  cs, -dp,  em,  ek, -dn,  cq, -dc,  dz, -ew, -ea,  dd, -cp,  dm, -ej, -en,  dq, -ct,  cz, -dw,  et,  ed, -dg,  cm, -dj,  eg,  eq, -dt,  cw, -cw,  dt, -eq, -eg,  dj, -cm,  dg, -ed, -et,  dw, -cz,  ct, -dq,  en,  ej, -dm,  cp, -dd,  ea,  ew, -dz,  dc, -cq,  dn, -ek, -em,  dp, -cs,  da, -dx,  eu,  ec, -df,  cn, -dk,  eh,  ep, -ds,  cv, -cx,  du, -er, -ef,  di, -cl,  dh, -ee, -es,  dv, -cy,  cu, -dr,  eo,  ei, -dl,  co, -de,  eb,  ev, -dy,  db, -cr,  d_, -el } ,\
-  { cf, -bu,  bj, -bl,  bw, -ch, -cd,  bs, -bh,  bn, -by,  cj,  cb, -bq,  bf, -bp,  ca,  ck, -bz,  bo, -bg,  br, -cc, -ci,  bx, -bm,  bi, -bt,  ce,  cg, -bv,  bk, -bk,  bv, -cg, -ce,  bt, -bi,  bm, -bx,  ci,  cc, -br,  bg, -bo,  bz, -ck, -ca,  bp, -bf,  bq, -cb, -cj,  by, -bn,  bh, -bs,  cd,  ch, -bw,  bl, -bj,  bu, -cf, -cf,  bu, -bj,  bl, -bw,  ch,  cd, -bs,  bh, -bn,  by, -cj, -cb,  bq, -bf,  bp, -ca, -ck,  bz, -bo,  bg, -br,  cc,  ci, -bx,  bm, -bi,  bt, -ce, -cg,  bv, -bk,  bk, -bv,  cg,  ce, -bt,  bi, -bm,  bx, -ci, -cc,  br, -bg,  bo, -bz,  ck,  ca, -bp,  bf, -bq,  cb,  cj, -by,  bn, -bh,  bs, -cd, -ch,  bw, -bl,  bj, -bu,  cf } ,\
-  { em, -dr,  cw, -cu,  dp, -ek, -eo,  dt, -cy,  cs, -dn,  ei,  eq, -dv,  da, -cq,  dl, -eg, -es,  dx, -dc,  co, -dj,  ee,  eu, -dz,  de, -cm,  dh, -ec, -ew,  eb, -dg,  cl, -df,  ea, -ev, -ed,  di, -cn,  dd, -dy,  et,  ef, -dk,  cp, -db,  dw, -er, -eh,  dm, -cr,  cz, -du,  ep,  ej, -d_,  ct, -cx,  ds, -en, -el,  dq, -cv,  cv, -dq,  el,  en, -ds,  cx, -ct,  d_, -ej, -ep,  du, -cz,  cr, -dm,  eh,  er, -dw,  db, -cp,  dk, -ef, -et,  dy, -dd,  cn, -di,  ed,  ev, -ea,  df, -cl,  dg, -eb,  ew,  ec, -dh,  cm, -de,  dz, -eu, -ee,  dj, -co,  dc, -dx,  es,  eg, -dl,  cq, -da,  dv, -eq, -ei,  dn, -cs,  cy, -dt,  eo,  ek, -dp,  cu, -cw,  dr, -em } ,\
-  { bc, -ax,  as, -aq,  av, -ba, -be,  az, -au,  ap, -at,  ay, -bd, -bb,  aw, -ar,  ar, -aw,  bb,  bd, -ay,  at, -ap,  au, -az,  be,  ba, -av,  aq, -as,  ax, -bc, -bc,  ax, -as,  aq, -av,  ba,  be, -az,  au, -ap,  at, -ay,  bd,  bb, -aw,  ar, -ar,  aw, -bb, -bd,  ay, -at,  ap, -au,  az, -be, -ba,  av, -aq,  as, -ax,  bc,  bc, -ax,  as, -aq,  av, -ba, -be,  az, -au,  ap, -at,  ay, -bd, -bb,  aw, -ar,  ar, -aw,  bb,  bd, -ay,  at, -ap,  au, -az,  be,  ba, -av,  aq, -as,  ax, -bc, -bc,  ax, -as,  aq, -av,  ba,  be, -az,  au, -ap,  at, -ay,  bd,  bb, -aw,  ar, -ar,  aw, -bb, -bd,  ay, -at,  ap, -au,  az, -be, -ba,  av, -aq,  as, -ax,  bc } ,\
-  { en, -du,  db, -cn,  dg, -dz,  es,  ei, -dp,  cw, -cs,  dl, -ee, -ew,  ed, -dk,  cr, -cx,  dq, -ej, -er,  dy, -df,  cm, -dc,  dv, -eo, -em,  dt, -da,  co, -dh,  ea, -et, -eh,  d_, -cv,  ct, -dm,  ef,  ev, -ec,  dj, -cq,  cy, -dr,  ek,  eq, -dx,  de, -cl,  dd, -dw,  ep,  el, -ds,  cz, -cp,  di, -eb,  eu,  eg, -dn,  cu, -cu,  dn, -eg, -eu,  eb, -di,  cp, -cz,  ds, -el, -ep,  dw, -dd,  cl, -de,  dx, -eq, -ek,  dr, -cy,  cq, -dj,  ec, -ev, -ef,  dm, -ct,  cv, -d_,  eh,  et, -ea,  dh, -co,  da, -dt,  em,  eo, -dv,  dc, -cm,  df, -dy,  er,  ej, -dq,  cx, -cr,  dk, -ed,  ew,  ee, -dl,  cs, -cw,  dp, -ei, -es,  dz, -dg,  cn, -db,  du, -en } ,\
-  { cg, -bx,  bo, -bf,  bn, -bw,  cf,  ch, -by,  bp, -bg,  bm, -bv,  ce,  ci, -bz,  bq, -bh,  bl, -bu,  cd,  cj, -ca,  br, -bi,  bk, -bt,  cc,  ck, -cb,  bs, -bj,  bj, -bs,  cb, -ck, -cc,  bt, -bk,  bi, -br,  ca, -cj, -cd,  bu, -bl,  bh, -bq,  bz, -ci, -ce,  bv, -bm,  bg, -bp,  by, -ch, -cf,  bw, -bn,  bf, -bo,  bx, -cg, -cg,  bx, -bo,  bf, -bn,  bw, -cf, -ch,  by, -bp,  bg, -bm,  bv, -ce, -ci,  bz, -bq,  bh, -bl,  bu, -cd, -cj,  ca, -br,  bi, -bk,  bt, -cc, -ck,  cb, -bs,  bj, -bj,  bs, -cb,  ck,  cc, -bt,  bk, -bi,  br, -ca,  cj,  cd, -bu,  bl, -bh,  bq, -bz,  ci,  ce, -bv,  bm, -bg,  bp, -by,  ch,  cf, -bw,  bn, -bf,  bo, -bx,  cg } ,\
-  { eo, -dx,  dg, -cp,  cx, -d_,  ef, -ew, -eg,  dp, -cy,  co, -df,  dw, -en, -ep,  dy, -dh,  cq, -cw,  dn, -ee,  ev,  eh, -dq,  cz, -cn,  de, -dv,  em,  eq, -dz,  di, -cr,  cv, -dm,  ed, -eu, -ei,  dr, -da,  cm, -dd,  du, -el, -er,  ea, -dj,  cs, -cu,  dl, -ec,  et,  ej, -ds,  db, -cl,  dc, -dt,  ek,  es, -eb,  dk, -ct,  ct, -dk,  eb, -es, -ek,  dt, -dc,  cl, -db,  ds, -ej, -et,  ec, -dl,  cu, -cs,  dj, -ea,  er,  el, -du,  dd, -cm,  da, -dr,  ei,  eu, -ed,  dm, -cv,  cr, -di,  dz, -eq, -em,  dv, -de,  cn, -cz,  dq, -eh, -ev,  ee, -dn,  cw, -cq,  dh, -dy,  ep,  en, -dw,  df, -co,  cy, -dp,  eg,  ew, -ef,  d_, -cx,  cp, -dg,  dx, -eo } ,\
-  { ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag,  ag, -af,  ae, -ad,  ad, -ae,  af, -ag, -ag,  af, -ae,  ad, -ad,  ae, -af,  ag } ,\
-  { ep, -ea,  dl, -cw,  co, -dd,  ds, -eh,  ew,  ei, -dt,  de, -cp,  cv, -dk,  dz, -eo, -eq,  eb, -dm,  cx, -cn,  dc, -dr,  eg, -ev, -ej,  du, -df,  cq, -cu,  dj, -dy,  en,  er, -ec,  dn, -cy,  cm, -db,  dq, -ef,  eu,  ek, -dv,  dg, -cr,  ct, -di,  dx, -em, -es,  ed, -d_,  cz, -cl,  da, -dp,  ee, -et, -el,  dw, -dh,  cs, -cs,  dh, -dw,  el,  et, -ee,  dp, -da,  cl, -cz,  d_, -ed,  es,  em, -dx,  di, -ct,  cr, -dg,  dv, -ek, -eu,  ef, -dq,  db, -cm,  cy, -dn,  ec, -er, -en,  dy, -dj,  cu, -cq,  df, -du,  ej,  ev, -eg,  dr, -dc,  cn, -cx,  dm, -eb,  eq,  eo, -dz,  dk, -cv,  cp, -de,  dt, -ei, -ew,  eh, -ds,  dd, -co,  cw, -dl,  ea, -ep } ,\
-  { ch, -ca,  bt, -bm,  bf, -bl,  bs, -bz,  cg,  ci, -cb,  bu, -bn,  bg, -bk,  br, -by,  cf,  cj, -cc,  bv, -bo,  bh, -bj,  bq, -bx,  ce,  ck, -cd,  bw, -bp,  bi, -bi,  bp, -bw,  cd, -ck, -ce,  bx, -bq,  bj, -bh,  bo, -bv,  cc, -cj, -cf,  by, -br,  bk, -bg,  bn, -bu,  cb, -ci, -cg,  bz, -bs,  bl, -bf,  bm, -bt,  ca, -ch, -ch,  ca, -bt,  bm, -bf,  bl, -bs,  bz, -cg, -ci,  cb, -bu,  bn, -bg,  bk, -br,  by, -cf, -cj,  cc, -bv,  bo, -bh,  bj, -bq,  bx, -ce, -ck,  cd, -bw,  bp, -bi,  bi, -bp,  bw, -cd,  ck,  ce, -bx,  bq, -bj,  bh, -bo,  bv, -cc,  cj,  cf, -by,  br, -bk,  bg, -bn,  bu, -cb,  ci,  cg, -bz,  bs, -bl,  bf, -bm,  bt, -ca,  ch } ,\
-  { eq, -ed,  dq, -dd,  cq, -cs,  df, -ds,  ef, -es, -eo,  eb, -d_,  db, -co,  cu, -dh,  du, -eh,  eu,  em, -dz,  dm, -cz,  cm, -cw,  dj, -dw,  ej, -ew, -ek,  dx, -dk,  cx, -cl,  cy, -dl,  dy, -el, -ev,  ei, -dv,  di, -cv,  cn, -da,  dn, -ea,  en,  et, -eg,  dt, -dg,  ct, -cp,  dc, -dp,  ec, -ep, -er,  ee, -dr,  de, -cr,  cr, -de,  dr, -ee,  er,  ep, -ec,  dp, -dc,  cp, -ct,  dg, -dt,  eg, -et, -en,  ea, -dn,  da, -cn,  cv, -di,  dv, -ei,  ev,  el, -dy,  dl, -cy,  cl, -cx,  dk, -dx,  ek,  ew, -ej,  dw, -dj,  cw, -cm,  cz, -dm,  dz, -em, -eu,  eh, -du,  dh, -cu,  co, -db,  d_, -eb,  eo,  es, -ef,  ds, -df,  cs, -cq,  dd, -dq,  ed, -eq } ,\
-  { bd, -ba,  ax, -au,  ar, -ap,  as, -av,  ay, -bb,  be,  bc, -az,  aw, -at,  aq, -aq,  at, -aw,  az, -bc, -be,  bb, -ay,  av, -as,  ap, -ar,  au, -ax,  ba, -bd, -bd,  ba, -ax,  au, -ar,  ap, -as,  av, -ay,  bb, -be, -bc,  az, -aw,  at, -aq,  aq, -at,  aw, -az,  bc,  be, -bb,  ay, -av,  as, -ap,  ar, -au,  ax, -ba,  bd,  bd, -ba,  ax, -au,  ar, -ap,  as, -av,  ay, -bb,  be,  bc, -az,  aw, -at,  aq, -aq,  at, -aw,  az, -bc, -be,  bb, -ay,  av, -as,  ap, -ar,  au, -ax,  ba, -bd, -bd,  ba, -ax,  au, -ar,  ap, -as,  av, -ay,  bb, -be, -bc,  az, -aw,  at, -aq,  aq, -at,  aw, -az,  bc,  be, -bb,  ay, -av,  as, -ap,  ar, -au,  ax, -ba,  bd } ,\
-  { er, -eg,  dv, -dk,  cz, -co,  cs, -dd,  d_, -dz,  ek, -ev, -en,  ec, -dr,  dg, -cv,  cl, -cw,  dh, -ds,  ed, -eo, -eu,  ej, -dy,  dn, -dc,  cr, -cp,  da, -dl,  dw, -eh,  es,  eq, -ef,  du, -dj,  cy, -cn,  ct, -de,  dp, -ea,  el, -ew, -em,  eb, -dq,  df, -cu,  cm, -cx,  di, -dt,  ee, -ep, -et,  ei, -dx,  dm, -db,  cq, -cq,  db, -dm,  dx, -ei,  et,  ep, -ee,  dt, -di,  cx, -cm,  cu, -df,  dq, -eb,  em,  ew, -el,  ea, -dp,  de, -ct,  cn, -cy,  dj, -du,  ef, -eq, -es,  eh, -dw,  dl, -da,  cp, -cr,  dc, -dn,  dy, -ej,  eu,  eo, -ed,  ds, -dh,  cw, -cl,  cv, -dg,  dr, -ec,  en,  ev, -ek,  dz, -d_,  dd, -cs,  co, -cz,  dk, -dv,  eg, -er } ,\
-  { ci, -cd,  by, -bt,  bo, -bj,  bf, -bk,  bp, -bu,  bz, -ce,  cj,  ch, -cc,  bx, -bs,  bn, -bi,  bg, -bl,  bq, -bv,  ca, -cf,  ck,  cg, -cb,  bw, -br,  bm, -bh,  bh, -bm,  br, -bw,  cb, -cg, -ck,  cf, -ca,  bv, -bq,  bl, -bg,  bi, -bn,  bs, -bx,  cc, -ch, -cj,  ce, -bz,  bu, -bp,  bk, -bf,  bj, -bo,  bt, -by,  cd, -ci, -ci,  cd, -by,  bt, -bo,  bj, -bf,  bk, -bp,  bu, -bz,  ce, -cj, -ch,  cc, -bx,  bs, -bn,  bi, -bg,  bl, -bq,  bv, -ca,  cf, -ck, -cg,  cb, -bw,  br, -bm,  bh, -bh,  bm, -br,  bw, -cb,  cg,  ck, -cf,  ca, -bv,  bq, -bl,  bg, -bi,  bn, -bs,  bx, -cc,  ch,  cj, -ce,  bz, -bu,  bp, -bk,  bf, -bj,  bo, -bt,  by, -cd,  ci } ,\
-  { es, -ej,  ea, -dr,  di, -cz,  cq, -co,  cx, -dg,  dp, -dy,  eh, -eq, -eu,  el, -ec,  dt, -dk,  db, -cs,  cm, -cv,  de, -dn,  dw, -ef,  eo,  ew, -en,  ee, -dv,  dm, -dd,  cu, -cl,  ct, -dc,  dl, -du,  ed, -em,  ev,  ep, -eg,  dx, -d_,  df, -cw,  cn, -cr,  da, -dj,  ds, -eb,  ek, -et, -er,  ei, -dz,  dq, -dh,  cy, -cp,  cp, -cy,  dh, -dq,  dz, -ei,  er,  et, -ek,  eb, -ds,  dj, -da,  cr, -cn,  cw, -df,  d_, -dx,  eg, -ep, -ev,  em, -ed,  du, -dl,  dc, -ct,  cl, -cu,  dd, -dm,  dv, -ee,  en, -ew, -eo,  ef, -dw,  dn, -de,  cv, -cm,  cs, -db,  dk, -dt,  ec, -el,  eu,  eq, -eh,  dy, -dp,  dg, -cx,  co, -cq,  cz, -di,  dr, -ea,  ej, -es } ,\
-  { ao, -an,  am, -al,  ak, -aj,  ai, -ah,  ah, -ai,  aj, -ak,  al, -am,  an, -ao, -ao,  an, -am,  al, -ak,  aj, -ai,  ah, -ah,  ai, -aj,  ak, -al,  am, -an,  ao,  ao, -an,  am, -al,  ak, -aj,  ai, -ah,  ah, -ai,  aj, -ak,  al, -am,  an, -ao, -ao,  an, -am,  al, -ak,  aj, -ai,  ah, -ah,  ai, -aj,  ak, -al,  am, -an,  ao,  ao, -an,  am, -al,  ak, -aj,  ai, -ah,  ah, -ai,  aj, -ak,  al, -am,  an, -ao, -ao,  an, -am,  al, -ak,  aj, -ai,  ah, -ah,  ai, -aj,  ak, -al,  am, -an,  ao,  ao, -an,  am, -al,  ak, -aj,  ai, -ah,  ah, -ai,  aj, -ak,  al, -am,  an, -ao, -ao,  an, -am,  al, -ak,  aj, -ai,  ah, -ah,  ai, -aj,  ak, -al,  am, -an,  ao } ,\
-  { et, -em,  ef, -dy,  dr, -dk,  dd, -cw,  cp, -cn,  cu, -db,  di, -dp,  dw, -ed,  ek, -er, -ev,  eo, -eh,  ea, -dt,  dm, -df,  cy, -cr,  cl, -cs,  cz, -dg,  dn, -du,  eb, -ei,  ep, -ew, -eq,  ej, -ec,  dv, -d_,  dh, -da,  ct, -cm,  cq, -cx,  de, -dl,  ds, -dz,  eg, -en,  eu,  es, -el,  ee, -dx,  dq, -dj,  dc, -cv,  co, -co,  cv, -dc,  dj, -dq,  dx, -ee,  el, -es, -eu,  en, -eg,  dz, -ds,  dl, -de,  cx, -cq,  cm, -ct,  da, -dh,  d_, -dv,  ec, -ej,  eq,  ew, -ep,  ei, -eb,  du, -dn,  dg, -cz,  cs, -cl,  cr, -cy,  df, -dm,  dt, -ea,  eh, -eo,  ev,  er, -ek,  ed, -dw,  dp, -di,  db, -cu,  cn, -cp,  cw, -dd,  dk, -dr,  dy, -ef,  em, -et } ,\
-  { cj, -cg,  cd, -ca,  bx, -bu,  br, -bo,  bl, -bi,  bf, -bh,  bk, -bn,  bq, -bt,  bw, -bz,  cc, -cf,  ci,  ck, -ch,  ce, -cb,  by, -bv,  bs, -bp,  bm, -bj,  bg, -bg,  bj, -bm,  bp, -bs,  bv, -by,  cb, -ce,  ch, -ck, -ci,  cf, -cc,  bz, -bw,  bt, -bq,  bn, -bk,  bh, -bf,  bi, -bl,  bo, -br,  bu, -bx,  ca, -cd,  cg, -cj, -cj,  cg, -cd,  ca, -bx,  bu, -br,  bo, -bl,  bi, -bf,  bh, -bk,  bn, -bq,  bt, -bw,  bz, -cc,  cf, -ci, -ck,  ch, -ce,  cb, -by,  bv, -bs,  bp, -bm,  bj, -bg,  bg, -bj,  bm, -bp,  bs, -bv,  by, -cb,  ce, -ch,  ck,  ci, -cf,  cc, -bz,  bw, -bt,  bq, -bn,  bk, -bh,  bf, -bi,  bl, -bo,  br, -bu,  bx, -ca,  cd, -cg,  cj } ,\
-  { eu, -ep,  ek, -ef,  ea, -dv,  dq, -dl,  dg, -db,  cw, -cr,  cm, -co,  ct, -cy,  dd, -di,  dn, -ds,  dx, -ec,  eh, -em,  er, -ew, -es,  en, -ei,  ed, -dy,  dt, -d_,  dj, -de,  cz, -cu,  cp, -cl,  cq, -cv,  da, -df,  dk, -dp,  du, -dz,  ee, -ej,  eo, -et, -ev,  eq, -el,  eg, -eb,  dw, -dr,  dm, -dh,  dc, -cx,  cs, -cn,  cn, -cs,  cx, -dc,  dh, -dm,  dr, -dw,  eb, -eg,  el, -eq,  ev,  et, -eo,  ej, -ee,  dz, -du,  dp, -dk,  df, -da,  cv, -cq,  cl, -cp,  cu, -cz,  de, -dj,  d_, -dt,  dy, -ed,  ei, -en,  es,  ew, -er,  em, -eh,  ec, -dx,  ds, -dn,  di, -dd,  cy, -ct,  co, -cm,  cr, -cw,  db, -dg,  dl, -dq,  dv, -ea,  ef, -ek,  ep, -eu } ,\
-  { be, -bd,  bc, -bb,  ba, -az,  ay, -ax,  aw, -av,  au, -at,  as, -ar,  aq, -ap,  ap, -aq,  ar, -as,  at, -au,  av, -aw,  ax, -ay,  az, -ba,  bb, -bc,  bd, -be, -be,  bd, -bc,  bb, -ba,  az, -ay,  ax, -aw,  av, -au,  at, -as,  ar, -aq,  ap, -ap,  aq, -ar,  as, -at,  au, -av,  aw, -ax,  ay, -az,  ba, -bb,  bc, -bd,  be,  be, -bd,  bc, -bb,  ba, -az,  ay, -ax,  aw, -av,  au, -at,  as, -ar,  aq, -ap,  ap, -aq,  ar, -as,  at, -au,  av, -aw,  ax, -ay,  az, -ba,  bb, -bc,  bd, -be, -be,  bd, -bc,  bb, -ba,  az, -ay,  ax, -aw,  av, -au,  at, -as,  ar, -aq,  ap, -ap,  aq, -ar,  as, -at,  au, -av,  aw, -ax,  ay, -az,  ba, -bb,  bc, -bd,  be } ,\
-  { ev, -es,  ep, -em,  ej, -eg,  ed, -ea,  dx, -du,  dr, -d_,  dl, -di,  df, -dc,  cz, -cw,  ct, -cq,  cn, -cl,  co, -cr,  cu, -cx,  da, -dd,  dg, -dj,  dm, -dp,  ds, -dv,  dy, -eb,  ee, -eh,  ek, -en,  eq, -et,  ew,  eu, -er,  eo, -el,  ei, -ef,  ec, -dz,  dw, -dt,  dq, -dn,  dk, -dh,  de, -db,  cy, -cv,  cs, -cp,  cm, -cm,  cp, -cs,  cv, -cy,  db, -de,  dh, -dk,  dn, -dq,  dt, -dw,  dz, -ec,  ef, -ei,  el, -eo,  er, -eu, -ew,  et, -eq,  en, -ek,  eh, -ee,  eb, -dy,  dv, -ds,  dp, -dm,  dj, -dg,  dd, -da,  cx, -cu,  cr, -co,  cl, -cn,  cq, -ct,  cw, -cz,  dc, -df,  di, -dl,  d_, -dr,  du, -dx,  ea, -ed,  eg, -ej,  em, -ep,  es, -ev } ,\
-  { ck, -cj,  ci, -ch,  cg, -cf,  ce, -cd,  cc, -cb,  ca, -bz,  by, -bx,  bw, -bv,  bu, -bt,  bs, -br,  bq, -bp,  bo, -bn,  bm, -bl,  bk, -bj,  bi, -bh,  bg, -bf,  bf, -bg,  bh, -bi,  bj, -bk,  bl, -bm,  bn, -bo,  bp, -bq,  br, -bs,  bt, -bu,  bv, -bw,  bx, -by,  bz, -ca,  cb, -cc,  cd, -ce,  cf, -cg,  ch, -ci,  cj, -ck, -ck,  cj, -ci,  ch, -cg,  cf, -ce,  cd, -cc,  cb, -ca,  bz, -by,  bx, -bw,  bv, -bu,  bt, -bs,  br, -bq,  bp, -bo,  bn, -bm,  bl, -bk,  bj, -bi,  bh, -bg,  bf, -bf,  bg, -bh,  bi, -bj,  bk, -bl,  bm, -bn,  bo, -bp,  bq, -br,  bs, -bt,  bu, -bv,  bw, -bx,  by, -bz,  ca, -cb,  cc, -cd,  ce, -cf,  cg, -ch,  ci, -cj,  ck } ,\
-  { ew, -ev,  eu, -et,  es, -er,  eq, -ep,  eo, -en,  em, -el,  ek, -ej,  ei, -eh,  eg, -ef,  ee, -ed,  ec, -eb,  ea, -dz,  dy, -dx,  dw, -dv,  du, -dt,  ds, -dr,  dq, -dp,  d_, -dn,  dm, -dl,  dk, -dj,  di, -dh,  dg, -df,  de, -dd,  dc, -db,  da, -cz,  cy, -cx,  cw, -cv,  cu, -ct,  cs, -cr,  cq, -cp,  co, -cn,  cm, -cl,  cl, -cm,  cn, -co,  cp, -cq,  cr, -cs,  ct, -cu,  cv, -cw,  cx, -cy,  cz, -da,  db, -dc,  dd, -de,  df, -dg,  dh, -di,  dj, -dk,  dl, -dm,  dn, -d_,  dp, -dq,  dr, -ds,  dt, -du,  dv, -dw,  dx, -dy,  dz, -ea,  eb, -ec,  ed, -ee,  ef, -eg,  eh, -ei,  ej, -ek,  el, -em,  en, -eo,  ep, -eq,  er, -es,  et, -eu,  ev, -ew } ,\
-}
-
-
-
-
-
-//--------------------------------------------------------------------------------------------------
-
-//coefficients
-
-#if RExt__HIGH_PRECISION_FORWARD_TRANSFORM
-const TMatrixCoeff g_aiT2[TRANSFORM_NUMBER_OF_DIRECTIONS][2][2] =
-{
-  DEFINE_DCT2x2_MATRIX( 16384),
-  DEFINE_DCT2x2_MATRIX(    64)
-};
-
-const TMatrixCoeff g_aiT4 [TRANSFORM_NUMBER_OF_DIRECTIONS][4][4]   =
-{
-  DEFINE_DCT4x4_MATRIX  (16384, 21266,  9224),
-  DEFINE_DCT4x4_MATRIX  (   64,    83,    36)
-};
-
-const TMatrixCoeff g_aiT8 [TRANSFORM_NUMBER_OF_DIRECTIONS][8][8]   =
-{
-  DEFINE_DCT8x8_MATRIX  (16384, 21266,  9224, 22813, 19244, 12769,  4563),
-  DEFINE_DCT8x8_MATRIX  (   64,    83,    36,    89,    75,    50,    18)
-};
-
-const TMatrixCoeff g_aiT16[TRANSFORM_NUMBER_OF_DIRECTIONS][16][16] =
-{
-  DEFINE_DCT16x16_MATRIX(16384, 21266,  9224, 22813, 19244, 12769,  4563, 23120, 22063, 20450, 17972, 14642, 11109,  6446,  2316),
-  DEFINE_DCT16x16_MATRIX(   64,    83,    36,    89,    75,    50,    18,    90,    87,    80,    70,    57,    43,    25,     9)
-};
-
-const TMatrixCoeff g_aiT32[TRANSFORM_NUMBER_OF_DIRECTIONS][32][32] =
-{
-  DEFINE_DCT32x32_MATRIX(16384, 21266,  9224, 22813, 19244, 12769,  4563, 23120, 22063, 20450, 17972, 14642, 11109,  6446,  2316, 23106, 22852, 22445, 21848, 20995, 19810, 18601, 17143, 15718, 13853, 11749,  9846,  7908,  5573,  3281,   946),
-  DEFINE_DCT32x32_MATRIX(   64,    83,    36,    89,    75,    50,    18,    90,    87,    80,    70,    57,    43,    25,     9,    90,    90,    88,    85,    82,    78,    73,    67,    61,    54,    46,    38,    31,    22,    13,     4)
-};
-
-const TMatrixCoeff g_aiT64[TRANSFORM_NUMBER_OF_DIRECTIONS][64][64] =
-{
-  DEFINE_DCT64x64_MATRIX( 65536, 85627, 35468, 90901, 77062, 51491, 18081, 92236, 88691, 81738, 71644, 58797, 43690, 26904, 9084, 92570, 91679, 89904, 87264, 83783, 79496, 74443, 68673, 62241, 55211, 47648, 39627, 31224, 22520, 13599, 4548, 92654, 92431, 91985, 91317, 90430, 89325, 88004, 86472, 84731, 82786, 80641, 78303, 75775, 73065, 70180, 67125, 63908, 60537, 57021, 53367, 49585, 45683, 41671, 37559, 33356, 29073, 24719, 20307, 15845, 11345, 6818, 2275 ),
-  DEFINE_DCT64x64_MATRIX(   256,   334,   139,   355,   301,   201,    71,   360,   346,   319,   280,   230,   171,   105,   35,   362,   358,   351,   341,   327,   311,   291,   268,   243,   216,   186,   155,   122,    88,    53,   18,   362,   361,   359,   357,   353,   349,   344,   338,   331,   323,   315,   306,   296,   285,   274,   262,   250,   236,   223,   208,   194,   178,   163,   147,   130,   114,    97,    79,    62,    44,   27,    9 )
-};
-
-const TMatrixCoeff g_aiT128[TRANSFORM_NUMBER_OF_DIRECTIONS][128][128] =
-{
-  DEFINE_DCT128x128_MATRIX( 65536, 85627, 35468, 90901, 77062, 51491, 18081, 92236, 88691, 81738, 71644, 58797, 43690, 26904, 9084, 92570, 91679, 89904, 87264, 83783, 79496, 74443, 68673, 62241, 55211, 47648, 39627, 31224, 22520, 13599, 4548, 92654, 92431, 91985, 91317, 90430, 89325, 88004, 86472, 84731, 82786, 80641, 78303, 75775, 73065, 70180, 67125, 63908, 60537, 57021, 53367, 49585, 45683, 41671, 37559, 33356, 29073, 24719, 20307, 15845, 11345, 6818, 2275, 92675, 92619, 92507, 92340, 92117, 91839, 91505, 91116, 90672, 90174, 89621, 89015, 88354, 87641, 86874, 86056, 85185, 84263, 83291, 82268, 81196, 80075, 78905, 77688, 76425, 75115, 73760, 72360, 70917, 69431, 67904, 66335, 64727, 63079, 61394, 59672, 57913, 56120, 54293, 52433, 50542, 48620, 46669, 44690, 42684, 40652, 38595, 36516, 34414, 32292, 30150, 27990, 25814, 23621, 21415, 19195, 16964, 14723, 12473, 10216, 7952, 5683, 3411, 1137 ),
-  DEFINE_DCT128x128_MATRIX(   256,   334,   139,   355,   301,   201,    71,   360,   346,   319,   280,   230,   171,   105,   35,   362,   358,   351,   341,   327,   311,   291,   268,   243,   216,   186,   155,   122,    88,    53,   18,   362,   361,   359,   357,   353,   349,   344,   338,   331,   323,   315,   306,   296,   285,   274,   262,   250,   236,   223,   208,   194,   178,   163,   147,   130,   114,    97,    79,    62,    44,   27,    9,   362,   362,   361,   361,   360,   359,   357,   356,   354,   352,   350,   348,   345,   342,   339,   336,   333,   329,   325,   321,   317,   313,   308,   303,   299,   293,   288,   283,   277,   271,   265,   259,   253,   246,   240,   233,   226,   219,   212,   205,   197,   190,   182,   175,   167,   159,   151,   143,   134,   126,   118,   109,   101,    92,    84,    75,    66,    58,    49,    40,   31,   22,   13,    4 )
-};
-
-const TMatrixCoeff g_as_DST_MAT_4[TRANSFORM_NUMBER_OF_DIRECTIONS][4][4] =
-{
-  DEFINE_DST4x4_MATRIX( 7424, 14081, 18893, 21505),
-  DEFINE_DST4x4_MATRIX(   29,    55,    74,    84)
-};
-
-#else
-
-const TMatrixCoeff g_aiT2 [TRANSFORM_NUMBER_OF_DIRECTIONS][2][2] =
-{
-  DEFINE_DCT2x2_MATRIX( 64),
-  DEFINE_DCT2x2_MATRIX( 64)
-};
-
-const TMatrixCoeff g_aiT4 [TRANSFORM_NUMBER_OF_DIRECTIONS][4][4]   =
-{
-  DEFINE_DCT4x4_MATRIX  (   64,    83,    36),
-  DEFINE_DCT4x4_MATRIX  (   64,    83,    36)
-};
-
-const TMatrixCoeff g_aiT8 [TRANSFORM_NUMBER_OF_DIRECTIONS][8][8]   =
-{
-  DEFINE_DCT8x8_MATRIX  (   64,    83,    36,    89,    75,    50,    18),
-  DEFINE_DCT8x8_MATRIX  (   64,    83,    36,    89,    75,    50,    18)
-};
-
-const TMatrixCoeff g_aiT16[TRANSFORM_NUMBER_OF_DIRECTIONS][16][16] =
-{
-  DEFINE_DCT16x16_MATRIX(   64,    83,    36,    89,    75,    50,    18,    90,    87,    80,    70,    57,    43,    25,     9),
-  DEFINE_DCT16x16_MATRIX(   64,    83,    36,    89,    75,    50,    18,    90,    87,    80,    70,    57,    43,    25,     9)
-};
-
-const TMatrixCoeff g_aiT32[TRANSFORM_NUMBER_OF_DIRECTIONS][32][32] =
-{
-  DEFINE_DCT32x32_MATRIX(   64,    83,    36,    89,    75,    50,    18,    90,    87,    80,    70,    57,    43,    25,     9,    90,    90,    88,    85,    82,    78,    73,    67,    61,    54,    46,    38,    31,    22,    13,     4),
-  DEFINE_DCT32x32_MATRIX(   64,    83,    36,    89,    75,    50,    18,    90,    87,    80,    70,    57,    43,    25,     9,    90,    90,    88,    85,    82,    78,    73,    67,    61,    54,    46,    38,    31,    22,    13,     4)
-};
-
-const TMatrixCoeff g_aiT64[TRANSFORM_NUMBER_OF_DIRECTIONS][64][64] =
-{
-  DEFINE_DCT64x64_MATRIX(  256, 334, 139, 355, 301, 201, 71, 360, 346, 319, 280, 230, 171, 105, 35, 362, 358, 351, 341, 327, 311, 291, 268, 243, 216, 186, 155, 122, 88, 53, 18, 362, 361, 359, 357, 353, 349, 344, 338, 331, 323, 315, 306, 296, 285, 274, 262, 250, 236, 223, 208, 194, 178, 163, 147, 130, 114, 97, 79, 62, 44, 27, 9),
-  DEFINE_DCT64x64_MATRIX(  256, 334, 139, 355, 301, 201, 71, 360, 346, 319, 280, 230, 171, 105, 35, 362, 358, 351, 341, 327, 311, 291, 268, 243, 216, 186, 155, 122, 88, 53, 18, 362, 361, 359, 357, 353, 349, 344, 338, 331, 323, 315, 306, 296, 285, 274, 262, 250, 236, 223, 208, 194, 178, 163, 147, 130, 114, 97, 79, 62, 44, 27, 9)
-};
-const TMatrixCoeff g_aiT128[TRANSFORM_NUMBER_OF_DIRECTIONS][128][128] =
-{
-  DEFINE_DCT128x128_MATRIX( 256, 334, 139, 355, 301, 201, 71, 360, 346, 319, 280, 230, 171, 105, 35, 362, 358, 351, 341, 327, 311, 291, 268, 243, 216, 186, 155, 122, 88, 53, 18, 362, 361, 359, 357, 353, 349, 344, 338, 331, 323, 315, 306, 296, 285, 274, 262, 250, 236, 223, 208, 194, 178, 163, 147, 130, 114, 97, 79, 62, 44, 27, 9, 362, 362, 361, 361, 360, 359, 357, 356, 354, 352, 350, 348, 345, 342, 339, 336, 333, 329, 325, 321, 317, 313, 308, 303, 299, 293, 288, 283, 277, 271, 265, 259, 253, 246, 240, 233, 226, 219, 212, 205, 197, 190, 182, 175, 167, 159, 151, 143, 134, 126, 118, 109, 101, 92, 84, 75, 66, 58, 49, 40, 31, 22, 13, 4 ),
-  DEFINE_DCT128x128_MATRIX( 256, 334, 139, 355, 301, 201, 71, 360, 346, 319, 280, 230, 171, 105, 35, 362, 358, 351, 341, 327, 311, 291, 268, 243, 216, 186, 155, 122, 88, 53, 18, 362, 361, 359, 357, 353, 349, 344, 338, 331, 323, 315, 306, 296, 285, 274, 262, 250, 236, 223, 208, 194, 178, 163, 147, 130, 114, 97, 79, 62, 44, 27, 9, 362, 362, 361, 361, 360, 359, 357, 356, 354, 352, 350, 348, 345, 342, 339, 336, 333, 329, 325, 321, 317, 313, 308, 303, 299, 293, 288, 283, 277, 271, 265, 259, 253, 246, 240, 233, 226, 219, 212, 205, 197, 190, 182, 175, 167, 159, 151, 143, 134, 126, 118, 109, 101, 92, 84, 75, 66, 58, 49, 40, 31, 22, 13, 4 )
-};
-
-#if HEVC_USE_4x4_DSTVII
-const TMatrixCoeff g_as_DST_MAT_4[TRANSFORM_NUMBER_OF_DIRECTIONS][4][4] =
-{
-  DEFINE_DST4x4_MATRIX(   29,    55,    74,    84),
-  DEFINE_DST4x4_MATRIX(   29,    55,    74,    84)
-};
-
-#endif
-#endif
-
-#undef DEFINE_DST4x4_MATRIX
-#undef DEFINE_DCT4x4_MATRIX
-#undef DEFINE_DCT8x8_MATRIX
-#undef DEFINE_DCT16x16_MATRIX
-#undef DEFINE_DCT32x32_MATRIX
-#undef DEFINE_DCT64x64_MATRIX
-#undef DEFINE_DCT128x128_MATRIX
-
-#endif // !JVET_K1000_SIMPLIFIED_EMT
 
 //--------------------------------------------------------------------------------------------------
diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp
index 60ed6b395e6c96bd7c6e71a6fb1b60899b106010..5b858635e3378d3ccb9482ed65b55c085ea9b3a9 100644
--- a/source/Lib/CommonLib/Slice.cpp
+++ b/source/Lib/CommonLib/Slice.cpp
@@ -1669,10 +1669,8 @@ SPSNext::SPSNext( SPS& sps )
 #if JVET_K0190
   , m_LMChroma                  ( false )
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   , m_IntraEMT                  ( false )
   , m_InterEMT                  ( false )
-#endif
 #if JVET_K_AFFINE
   , m_Affine                    ( false )
 #if JVET_K0337_AFFINE_6PARA
diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h
index 1fee5f5258ff05273eb300cf40514503af4a6c60..8dd3b278658fa00c54c9f322a250cd0bc2888b84 100644
--- a/source/Lib/CommonLib/Slice.h
+++ b/source/Lib/CommonLib/Slice.h
@@ -820,10 +820,8 @@ private:
 #if JVET_K0190
   bool              m_LMChroma;                   // 17
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   bool              m_IntraEMT;                   // 18
   bool              m_InterEMT;                   // 19
-#endif
 #if JVET_K_AFFINE
   bool              m_Affine;
 #if JVET_K0337_AFFINE_6PARA
@@ -916,12 +914,10 @@ public:
   void      setUseLMChroma        ( bool b )                                        { m_LMChroma = b; }
   bool      getUseLMChroma        ()                                      const     { return m_LMChroma; }
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   void      setUseIntraEMT        ( bool b )                                        { m_IntraEMT = b; }
   bool      getUseIntraEMT        ()                                      const     { return m_IntraEMT; }
   void      setUseInterEMT        ( bool b )                                        { m_InterEMT = b; }
   bool      getUseInterEMT        ()                                      const     { return m_InterEMT; }
-#endif
   //=====  additional parameters  =====
   // qtbt
   void      setCTUSize            ( unsigned    ctuSize )                           { m_CTUSize = ctuSize; }
diff --git a/source/Lib/CommonLib/TrQuant.cpp b/source/Lib/CommonLib/TrQuant.cpp
index 52235829949eedd056e0b520df558d109b519393..7d73b3fa97150066e9ef3f5bb4b75a06852705a1 100644
--- a/source/Lib/CommonLib/TrQuant.cpp
+++ b/source/Lib/CommonLib/TrQuant.cpp
@@ -68,7 +68,6 @@ struct coeffGroupRDStats
   double d64SigCost_0;
 };
 
-#if JVET_K1000_SIMPLIFIED_EMT
 FwdTrans *fastFwdTrans[NUM_TRANS_TYPE][g_numTransformMatrixSizes] =
 {
   { fastForwardDCT2_B2, fastForwardDCT2_B4, fastForwardDCT2_B8, fastForwardDCT2_B16, fastForwardDCT2_B32, fastForwardDCT2_B64 },
@@ -82,7 +81,6 @@ InvTrans *fastInvTrans[NUM_TRANS_TYPE][g_numTransformMatrixSizes] =
   { nullptr,            fastInverseDCT8_B4, fastInverseDCT8_B8, fastInverseDCT8_B16, fastInverseDCT8_B32, nullptr },
   { nullptr,            fastInverseDST7_B4, fastInverseDST7_B8, fastInverseDST7_B16, fastInverseDST7_B32, nullptr },
 };
-#endif
 
 //! \ingroup CommonLib
 //! \{
@@ -100,11 +98,7 @@ void xITrMxN( const int bitDepth, const TCoeff *coeff, Pel *residual, size_t str
 #endif
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
 TrQuant::TrQuant() : m_quant( nullptr )
-#else
-TrQuant::TrQuant() : m_quant( nullptr ), m_fTr( xTrMxN ), m_fITr( xITrMxN )
-#endif
 {
   // allocate temporary buffers
   m_plTempCoeff   = (TCoeff*) xMalloc( TCoeff, MAX_CU_SIZE * MAX_CU_SIZE );
@@ -135,7 +129,6 @@ void TrQuant::copyState( const TrQuant& other )
 }
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT
 #if HEVC_USE_4x4_DSTVII
 void xTrMxN_EMT( const int bitDepth, const Pel *residual, size_t stride, TCoeff *coeff, int iWidth, int iHeight, bool useDST, const int maxLog2TrDynamicRange,
 #else
@@ -210,13 +203,8 @@ void xTrMxN_EMT( const int bitDepth, const Pel *residual, size_t stride, TCoeff
     nTrIdxVer = g_aiTrSubsetInter[ucTrIdx >> 1];
   }
 
-#if JVET_K1000_SIMPLIFIED_EMT
   fastFwdTrans[nTrIdxHor][transformWidthIndex](block, tmp, shift_1st, iHeight, 0, iSkipWidth);
   fastFwdTrans[nTrIdxVer][transformHeightIndex](tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight);
-#else
-  fastFwdTrans[nTrIdxHor][transformWidthIndex](block, tmp, shift_1st, iHeight, 0, iSkipWidth, 1);
-  fastFwdTrans[nTrIdxVer][transformHeightIndex](tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight, 1);
-#endif
 }
 
 /** MxN inverse transform (2D)
@@ -291,13 +279,8 @@ void xITrMxN_EMT( const int bitDepth, const TCoeff *coeff, Pel *residual, size_t
     nTrIdxVer = g_aiTrSubsetInter[ucTrIdx >> 1];
   }
 
-#if JVET_K1000_SIMPLIFIED_EMT
   fastInvTrans[nTrIdxVer][transformHeightIndex](coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, clipMinimum, clipMaximum);
   fastInvTrans[nTrIdxHor][transformWidthIndex](tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, clipMinimum, clipMaximum);
-#else
-  fastInvTrans[nTrIdxVer][transformHeightIndex](coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, 1, clipMinimum, clipMaximum);
-  fastInvTrans[nTrIdxHor][transformWidthIndex](tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, 1, clipMinimum, clipMaximum);
-#endif
 
   for( int y = 0; y < iHeight; y++ )
   {
@@ -307,218 +290,7 @@ void xITrMxN_EMT( const int bitDepth, const TCoeff *coeff, Pel *residual, size_t
     }
   }
 }
-#endif
-
-#if !JVET_K1000_SIMPLIFIED_EMT
 
-/** MxN forward transform (2D)
-*  \param bitDepth              [in]  bit depth
-*  \param residual              [in]  residual block
-*  \param stride                [in]  stride of residual block
-*  \param coeff                 [out] transform coefficients
-*  \param width                 [in]  width of transform
-*  \param height                [in]  height of transform
-*  \param useDST                [in]
-*  \param maxLog2TrDynamicRange [in]
-
-*/
-#if HEVC_USE_4x4_DSTVII
-void xTrMxN( const int bitDepth, const Pel *residual, size_t stride, TCoeff *coeff, size_t width, size_t height, bool useDST, const int maxLog2TrDynamicRange )
-#else
-void xTrMxN( const int bitDepth, const Pel *residual, size_t stride, TCoeff *coeff, size_t width, size_t height, const int maxLog2TrDynamicRange )
-#endif
-{
-  const int iWidth  = (int)width;
-  const int iHeight = (int)height;
-
-  const int TRANSFORM_MATRIX_SHIFT = g_transformMatrixShift[TRANSFORM_FORWARD];
-
-  const int shift_1st = (g_aucLog2[iWidth] +  bitDepth + TRANSFORM_MATRIX_SHIFT) - maxLog2TrDynamicRange;
-  const int shift_2nd = g_aucLog2[iHeight] + TRANSFORM_MATRIX_SHIFT;
-  const int iZeroOutThresh = JVET_C0024_ZERO_OUT_TH;
-
-  uint32_t iSkipWidth  = (iWidth  > iZeroOutThresh ? iWidth  - iZeroOutThresh : 0);
-  uint32_t iSkipHeight = (iHeight > iZeroOutThresh ? iHeight - iZeroOutThresh : 0);
-
-  CHECK( shift_1st < 0, "Negative shift" );
-  CHECK( shift_2nd < 0, "Negative shift" );
-
-  ALIGN_DATA( MEMORY_ALIGN_DEF_SIZE, TCoeff block[MAX_TU_SIZE * MAX_TU_SIZE] );
-  ALIGN_DATA( MEMORY_ALIGN_DEF_SIZE, TCoeff   tmp[MAX_TU_SIZE * MAX_TU_SIZE] );
-
-  for( int y = 0; y < iHeight; y++ )
-  {
-    for( int x = 0; x < iWidth; x++ )
-    {
-      block[( y * iWidth ) + x] = residual[( y * stride ) + x];
-    }
-  }
-
-  {
-    switch (iWidth)
-    {
-    case 2:     fastForwardDCT2_B2( block, tmp, shift_1st, iHeight, 0, iSkipWidth, 0 );  break;
-    case 4:
-      {
-#if HEVC_USE_4x4_DSTVII
-        if ((iHeight == 4) && useDST)    // Check for DCT or DST
-        {
-          fastForwardDST7_B4( block, tmp, shift_1st, iHeight, 0, iSkipWidth, 0 );
-        }
-        else
-#endif
-        {
-          fastForwardDCT2_B4( block, tmp, shift_1st, iHeight, 0, iSkipWidth, 0 );
-        }
-      }
-      break;
-
-    case 8:     fastForwardDCT2_B8  ( block, tmp, shift_1st, iHeight, 0, iSkipWidth, 0 );  break;
-    case 16:    fastForwardDCT2_B16 ( block, tmp, shift_1st, iHeight, 0, iSkipWidth, 0 );  break;
-    case 32:    fastForwardDCT2_B32 ( block, tmp, shift_1st, iHeight, 0, iSkipWidth, 0 );  break;
-    case 64:    fastForwardDCT2_B64 ( block, tmp, shift_1st + COM16_C806_TRANS_PREC, iHeight, 0, iSkipWidth, 0 );  break;
-    case 128:   fastForwardDCT2_B128( block, tmp, shift_1st + COM16_C806_TRANS_PREC, iHeight, 0, iSkipWidth, 0 );  break;
-    default:
-      THROW( "Unsupported transformation size" ); break;
-    }
-  }
-
-  {
-    switch (iHeight)
-    {
-    case 2:     fastForwardDCT2_B2( tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight, 0 );  break;
-    case 4:
-      {
-#if HEVC_USE_4x4_DSTVII
-        if ((iWidth == 4) && useDST)    // Check for DCT or DST
-        {
-          fastForwardDST7_B4( tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight, 0 );
-        }
-        else
-#endif
-        {
-          fastForwardDCT2_B4( tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight, 0 );
-        }
-      }
-      break;
-
-    case 8:     fastForwardDCT2_B8  ( tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight, 0 );  break;
-    case 16:    fastForwardDCT2_B16 ( tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight, 0 );  break;
-    case 32:    fastForwardDCT2_B32 ( tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight, 0 );  break;
-    case 64:    fastForwardDCT2_B64 ( tmp, coeff, shift_2nd + COM16_C806_TRANS_PREC, iWidth, iSkipWidth, iSkipHeight, 0 );  break;
-    case 128:   fastForwardDCT2_B128( tmp, coeff, shift_2nd + COM16_C806_TRANS_PREC, iWidth, iSkipWidth, iSkipHeight, 0 );  break;
-    default:
-      THROW( "Unsupported transformation size" ); break;
-    }
-  }
-}
-
-
-/** MxN inverse transform (2D)
-*  \param bitDepth              [in]  bit depth
-*  \param coeff                 [in]  transform coefficients
-*  \param residual              [out] residual block
-*  \param stride                [out] stride of the residual block
-*  \param width                 [in]  width of transform
-*  \param height                [in]  height of transform
-*  \param useDST                [in]
-*  \param maxLog2TrDynamicRange [in]
-*/
-#if HEVC_USE_4x4_DSTVII
-void xITrMxN( const int bitDepth, const TCoeff *coeff, Pel *residual, size_t stride, size_t width, size_t height, bool useDST, const int maxLog2TrDynamicRange )
-#else
-void xITrMxN( const int bitDepth, const TCoeff *coeff, Pel *residual, size_t stride, size_t width, size_t height, const int maxLog2TrDynamicRange )
-#endif
-{
-  const int TRANSFORM_MATRIX_SHIFT = g_transformMatrixShift[TRANSFORM_INVERSE];
-  const int iWidth  = (int)width;
-  const int iHeight = (int)height;
-
-
-  int shift_1st = TRANSFORM_MATRIX_SHIFT + 1; //1 has been added to shift_1st at the expense of shift_2nd
-  int shift_2nd = (TRANSFORM_MATRIX_SHIFT + maxLog2TrDynamicRange - 1) - bitDepth;
-  const TCoeff clipMinimum = -(1 << maxLog2TrDynamicRange);
-  const TCoeff clipMaximum =  (1 << maxLog2TrDynamicRange) - 1;
-
-  uint32_t uiSkipWidth  = ( iWidth  > JVET_C0024_ZERO_OUT_TH ? iWidth  - JVET_C0024_ZERO_OUT_TH : 0 );
-  uint32_t uiSkipHeight = ( iHeight > JVET_C0024_ZERO_OUT_TH ? iHeight - JVET_C0024_ZERO_OUT_TH : 0 );
-
-  CHECK( shift_1st < 0, "Negative shift" );
-  CHECK( shift_2nd < 0, "Negative shift" );
-
-  ALIGN_DATA( MEMORY_ALIGN_DEF_SIZE, TCoeff block[MAX_TU_SIZE * MAX_TU_SIZE] );
-  ALIGN_DATA( MEMORY_ALIGN_DEF_SIZE, TCoeff   tmp[MAX_TU_SIZE * MAX_TU_SIZE] );
-
-  {
-    switch (iHeight)
-    {
-    case 2: fastInverseDCT2_B2( coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum ); break;
-    case 4:
-      {
-#if HEVC_USE_4x4_DSTVII
-        if ((iWidth == 4) && useDST)    // Check for DCT or DST
-        {
-          fastInverseDST7_B4( coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum );
-        }
-        else
-#endif
-        {
-          fastInverseDCT2_B4( coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum );
-        }
-      }
-      break;
-
-    case   8: fastInverseDCT2_B8  ( coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum ); break;
-    case  16: fastInverseDCT2_B16 ( coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum ); break;
-    case  32: fastInverseDCT2_B32 ( coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum ); break;
-    case  64: fastInverseDCT2_B64 ( coeff, tmp, shift_1st + COM16_C806_TRANS_PREC, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum ); break;
-    case 128: fastInverseDCT2_B128( coeff, tmp, shift_1st + COM16_C806_TRANS_PREC, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum ); break;
-    default:
-      THROW( "Unsupported transformation size" ); break;
-    }
-  }
-
-  {
-    switch (iWidth)
-    {
-    case 2: fastInverseDCT2_B2( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max() ); break;
-    // Clipping here is not in the standard, but is used to protect the "Pel" data type into which the inverse-transformed samples will be copied
-    case 4:
-      {
-#if HEVC_USE_4x4_DSTVII
-        if ((iHeight == 4) && useDST)    // Check for DCT or DST
-        {
-          fastInverseDST7_B4( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max() );
-        }
-        else
-#endif
-        {
-          fastInverseDCT2_B4( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max() );
-        }
-      }
-      break;
-
-    case   8: fastInverseDCT2_B8  ( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max() ); break;
-    case  16: fastInverseDCT2_B16 ( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max() ); break;
-    case  32: fastInverseDCT2_B32 ( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max() ); break;
-    case  64: fastInverseDCT2_B64 ( tmp, block, shift_2nd + COM16_C806_TRANS_PREC, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max() ); break;
-    case 128: fastInverseDCT2_B128( tmp, block, shift_2nd + COM16_C806_TRANS_PREC, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max() ); break;
-    default:
-      THROW( "Unsupported transformation size" );
-      break;
-    }
-  }
-
-  for (int y = 0; y < iHeight; y++)
-  {
-    for (int x = 0; x < iWidth; x++)
-    {
-      residual[(y * stride)+x] = Pel(block[(y * width) + x]);
-    }
-  }
-}
-
-#endif // !JVET_K1000_SIMPLIFIED_EMT
 
 
 void TrQuant::xDeQuant(const TransformUnit &tu,
@@ -699,7 +471,6 @@ void TrQuant::xT( const TransformUnit &tu, const ComponentID &compID, const CPel
   const bool     useDST          = TU::useDST( tu, compID );
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const unsigned ucMode          = getEmtMode ( tu, compID );
   const unsigned ucTrIdx         = getEmtTrIdx( tu, compID );
 
@@ -726,16 +497,6 @@ void TrQuant::xT( const TransformUnit &tu, const ComponentID &compID, const CPel
     , m_rectTUs
     );
 
-#else
-
-  {
-#if HEVC_USE_4x4_DSTVII
-    m_fTr     ( channelBitDepth, resi.buf, resi.stride, dstCoeff.buf, iWidth, iHeight, useDST, maxLog2TrDynamicRange );
-#else
-    m_fTr     ( channelBitDepth, resi.buf, resi.stride, dstCoeff.buf, iWidth, iHeight, maxLog2TrDynamicRange );
-#endif
-  }
-#endif
 }
 
 /** Wrapper function between HM interface and core NxN inverse transform (2D)
@@ -748,7 +509,6 @@ void TrQuant::xIT( const TransformUnit &tu, const ComponentID &compID, const CCo
   const bool     useDST          = TU::useDST( tu, compID );
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const unsigned ucMode          = getEmtMode ( tu, compID );
   const unsigned ucTrIdx         = getEmtTrIdx( tu, compID );
 
@@ -778,16 +538,6 @@ void TrQuant::xIT( const TransformUnit &tu, const ComponentID &compID, const CCo
 #endif
 #endif
 
-#else
-
-  {
-#if HEVC_USE_4x4_DSTVII
-    m_fITr     ( channelBitDepth, pCoeff.buf, pResidual.buf, pResidual.stride, pCoeff.width, pCoeff.height,                          useDST, maxLog2TrDynamicRange );
-#else
-    m_fITr     ( channelBitDepth, pCoeff.buf, pResidual.buf, pResidual.stride, pCoeff.width, pCoeff.height,                          maxLog2TrDynamicRange );
-#endif
-  }
-#endif
 }
 
 /** Wrapper function between HM interface and core NxN transform skipping
@@ -851,14 +601,9 @@ void TrQuant::xQuant(TransformUnit &tu, const ComponentID &compID, const CCoeffB
   m_quant->quant( tu, compID, pSrc, uiAbsSum, cQP, ctx );
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT
 uint8_t TrQuant::getEmtTrIdx(TransformUnit tu, const ComponentID compID)
 {
-#if JVET_K1000_SIMPLIFIED_EMT
   uint8_t ucTrIdx = DCT2_EMT;
-#else
-  uint8_t ucTrIdx = DCT2_HEVC;
-#endif
 
   if( compID == COMPONENT_Y )
   {
@@ -911,7 +656,6 @@ uint8_t TrQuant::getEmtMode( TransformUnit tu, const ComponentID compID )
 
   return ucMode;
 }
-#endif
 
 void TrQuant::transformNxN(TransformUnit &tu, const ComponentID &compID, const QpParam &cQP, TCoeff &uiAbsSum, const Ctx &ctx)
 {
diff --git a/source/Lib/CommonLib/TrQuant.h b/source/Lib/CommonLib/TrQuant.h
index 24045eeed0255a78c9f864e747d9520c10c72ca7..c78e17af83500e0210979a592bff3af6e39a22e8 100644
--- a/source/Lib/CommonLib/TrQuant.h
+++ b/source/Lib/CommonLib/TrQuant.h
@@ -50,13 +50,8 @@
 //! \ingroup CommonLib
 //! \{
 
-#if JVET_K1000_SIMPLIFIED_EMT
 typedef void FwdTrans(const TCoeff*, TCoeff*, int, int, int, int);
 typedef void InvTrans(const TCoeff*, TCoeff*, int, int, int, int, const TCoeff, const TCoeff);
-#else
-typedef void FwdTrans(const TCoeff*, TCoeff*, int, int, int, int, int);
-typedef void InvTrans(const TCoeff*, TCoeff*, int, int, int, int, int, const TCoeff, const TCoeff);
-#endif
 
 // ====================================================================================================================
 // Class definition
@@ -89,10 +84,8 @@ public:
                     const bool rectTUs              = false
   );
 
-#if JVET_K1000_SIMPLIFIED_EMT
   uint8_t getEmtTrIdx( TransformUnit tu, const ComponentID compID );
   uint8_t getEmtMode ( TransformUnit tu, const ComponentID compID );
-#endif
 
 
 protected:
@@ -143,15 +136,6 @@ private:
   // forward Transform
   void xT        ( const TransformUnit &tu, const ComponentID &compID, const CPelBuf &resi, CoeffBuf &dstCoeff, const int iWidth, const int iHeight );
 
-#if !JVET_K1000_SIMPLIFIED_EMT
-#if HEVC_USE_4x4_DSTVII
-  void (*m_fTr ) ( const int bitDepth, const Pel *residual, size_t stride, TCoeff *coeff, size_t width, size_t height, bool useDST, const int maxLog2TrDynamicRange );
-  void (*m_fITr) ( const int bitDepth, const TCoeff *coeff, Pel *residual, size_t stride, size_t width, size_t height, bool useDST, const int maxLog2TrDynamicRange );
-#else
-  void (*m_fTr ) ( const int bitDepth, const Pel *residual, size_t stride, TCoeff *coeff, size_t width, size_t height, const int maxLog2TrDynamicRange );
-  void (*m_fITr) ( const int bitDepth, const TCoeff *coeff, Pel *residual, size_t stride, size_t width, size_t height, const int maxLog2TrDynamicRange );
-#endif
-#endif
 
   // skipping Transform
   void xTransformSkip   (const TransformUnit &tu, const ComponentID &compID, const CPelBuf &resi, TCoeff* psCoeff);
diff --git a/source/Lib/CommonLib/TrQuant_EMT.cpp b/source/Lib/CommonLib/TrQuant_EMT.cpp
index c1b87ba7ac7924ee9d3d6fbd8825ad016a019769..99ec664b4e91f3e92debc46a093ed08e92cca477 100644
--- a/source/Lib/CommonLib/TrQuant_EMT.cpp
+++ b/source/Lib/CommonLib/TrQuant_EMT.cpp
@@ -48,21 +48,13 @@
 // ********************************** DCT-II **********************************
 
 //Fast DCT-II transforms
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastForwardDCT2_B2(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2)
-#else
-void fastForwardDCT2_B2(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-#endif
 {
   int j;
   int E, O;
   TCoeff add = (shift > 0) ? (1 << (shift - 1)) : 0;
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr2[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr2[DCT2][0] : g_aiT2[TRANSFORM_FORWARD][0];
-#endif
 
   TCoeff *pCoef = dst;
   const int  reducedLine = line - iSkipLine;
@@ -90,21 +82,13 @@ void fastForwardDCT2_B2(const TCoeff *src, TCoeff *dst, int shift, int line, int
   }
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastInverseDCT2_B2(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#else
-void fastInverseDCT2_B2(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#endif
 {
   int j;
   int E, O;
   int add = 1 << (shift - 1);
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr2[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr2[DCT2][0] : g_aiT2[TRANSFORM_INVERSE][0];
-#endif
 
   const int  reducedLine = line - iSkipLine;
   for (j = 0; j<reducedLine; j++)
@@ -144,21 +128,13 @@ void fastInverseDCT2_B2(const TCoeff *src, TCoeff *dst, int shift, int line, int
 *  \param shift specifies right shift after 1D transform
 *  \param line
 */
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastForwardDCT2_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2)
-#else
-void fastForwardDCT2_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-#endif
 {
   int j;
   TCoeff E[2], O[2];
   TCoeff add = (shift > 0) ? (1 << (shift - 1)) : 0;
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr4[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr4[DCT2][0] : g_aiT4[TRANSFORM_FORWARD][0];
-#endif
 
   TCoeff *pCoef = dst;
   const int  reducedLine = line - iSkipLine;
@@ -197,21 +173,13 @@ void fastForwardDCT2_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int
 *  \param outputMinimum  minimum for clipping
 *  \param outputMaximum  maximum for clipping
 */
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastInverseDCT2_B4( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum )
-#else
-void fastInverseDCT2_B4( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum )
-#endif
 {
   int j;
   int E[2], O[2];
   int add = 1 << ( shift - 1 );
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr4[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr4[DCT2][0] : g_aiT4[TRANSFORM_INVERSE][0];
-#endif
 
   const int  reducedLine = line - iSkipLine;
   for( j = 0; j < reducedLine; j++ )
@@ -239,11 +207,7 @@ void fastInverseDCT2_B4( const TCoeff *src, TCoeff *dst, int shift, int line, in
 
 
 template< int uiTrSize >
-#if JVET_K1000_SIMPLIFIED_EMT
 inline void _fastInverseMM( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum, const TMatrixCoeff* iT )
-#else
-inline void _fastInverseMM( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum, const TMatrixCoeff* iT )
-#endif
 {
   const int  rnd_factor  = 1 << (shift - 1);
   const int  reducedLine = line - iSkipLine;
@@ -270,11 +234,7 @@ inline void _fastInverseMM( const TCoeff *src, TCoeff *dst, int shift, int line,
 
 
 template< int uiTrSize >
-#if JVET_K1000_SIMPLIFIED_EMT
 inline void _fastForwardMM( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TMatrixCoeff* tc )
-#else
-inline void _fastForwardMM( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TMatrixCoeff* tc )
-#endif
 {
   const int  rnd_factor  = 1 << (shift - 1);
   const int  reducedLine = line - iSkipLine;
@@ -324,22 +284,14 @@ inline void _fastForwardMM( const TCoeff *src, TCoeff *dst, int shift, int line,
 *  \param shift specifies right shift after 1D transform
 *  \param line
 */
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastForwardDCT2_B8( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2 )
-#else
-void fastForwardDCT2_B8( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use )
-#endif
 {
   int j, k;
   TCoeff E[4], O[4];
   TCoeff EE[2], EO[2];
   TCoeff add = ( shift > 0 ) ? ( 1 << ( shift - 1 ) ) : 0;
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr8[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr8[DCT2][0] : g_aiT8[TRANSFORM_FORWARD][0];
-#endif
 
   TCoeff *pCoef = dst;
   const int  reducedLine = line - iSkipLine;
@@ -389,22 +341,14 @@ void fastForwardDCT2_B8( const TCoeff *src, TCoeff *dst, int shift, int line, in
 *  \param outputMinimum  minimum for clipping
 *  \param outputMaximum  maximum for clipping
 */
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastInverseDCT2_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#else
-void fastInverseDCT2_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#endif
 {
   int j, k;
   int E[4], O[4];
   int EE[2], EO[2];
   int add = 1 << (shift - 1);
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr8[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr8[DCT2][0] : g_aiT8[TRANSFORM_INVERSE][0];
-#endif
 
   const int  reducedLine = line - iSkipLine;
   for( j = 0; j < reducedLine; j++ )
@@ -447,11 +391,7 @@ void fastInverseDCT2_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int
 *  \param shift specifies right shift after 1D transform
 *  \param line
 */
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastForwardDCT2_B16(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2)
-#else
-void fastForwardDCT2_B16(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-#endif
 {
   int j, k;
   TCoeff E  [8], O  [8];
@@ -459,11 +399,7 @@ void fastForwardDCT2_B16(const TCoeff *src, TCoeff *dst, int shift, int line, in
   TCoeff EEE[2], EEO[2];
   TCoeff add = ( shift > 0 ) ? ( 1 << ( shift - 1 ) ) : 0;
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr16[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr16[DCT2][0] : g_aiT16[TRANSFORM_FORWARD][0];
-#endif
 
   TCoeff *pCoef = dst;
   const int  reducedLine = line - iSkipLine;
@@ -526,11 +462,7 @@ void fastForwardDCT2_B16(const TCoeff *src, TCoeff *dst, int shift, int line, in
 *  \param outputMinimum  minimum for clipping
 *  \param outputMaximum  maximum for clipping
 */
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastInverseDCT2_B16( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum )
-#else
-void fastInverseDCT2_B16( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum )
-#endif
 {
   int j, k;
   int E  [8], O  [8];
@@ -538,11 +470,7 @@ void fastInverseDCT2_B16( const TCoeff *src, TCoeff *dst, int shift, int line, i
   int EEE[2], EEO[2];
   int add = 1 << ( shift - 1 );
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr16[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr16[DCT2][0] : g_aiT16[TRANSFORM_INVERSE][0];
-#endif
 
   const int  reducedLine = line - iSkipLine;
 
@@ -596,11 +524,7 @@ void fastInverseDCT2_B16( const TCoeff *src, TCoeff *dst, int shift, int line, i
 *  \param shift specifies right shift after 1D transform
 *  \param line
 */
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastForwardDCT2_B32( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2 )
-#else
-void fastForwardDCT2_B32( const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use )
-#endif
 {
   int j, k;
   TCoeff E   [16], O   [16];
@@ -609,11 +533,7 @@ void fastForwardDCT2_B32( const TCoeff *src, TCoeff *dst, int shift, int line, i
   TCoeff EEEE[ 2], EEEO[ 2];
   TCoeff add = ( shift > 0 ) ? ( 1 << ( shift - 1 ) ) : 0;
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr32[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr32[DCT2][0] : g_aiT32[TRANSFORM_FORWARD][0];
-#endif
 
   TCoeff *pCoef = dst;
   const int  reducedLine = line - iSkipLine;
@@ -685,11 +605,7 @@ void fastForwardDCT2_B32( const TCoeff *src, TCoeff *dst, int shift, int line, i
 *  \param outputMinimum  minimum for clipping
 *  \param outputMaximum  maximum for clipping
 */
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastInverseDCT2_B32(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#else
-void fastInverseDCT2_B32(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#endif
 {
 
   int j, k;
@@ -699,11 +615,7 @@ void fastInverseDCT2_B32(const TCoeff *src, TCoeff *dst, int shift, int line, in
   int EEEE[2], EEEO[2];
   int add = 1 << (shift - 1);
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr32[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr32[DCT2][0] : g_aiT32[TRANSFORM_INVERSE][0];
-#endif
 
   const int  reducedLine = line - iSkipLine;
   for (j = 0; j<reducedLine; j++)
@@ -759,20 +671,12 @@ void fastInverseDCT2_B32(const TCoeff *src, TCoeff *dst, int shift, int line, in
   }
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastForwardDCT2_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2)
-#else
-void fastForwardDCT2_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-#endif
 {
   int rnd_factor = 1 << (shift - 1);
 
   const int uiTrSize = 64;
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr64[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr64[DCT2][0] : g_aiT64[0][0];
-#endif
 
   int   j, k;
   TCoeff E[32], O[32];
@@ -873,19 +777,11 @@ void fastForwardDCT2_B64(const TCoeff *src, TCoeff *dst, int shift, int line, in
   }
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastInverseDCT2_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#else
-void fastInverseDCT2_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#endif
 {
   int rnd_factor = 1 << (shift - 1);
   const int uiTrSize = 64;
-#if JVET_K1000_SIMPLIFIED_EMT
   const TMatrixCoeff *iT = g_aiTr64[DCT2][0];
-#else
-  const TMatrixCoeff *iT = use ? g_aiTr64[DCT2][0] : g_aiT64[TRANSFORM_INVERSE][0];
-#endif
 
   int    j, k;
   TCoeff E[32], O[32];
@@ -965,676 +861,10 @@ void fastInverseDCT2_B64(const TCoeff *src, TCoeff *dst, int shift, int line, in
   memset(dst, 0, uiTrSize*iSkipLine * sizeof(TCoeff));
 }
 
-#if !JVET_K1000_SIMPLIFIED_EMT
-
-void fastForwardDCT2_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  int    j, k;
-  TCoeff E[64], O[64];
-  TCoeff EE[32], EO[32];
-  TCoeff EEE[16], EEO[16];
-  TCoeff EEEE[8], EEEO[8];
-  TCoeff EEEEE[4], EEEEO[4];
-  TCoeff EEEEEE[2], EEEEEO[2];
-  TCoeff add = 1 << (shift - 1);
-
-  const TMatrixCoeff(*iT)[128] = use ? g_aiTr128[DCT2] : g_aiT128[TRANSFORM_FORWARD];
-
-  TCoeff* tmp = dst;
-  for (j = 0; j<line - iSkipLine; j++)
-  {
-    /* E and O*/
-    for (k = 0;k< 64;k++)
-    {
-      E[k] = src[k] + src[127 - k];
-      O[k] = src[k] - src[127 - k];
-    }
-    /* EE and EO */
-    for (k = 0;k< 32;k++)
-    {
-      EE[k] = E[k] + E[63 - k];
-      EO[k] = E[k] - E[63 - k];
-    }
-
-    /* EEE and EEO */
-    for (k = 0;k< 16;k++)
-    {
-      EEE[k] = EE[k] + EE[31 - k];
-      EEO[k] = EE[k] - EE[31 - k];
-    }
-
-    /* EEEE and EEEO */
-    for (k = 0; k< 8; k++)
-    {
-      EEEE[k] = EEE[k] + EEE[15 - k];
-      EEEO[k] = EEE[k] - EEE[15 - k];
-    }
-
-    for (k = 0; k< 4; k++)
-    {
-      EEEEE[k] = EEEE[k] + EEEE[7 - k];
-      EEEEO[k] = EEEE[k] - EEEE[7 - k];
-    }
-
-    for (k = 0; k< 2; k++)
-    {
-      EEEEEE[k] = EEEEE[k] + EEEEE[3 - k];
-      EEEEEO[k] = EEEEE[k] - EEEEE[3 - k];
-    }
-
-    //0
-    dst[0] = (iT[0][0] * EEEEEE[0]
-               + iT[0][1] * EEEEEE[1]
-               + add) >> shift;
-    dst[64 * line] = (iT[64][0] * EEEEEE[0]
-                       + iT[64][1] * EEEEEE[1]
-                       + add) >> shift;
-
-    //2
-    for (k = 32;k<128;k += 64)
-    {
-      dst[k*line] = (iT[k][0] * EEEEEO[0]
-                      + iT[k][1] * EEEEEO[1]
-                      + add) >> shift;
-    }
-
-    //4
-    for (k = 16;k<128;k += 32)
-    {
-      dst[k*line] =
-        (iT[k][0] * EEEEO[0]
-          + iT[k][1] * EEEEO[1]
-          + iT[k][2] * EEEEO[2]
-          + iT[k][3] * EEEEO[3]
-          + add) >> shift;
-    }
-
-    //8
-    for (k = 8;k<128;k += 16)
-    {
-      dst[k*line] =
-        (iT[k][0] * EEEO[0]
-          + iT[k][1] * EEEO[1]
-          + iT[k][2] * EEEO[2]
-          + iT[k][3] * EEEO[3]
-          + iT[k][4] * EEEO[4]
-          + iT[k][5] * EEEO[5]
-          + iT[k][6] * EEEO[6]
-          + iT[k][7] * EEEO[7]
-          + add) >> shift;
-    }
-
-    //16
-    for (k = 4;k<128;k += 8)
-    {
-      dst[k*line] =
-        (iT[k][0] * EEO[0]
-          + iT[k][1] * EEO[1]
-          + iT[k][2] * EEO[2]
-          + iT[k][3] * EEO[3]
-          + iT[k][4] * EEO[4]
-          + iT[k][5] * EEO[5]
-          + iT[k][6] * EEO[6]
-          + iT[k][7] * EEO[7]
-          + iT[k][8] * EEO[8]
-          + iT[k][9] * EEO[9]
-          + iT[k][10] * EEO[10]
-          + iT[k][11] * EEO[11]
-          + iT[k][12] * EEO[12]
-          + iT[k][13] * EEO[13]
-          + iT[k][14] * EEO[14]
-          + iT[k][15] * EEO[15]
-          + add) >> shift;
-    }
-
-
-    //32
-    for (k = 2;k<128;k += 4)
-    {
-      dst[k*line] = (iT[k][0] * EO[0]
-                      + iT[k][1] * EO[1]
-                      + iT[k][2] * EO[2]
-                      + iT[k][3] * EO[3]
-                      + iT[k][4] * EO[4]
-                      + iT[k][5] * EO[5]
-                      + iT[k][6] * EO[6]
-                      + iT[k][7] * EO[7]
-                      + iT[k][8] * EO[8]
-                      + iT[k][9] * EO[9]
-                      + iT[k][10] * EO[10]
-                      + iT[k][11] * EO[11]
-                      + iT[k][12] * EO[12]
-                      + iT[k][13] * EO[13]
-                      + iT[k][14] * EO[14]
-                      + iT[k][15] * EO[15]
-                      + iT[k][16] * EO[16]
-                      + iT[k][17] * EO[17]
-                      + iT[k][18] * EO[18]
-                      + iT[k][19] * EO[19]
-                      + iT[k][20] * EO[20]
-                      + iT[k][21] * EO[21]
-                      + iT[k][22] * EO[22]
-                      + iT[k][23] * EO[23]
-                      + iT[k][24] * EO[24]
-                      + iT[k][25] * EO[25]
-                      + iT[k][26] * EO[26]
-                      + iT[k][27] * EO[27]
-                      + iT[k][28] * EO[28]
-                      + iT[k][29] * EO[29]
-                      + iT[k][30] * EO[30]
-                      + iT[k][31] * EO[31]
-                      + add) >> shift;
-    }
-
-    //64
-    for (k = 1;k<128;k += 2)
-    {
-      dst[k*line] = (iT[k][0] * O[0]
-                      + iT[k][1] * O[1]
-                      + iT[k][2] * O[2]
-                      + iT[k][3] * O[3]
-                      + iT[k][4] * O[4]
-                      + iT[k][5] * O[5]
-                      + iT[k][6] * O[6]
-                      + iT[k][7] * O[7]
-                      + iT[k][8] * O[8]
-                      + iT[k][9] * O[9]
-                      + iT[k][10] * O[10]
-                      + iT[k][11] * O[11]
-                      + iT[k][12] * O[12]
-                      + iT[k][13] * O[13]
-                      + iT[k][14] * O[14]
-                      + iT[k][15] * O[15]
-                      + iT[k][16] * O[16]
-                      + iT[k][17] * O[17]
-                      + iT[k][18] * O[18]
-                      + iT[k][19] * O[19]
-                      + iT[k][20] * O[20]
-                      + iT[k][21] * O[21]
-                      + iT[k][22] * O[22]
-                      + iT[k][23] * O[23]
-                      + iT[k][24] * O[24]
-                      + iT[k][25] * O[25]
-                      + iT[k][26] * O[26]
-                      + iT[k][27] * O[27]
-                      + iT[k][28] * O[28]
-                      + iT[k][29] * O[29]
-                      + iT[k][30] * O[30]
-                      + iT[k][31] * O[31]
-
-                      + iT[k][32] * O[32]
-                      + iT[k][33] * O[33]
-                      + iT[k][34] * O[34]
-                      + iT[k][35] * O[35]
-                      + iT[k][36] * O[36]
-                      + iT[k][37] * O[37]
-                      + iT[k][38] * O[38]
-                      + iT[k][39] * O[39]
-                      + iT[k][40] * O[40]
-                      + iT[k][41] * O[41]
-                      + iT[k][42] * O[42]
-                      + iT[k][43] * O[43]
-                      + iT[k][44] * O[44]
-                      + iT[k][45] * O[45]
-                      + iT[k][46] * O[46]
-                      + iT[k][47] * O[47]
-                      + iT[k][48] * O[48]
-                      + iT[k][49] * O[49]
-                      + iT[k][50] * O[50]
-                      + iT[k][51] * O[51]
-                      + iT[k][52] * O[52]
-                      + iT[k][53] * O[53]
-                      + iT[k][54] * O[54]
-                      + iT[k][55] * O[55]
-                      + iT[k][56] * O[56]
-                      + iT[k][57] * O[57]
-                      + iT[k][58] * O[58]
-                      + iT[k][59] * O[59]
-                      + iT[k][60] * O[60]
-                      + iT[k][61] * O[61]
-                      + iT[k][62] * O[62]
-                      + iT[k][63] * O[63]
-                      + add) >> shift;
-    }
-    src += 128;
-    dst++;
-  }
-
-  const uint32_t uiTrSize = 128;
-  const int  reducedLine = line - iSkipLine;
-  const int  cutoff = uiTrSize - iSkipLine2;
-  if (iSkipLine)
-  {
-    dst = tmp + reducedLine;
-    for (j = 0; j<cutoff; j++)
-    {
-      memset(dst, 0, sizeof(TCoeff)*iSkipLine);
-      dst += line;
-    }
-  }
-  if (iSkipLine2)
-  {
-    dst = tmp + line*cutoff;
-    memset(dst, 0, sizeof(TCoeff)*line*iSkipLine2);
-  }
-}
-
-void fastInverseDCT2_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  int    j, k;
-  TCoeff E[64], O[64];
-  TCoeff EE[32], EO[32];
-  TCoeff EEE[16], EEO[16];
-  TCoeff EEEE[8], EEEO[8];
-  TCoeff EEEEE[4], EEEEO[4];
-  TCoeff EEEEEE[2], EEEEEO[2];
-  TCoeff add = 1 << (shift - 1);
-
-  const TMatrixCoeff(*iT)[128] = use ? g_aiTr128[DCT2] : g_aiT128[TRANSFORM_INVERSE];
-
-  bool c1 = iSkipLine2 >= 96;
-  bool c2 = iSkipLine2 >= 64;
-  bool c3 = iSkipLine2 >= 32;
-
-  for (j = 0; j<line - iSkipLine; j++)
-  {
-    /* Utilizing symmetry properties to the maximum to minimize the number of multiplications */
-    if (c1)
-    {
-      for (k = 0;k<64;k++) //+2
-      {
-        O[k] = iT[1][k] * src[line]
-          + iT[3][k] * src[3 * line]
-          + iT[5][k] * src[5 * line]
-          + iT[7][k] * src[7 * line]
-          + iT[9][k] * src[9 * line]
-          + iT[11][k] * src[11 * line]
-          + iT[13][k] * src[13 * line]
-          + iT[15][k] * src[15 * line]
-          + iT[17][k] * src[17 * line]
-          + iT[19][k] * src[19 * line]
-          + iT[21][k] * src[21 * line]
-          + iT[23][k] * src[23 * line]
-          + iT[25][k] * src[25 * line]
-          + iT[27][k] * src[27 * line]
-          + iT[29][k] * src[29 * line]
-          + iT[31][k] * src[31 * line]
-          ;
-      }
-
-      for (k = 0;k<32;k++) //+4
-      {
-        EO[k] = iT[2][k] * src[2 * line]
-          + iT[6][k] * src[6 * line]
-          + iT[10][k] * src[10 * line]
-          + iT[14][k] * src[14 * line]
-          + iT[18][k] * src[18 * line]
-          + iT[22][k] * src[22 * line]
-          + iT[26][k] * src[26 * line]
-          + iT[30][k] * src[30 * line]
-          ;
-      }
-    }
-    else if (c2)
-    {
-      for (k = 0;k<64;k++) //+2
-      {
-        O[k] = iT[1][k] * src[line]
-          + iT[3][k] * src[3 * line]
-          + iT[5][k] * src[5 * line]
-          + iT[7][k] * src[7 * line]
-          + iT[9][k] * src[9 * line]
-          + iT[11][k] * src[11 * line]
-          + iT[13][k] * src[13 * line]
-          + iT[15][k] * src[15 * line]
-          + iT[17][k] * src[17 * line]
-          + iT[19][k] * src[19 * line]
-          + iT[21][k] * src[21 * line]
-          + iT[23][k] * src[23 * line]
-          + iT[25][k] * src[25 * line]
-          + iT[27][k] * src[27 * line]
-          + iT[29][k] * src[29 * line]
-          + iT[31][k] * src[31 * line]
-          + iT[33][k] * src[33 * line]
-          + iT[35][k] * src[35 * line]
-          + iT[37][k] * src[37 * line]
-          + iT[39][k] * src[39 * line]
-          + iT[41][k] * src[41 * line]
-          + iT[43][k] * src[43 * line]
-          + iT[45][k] * src[45 * line]
-          + iT[47][k] * src[47 * line]
-          + iT[49][k] * src[49 * line]
-          + iT[51][k] * src[51 * line]
-          + iT[53][k] * src[53 * line]
-          + iT[55][k] * src[55 * line]
-          + iT[57][k] * src[57 * line]
-          + iT[59][k] * src[59 * line]
-          + iT[61][k] * src[61 * line]
-          + iT[63][k] * src[63 * line]
-          ;
-      }
-
-      for (k = 0;k<32;k++) //+4
-      {
-        EO[k] = iT[2][k] * src[2 * line]
-          + iT[6][k] * src[6 * line]
-          + iT[10][k] * src[10 * line]
-          + iT[14][k] * src[14 * line]
-          + iT[18][k] * src[18 * line]
-          + iT[22][k] * src[22 * line]
-          + iT[26][k] * src[26 * line]
-          + iT[30][k] * src[30 * line]
-          + iT[34][k] * src[34 * line]
-          + iT[38][k] * src[38 * line]
-          + iT[42][k] * src[42 * line]
-          + iT[46][k] * src[46 * line]
-          + iT[50][k] * src[50 * line]
-          + iT[54][k] * src[54 * line]
-          + iT[58][k] * src[58 * line]
-          + iT[62][k] * src[62 * line]
-          ;
-      }
-    }
-    else if (c3)
-    {
-      for (k = 0;k<64;k++) //+2
-      {
-        O[k] = iT[1][k] * src[line]
-          + iT[3][k] * src[3 * line]
-          + iT[5][k] * src[5 * line]
-          + iT[7][k] * src[7 * line]
-          + iT[9][k] * src[9 * line]
-          + iT[11][k] * src[11 * line]
-          + iT[13][k] * src[13 * line]
-          + iT[15][k] * src[15 * line]
-          + iT[17][k] * src[17 * line]
-          + iT[19][k] * src[19 * line]
-          + iT[21][k] * src[21 * line]
-          + iT[23][k] * src[23 * line]
-          + iT[25][k] * src[25 * line]
-          + iT[27][k] * src[27 * line]
-          + iT[29][k] * src[29 * line]
-          + iT[31][k] * src[31 * line]
-          + iT[33][k] * src[33 * line]
-          + iT[35][k] * src[35 * line]
-          + iT[37][k] * src[37 * line]
-          + iT[39][k] * src[39 * line]
-          + iT[41][k] * src[41 * line]
-          + iT[43][k] * src[43 * line]
-          + iT[45][k] * src[45 * line]
-          + iT[47][k] * src[47 * line]
-          + iT[49][k] * src[49 * line]
-          + iT[51][k] * src[51 * line]
-          + iT[53][k] * src[53 * line]
-          + iT[55][k] * src[55 * line]
-          + iT[57][k] * src[57 * line]
-          + iT[59][k] * src[59 * line]
-          + iT[61][k] * src[61 * line]
-          + iT[63][k] * src[63 * line]
-          + iT[65][k] * src[65 * line]
-          + iT[67][k] * src[67 * line]
-          + iT[69][k] * src[69 * line]
-          + iT[71][k] * src[71 * line]
-          + iT[73][k] * src[73 * line]
-          + iT[75][k] * src[75 * line]
-          + iT[77][k] * src[77 * line]
-          + iT[79][k] * src[79 * line]
-          + iT[81][k] * src[81 * line]
-          + iT[83][k] * src[83 * line]
-          + iT[85][k] * src[85 * line]
-          + iT[87][k] * src[87 * line]
-          + iT[89][k] * src[89 * line]
-          + iT[91][k] * src[91 * line]
-          + iT[93][k] * src[93 * line]
-          + iT[95][k] * src[95 * line]
-          ;
-      }
-
-      for (k = 0;k<32;k++) //+4
-      {
-        EO[k] = iT[2][k] * src[2 * line]
-          + iT[6][k] * src[6 * line]
-          + iT[10][k] * src[10 * line]
-          + iT[14][k] * src[14 * line]
-          + iT[18][k] * src[18 * line]
-          + iT[22][k] * src[22 * line]
-          + iT[26][k] * src[26 * line]
-          + iT[30][k] * src[30 * line]
-          + iT[34][k] * src[34 * line]
-          + iT[38][k] * src[38 * line]
-          + iT[42][k] * src[42 * line]
-          + iT[46][k] * src[46 * line]
-          + iT[50][k] * src[50 * line]
-          + iT[54][k] * src[54 * line]
-          + iT[58][k] * src[58 * line]
-          + iT[62][k] * src[62 * line]
-          + iT[66][k] * src[66 * line]
-          + iT[70][k] * src[70 * line]
-          + iT[74][k] * src[74 * line]
-          + iT[78][k] * src[78 * line]
-          + iT[82][k] * src[82 * line]
-          + iT[86][k] * src[86 * line]
-          + iT[90][k] * src[90 * line]
-          + iT[94][k] * src[94 * line]
-          ;
-      }
-    }
-    else
-    {
-      for (k = 0;k<64;k++) //+2
-      {
-        O[k] =
-          iT[1][k] * src[line]
-          + iT[3][k] * src[3 * line]
-          + iT[5][k] * src[5 * line]
-          + iT[7][k] * src[7 * line]
-          + iT[9][k] * src[9 * line]
-          + iT[11][k] * src[11 * line]
-          + iT[13][k] * src[13 * line]
-          + iT[15][k] * src[15 * line]
-          + iT[17][k] * src[17 * line]
-          + iT[19][k] * src[19 * line]
-          + iT[21][k] * src[21 * line]
-          + iT[23][k] * src[23 * line]
-          + iT[25][k] * src[25 * line]
-          + iT[27][k] * src[27 * line]
-          + iT[29][k] * src[29 * line]
-          + iT[31][k] * src[31 * line]
-          + iT[33][k] * src[33 * line]
-          + iT[35][k] * src[35 * line]
-          + iT[37][k] * src[37 * line]
-          + iT[39][k] * src[39 * line]
-          + iT[41][k] * src[41 * line]
-          + iT[43][k] * src[43 * line]
-          + iT[45][k] * src[45 * line]
-          + iT[47][k] * src[47 * line]
-          + iT[49][k] * src[49 * line]
-          + iT[51][k] * src[51 * line]
-          + iT[53][k] * src[53 * line]
-          + iT[55][k] * src[55 * line]
-          + iT[57][k] * src[57 * line]
-          + iT[59][k] * src[59 * line]
-          + iT[61][k] * src[61 * line]
-          + iT[63][k] * src[63 * line]
-          + iT[65][k] * src[65 * line]
-          + iT[67][k] * src[67 * line]
-          + iT[69][k] * src[69 * line]
-          + iT[71][k] * src[71 * line]
-          + iT[73][k] * src[73 * line]
-          + iT[75][k] * src[75 * line]
-          + iT[77][k] * src[77 * line]
-          + iT[79][k] * src[79 * line]
-          + iT[81][k] * src[81 * line]
-          + iT[83][k] * src[83 * line]
-          + iT[85][k] * src[85 * line]
-          + iT[87][k] * src[87 * line]
-          + iT[89][k] * src[89 * line]
-          + iT[91][k] * src[91 * line]
-          + iT[93][k] * src[93 * line]
-          + iT[95][k] * src[95 * line]
-          + iT[97][k] * src[97 * line]
-          + iT[99][k] * src[99 * line]
-          + iT[101][k] * src[101 * line]
-          + iT[103][k] * src[103 * line]
-          + iT[105][k] * src[105 * line]
-          + iT[107][k] * src[107 * line]
-          + iT[109][k] * src[109 * line]
-          + iT[111][k] * src[111 * line]
-          + iT[113][k] * src[113 * line]
-          + iT[115][k] * src[115 * line]
-          + iT[117][k] * src[117 * line]
-          + iT[119][k] * src[119 * line]
-          + iT[121][k] * src[121 * line]
-          + iT[123][k] * src[123 * line]
-          + iT[125][k] * src[125 * line]
-          + iT[127][k] * src[127 * line]
-          ;
-      }
-
-      for (k = 0;k<32;k++) //+4
-      {
-        EO[k] = iT[2][k] * src[2 * line]
-          + iT[6][k] * src[6 * line]
-          + iT[10][k] * src[10 * line]
-          + iT[14][k] * src[14 * line]
-          + iT[18][k] * src[18 * line]
-          + iT[22][k] * src[22 * line]
-          + iT[26][k] * src[26 * line]
-          + iT[30][k] * src[30 * line]
-          + iT[34][k] * src[34 * line]
-          + iT[38][k] * src[38 * line]
-          + iT[42][k] * src[42 * line]
-          + iT[46][k] * src[46 * line]
-          + iT[50][k] * src[50 * line]
-          + iT[54][k] * src[54 * line]
-          + iT[58][k] * src[58 * line]
-          + iT[62][k] * src[62 * line]
-          + iT[66][k] * src[66 * line]
-          + iT[70][k] * src[70 * line]
-          + iT[74][k] * src[74 * line]
-          + iT[78][k] * src[78 * line]
-          + iT[82][k] * src[82 * line]
-          + iT[86][k] * src[86 * line]
-          + iT[90][k] * src[90 * line]
-          + iT[94][k] * src[94 * line]
-          + iT[98][k] * src[98 * line]
-          + iT[102][k] * src[102 * line]
-          + iT[106][k] * src[106 * line]
-          + iT[110][k] * src[110 * line]
-          + iT[114][k] * src[114 * line]
-          + iT[118][k] * src[118 * line]
-          + iT[122][k] * src[122 * line]
-          + iT[126][k] * src[126 * line]
-          ;
-      }
-    }
-
-    for (k = 0;k<16;k++) //+8
-    {
-      EEO[k] = iT[4][k] * src[4 * line]
-        + iT[12][k] * src[12 * line]
-        + iT[20][k] * src[20 * line]
-        + iT[28][k] * src[28 * line]
-        + iT[36][k] * src[36 * line]
-        + iT[44][k] * src[44 * line]
-        + iT[52][k] * src[52 * line]
-        + iT[60][k] * src[60 * line]
-        + iT[68][k] * src[68 * line]
-        + iT[76][k] * src[76 * line]
-        + iT[84][k] * src[84 * line]
-        + iT[92][k] * src[92 * line]
-        + iT[100][k] * src[100 * line]
-        + iT[108][k] * src[108 * line]
-        + iT[116][k] * src[116 * line]
-        + iT[124][k] * src[124 * line]
-        ;
-    }
-
-    for (k = 0;k<8;k++) //+16
-    {
-      EEEO[k] = iT[8][k] * src[8 * line]
-        + iT[24][k] * src[24 * line]
-        + iT[40][k] * src[40 * line]
-        + iT[56][k] * src[56 * line]
-        + iT[72][k] * src[72 * line]
-        + iT[88][k] * src[88 * line]
-        + iT[104][k] * src[104 * line]
-        + iT[120][k] * src[120 * line]
-        ;
-    }
-
-
-    for (k = 0; k< 4; k++) //+32
-    {
-      EEEEO[k] = iT[16][k] * src[16 * line]
-        + iT[48][k] * src[48 * line]
-        + iT[80][k] * src[80 * line]
-        + iT[112][k] * src[112 * line]
-        ;
-    }
-
-    for (k = 0; k< 2; k++) //+64
-    {
-      EEEEEO[k] = iT[32][k] * src[32 * line]
-        + iT[96][k] * src[96 * line]
-        ;
-    }
-
-    EEEEEE[0] = iT[0][0] * src[0] + iT[64][0] * src[64 * line];
-    EEEEEE[1] = iT[0][1] * src[0] + iT[64][1] * src[64 * line];
-
-    /* Combining even and odd terms at each hierarchy levels to calculate the final spatial domain vector */
-    for (k = 0;k<2;k++)
-    {
-      EEEEE[k] = EEEEEE[k] + EEEEEO[k];
-      EEEEE[k + 2] = EEEEEE[1 - k] - EEEEEO[1 - k];
-    }
-
-    for (k = 0;k<4;k++)
-    {
-      EEEE[k] = EEEEE[k] + EEEEO[k];
-      EEEE[k + 4] = EEEEE[3 - k] - EEEEO[3 - k];
-    }
-
-    for (k = 0;k<8;k++)
-    {
-      EEE[k] = EEEE[k] + EEEO[k];
-      EEE[k + 8] = EEEE[7 - k] - EEEO[7 - k];
-    }
-
-    for (k = 0;k<16;k++)
-    {
-      EE[k] = EEE[k] + EEO[k];
-      EE[k + 16] = EEE[15 - k] - EEO[15 - k];
-    }
-
-    for (k = 0;k<32;k++)
-    {
-      E[k] = EE[k] + EO[k];
-      E[k + 32] = EE[31 - k] - EO[31 - k];
-    }
-
-    for (k = 0;k<64;k++)
-    {
-      dst[k] = Clip3(outputMinimum, outputMaximum, (E[k] + O[k] + add) >> shift);
-      dst[k + 64] = Clip3(outputMinimum, outputMaximum, (E[63 - k] - O[63 - k] + add) >> shift);
-    }
-    src++;
-    dst += 128;
-  }
-
-  memset(dst, 0, 128 * iSkipLine * sizeof(TCoeff));
-}
-
-#endif // !JVET_K1000_SIMPLIFIED_EMT
 
 
 // ********************************** DST-VII **********************************
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastForwardDST7_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2)
-#else
-void fastForwardDST7_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-#endif
 {
   int i;
   TCoeff rnd_factor = (shift > 0) ? (1 << (shift - 1)) : 0;
@@ -1675,11 +905,7 @@ void fastForwardDST7_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int
   }
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastInverseDST7_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#else
-void fastInverseDST7_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#endif
 {
   int i;
   TCoeff c[4];
@@ -1715,7 +941,6 @@ void fastInverseDST7_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int
 }
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
 
 void fastForwardDST7_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2)
 {
@@ -1749,14 +974,9 @@ void fastInverseDST7_B32(const TCoeff *src, TCoeff *dst, int shift, int line, in
   _fastInverseMM< 32 >( src, dst, shift, line, iSkipLine, iSkipLine2, outputMinimum, outputMaximum, g_aiTr32[DST7][0] );
 }
 
-#endif
 
 // ********************************** DCT-VIII **********************************
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastForwardDCT8_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2)
-#else
-void fastForwardDCT8_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-#endif
 {
   int i;
   int rnd_factor = 1 << (shift - 1);
@@ -1792,11 +1012,7 @@ void fastForwardDCT8_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int
   }
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastInverseDCT8_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#else
-void fastInverseDCT8_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#endif
 {
   int i;
   int rnd_factor = 1 << (shift - 1);
@@ -1828,7 +1044,6 @@ void fastInverseDCT8_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int
 }
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
 void fastForwardDCT8_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2)
 {
   _fastForwardMM< 8 >( src, dst, shift, line, iSkipLine, iSkipLine2, g_aiTr8[DCT8][0] );
@@ -1860,253 +1075,4 @@ void fastInverseDCT8_B32(const TCoeff *src, TCoeff *dst, int shift, int line, in
 {
   _fastInverseMM< 32 >( src, dst, shift, line, iSkipLine, iSkipLine2, outputMinimum, outputMaximum, g_aiTr32[DCT8][0] );
 }
-#else
-void fastForwardDCT8_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 8 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr8[DCT8][0] );
-}
-
-void fastInverseDCT8_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 8 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr8[DCT8][0] );
-}
-
-
-void fastForwardDCT8_B16(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 16 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr16[DCT8][0] );
-}
-
-void fastInverseDCT8_B16(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 16 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr16[DCT8][0] );
-}
-
-
-void fastForwardDCT8_B32(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 32 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr32[DCT8][0] );
-}
-
-void fastInverseDCT8_B32(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 32 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr32[DCT8][0] );
-}
-
-
-void fastForwardDCT8_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 64 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr64[DCT8][0] );
-}
 
-void fastInverseDCT8_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 64 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr64[DCT8][0] );
-}
-
-
-void fastForwardDCT8_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 128 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr128[DCT8][0] );
-}
-
-void fastInverseDCT8_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 128 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr128[DCT8][0] );
-}
-#endif // JVET_K1000_SIMPLIFIED_EMT
-
-#if !JVET_K1000_SIMPLIFIED_EMT && !JVET_K1000_SIMPLIFIED_EMT 
-
-// ********************************** DCT-V **********************************
-void fastForwardDCT5_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 4 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr4[DCT5][0] );
-}
-
-void fastInverseDCT5_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 4 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr4[DCT5][0] );
-}
-
-
-void fastForwardDCT5_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 8 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr8[DCT5][0] );
-}
-
-void fastInverseDCT5_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 8 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr8[DCT5][0] );
-}
-
-
-void fastForwardDCT5_B16(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 16 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr16[DCT5][0] );
-}
-
-void fastInverseDCT5_B16(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 16 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr16[DCT5][0] );
-}
-
-
-void fastForwardDCT5_B32(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 32 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr32[DCT5][0] );
-}
-
-void fastInverseDCT5_B32(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 32 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr32[DCT5][0] );
-}
-
-
-void fastForwardDCT5_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 64 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr64[DCT5][0] );
-}
-
-void fastInverseDCT5_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 64 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr64[DCT5][0] );
-}
-
-
-void fastForwardDCT5_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 128 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr128[DCT5][0] );
-}
-
-void fastInverseDCT5_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 128 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr128[DCT5][0] );
-}
-
-// ********************************** DST-I **********************************
-void fastForwardDST1_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  int i;
-  int rnd_factor = 1 << (shift - 1);
-
-  const TMatrixCoeff *iT = g_aiTr4[DST1][0];
-
-  int E[2], O[2];
-  TCoeff *pCoeff = dst;
-  const int  reducedLine = line - iSkipLine;
-  for (i = 0; i<reducedLine; i++)
-  {
-    /* E and O */
-    E[0] = src[0] + src[3];
-    O[0] = src[0] - src[3];
-    E[1] = src[1] + src[2];
-    O[1] = src[1] - src[2];
-
-    dst[0] = (E[0] * iT[0] + E[1] * iT[1] + rnd_factor) >> shift;
-    dst[line] = (O[0] * iT[1] + O[1] * iT[0] + rnd_factor) >> shift;
-    dst[2 * line] = (E[0] * iT[1] - E[1] * iT[0] + rnd_factor) >> shift;
-    dst[3 * line] = (O[0] * iT[0] - O[1] * iT[1] + rnd_factor) >> shift;
-
-    src += 4;
-    dst++;
-  }
-  if (iSkipLine)
-  {
-    dst = pCoeff + reducedLine;
-    for (i = 0; i<4; i++)
-    {
-      memset(dst, 0, sizeof(TCoeff)*iSkipLine);
-      dst += line;
-    }
-  }
-}
-
-void fastInverseDST1_B4(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  int i;
-  int rnd_factor = 1 << (shift - 1);
-
-  const TMatrixCoeff *iT = g_aiTr4[DST1][0];
-
-  int E[2], O[2];
-  const int  reducedLine = line - iSkipLine;
-  for (i = 0; i<reducedLine; i++)
-  {
-    /* E and O */
-    E[0] = src[0 * line] + src[3 * line];
-    O[0] = src[0 * line] - src[3 * line];
-    E[1] = src[1 * line] + src[2 * line];
-    O[1] = src[1 * line] - src[2 * line];
-
-    dst[0] = Clip3(outputMinimum, outputMaximum, (E[0] * iT[0] + E[1] * iT[1] + rnd_factor) >> shift);
-    dst[1] = Clip3(outputMinimum, outputMaximum, (O[0] * iT[1] + O[1] * iT[0] + rnd_factor) >> shift);
-    dst[2] = Clip3(outputMinimum, outputMaximum, (E[0] * iT[1] - E[1] * iT[0] + rnd_factor) >> shift);
-    dst[3] = Clip3(outputMinimum, outputMaximum, (O[0] * iT[0] - O[1] * iT[1] + rnd_factor) >> shift);
-
-    dst += 4;
-    src++;
-  }
-  if (iSkipLine)
-  {
-    memset(dst, 0, (iSkipLine << 2) * sizeof(TCoeff));
-  }
-}
-
-
-void fastForwardDST1_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 8 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr8[DST1][0] );
-}
-
-void fastInverseDST1_B8(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 8 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr8[DST1][0] );
-}
-
-
-void fastForwardDST1_B16(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 16 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr16[DST1][0] );
-}
-
-void fastInverseDST1_B16(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 16 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr16[DST1][0] );
-}
-
-
-void fastForwardDST1_B32(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 32 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr32[DST1][0] );
-}
-
-void fastInverseDST1_B32(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 32 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr32[DST1][0] );
-}
-
-
-void fastForwardDST1_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 64 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr64[DST1][0] );
-}
-
-void fastInverseDST1_B64(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 64 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr64[DST1][0] );
-}
-
-
-void fastForwardDST1_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use)
-{
-  _fastForwardMM< 128 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, g_aiTr128[DST1][0] );
-}
-
-void fastInverseDST1_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-{
-  _fastInverseMM< 128 >( src, dst, shift, line, iSkipLine, iSkipLine2, use, outputMinimum, outputMaximum, g_aiTr128[DST1][0] );
-}
-
-
-#endif
diff --git a/source/Lib/CommonLib/TrQuant_EMT.h b/source/Lib/CommonLib/TrQuant_EMT.h
index 8cabc8982d6d08f107df0070283c0f7d3fcabc96..4ed288c603f99f605d3a5cc28ea71a4286638939 100644
--- a/source/Lib/CommonLib/TrQuant_EMT.h
+++ b/source/Lib/CommonLib/TrQuant_EMT.h
@@ -40,7 +40,6 @@
 
 #include "CommonDef.h"
 
-#if JVET_K1000_SIMPLIFIED_EMT
 
 ////DCT-II transforms
 void fastForwardDCT2_B2  (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2);
@@ -76,27 +75,5 @@ void fastInverseDCT8_B16 (const TCoeff *src, TCoeff *dst, int shift, int line, i
 void fastForwardDCT8_B32 (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2);
 void fastInverseDCT8_B32 (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
 
-#else
-
-////DCT-II transforms
-void fastForwardDCT2_B2  (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use);
-void fastInverseDCT2_B2  (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDCT2_B4  (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use);
-void fastInverseDCT2_B4  (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDCT2_B8  (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use);
-void fastInverseDCT2_B8  (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDCT2_B16 (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use);
-void fastInverseDCT2_B16 (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDCT2_B32 (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use);
-void fastInverseDCT2_B32 (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDCT2_B64 (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use);
-void fastInverseDCT2_B64 (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDCT2_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use);
-void fastInverseDCT2_B128(const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-
-//DST-VII transforms
-void fastForwardDST7_B4  (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use);
-void fastInverseDST7_B4  (const TCoeff *src, TCoeff *dst, int shift, int line, int iSkipLine, int iSkipLine2, int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#endif // JVET_K1000_SIMPLIFIED_EMT
 
 #endif // __TRQUANT__
diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index baadfe01557fadd3984bc8ce20cf708eab4c55d9..cd9dc05cb4f110763b8b77ecdd4e41f6e72864cc 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -53,7 +53,6 @@
 
 
 
-#define JVET_K1000_SIMPLIFIED_EMT                         1 // EMT with only DCT-2, DCT-8 and DST-7
 
 #define JVET_K0371_ALF                                    1
 
@@ -404,20 +403,10 @@ enum QuantFlags
 enum TransType
 {
   DCT2 = 0,
-#if JVET_K1000_SIMPLIFIED_EMT
   DCT8 = 1,
   DST7 = 2,
   NUM_TRANS_TYPE = 3,
   DCT2_EMT = 4
-#else
-  DCT5 = 1,
-  DCT8 = 2,
-  DST1 = 3,
-  DST7 = 4,
-  NUM_TRANS_TYPE = 5,
-  DCT2_HEVC = 6,
-  DCT2_EMT = 7
-#endif
 };
 
 enum RDPCMMode
diff --git a/source/Lib/CommonLib/Unit.cpp b/source/Lib/CommonLib/Unit.cpp
index 05eff4c40d068e0679a55b01e5c6d75815b5ed9b..86333927d733210aad01d06e6a2984f2546acbd0 100644
--- a/source/Lib/CommonLib/Unit.cpp
+++ b/source/Lib/CommonLib/Unit.cpp
@@ -264,9 +264,7 @@ CodingUnit& CodingUnit::operator=( const CodingUnit& other )
   qp                = other.qp;
   chromaQpAdj       = other.chromaQpAdj;
   rootCbf           = other.rootCbf;
-#if JVET_K1000_SIMPLIFIED_EMT
   emtFlag           = other.emtFlag;
-#endif
 #if HEVC_TILES_WPP
   tileIdx           = other.tileIdx;
 #endif
@@ -298,9 +296,7 @@ void CodingUnit::initData()
   qp                = 0;
   chromaQpAdj       = 0;
   rootCbf           = true;
-#if JVET_K1000_SIMPLIFIED_EMT
   emtFlag           = 0;
-#endif
 #if HEVC_TILES_WPP
   tileIdx           = 0;
 #endif
@@ -481,9 +477,7 @@ void TransformUnit::initData()
 #if ENABLE_BMS
   depth              = 0;
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   emtIdx             = 0;
-#endif
 
 }
 
@@ -520,9 +514,7 @@ TransformUnit& TransformUnit::operator=(const TransformUnit& other)
 #if ENABLE_BMS
   depth              = other.depth;
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   emtIdx             = other.emtIdx;
-#endif
   return *this;
 }
 
@@ -548,9 +540,7 @@ void TransformUnit::copyComponentFrom(const TransformUnit& other, const Componen
 #endif
   if( isLuma( i ) )
   {
-#if JVET_K1000_SIMPLIFIED_EMT
     emtIdx         = other.emtIdx;
-#endif
   }
 }
 
diff --git a/source/Lib/CommonLib/Unit.h b/source/Lib/CommonLib/Unit.h
index 3e453c722c3e1d1257b64d7f532dd4dfb80b3724..2e18f344d6b90408a0c79aec8d42b3c3cdf2e6d7 100644
--- a/source/Lib/CommonLib/Unit.h
+++ b/source/Lib/CommonLib/Unit.h
@@ -310,9 +310,7 @@ struct CodingUnit : public UnitArea
 #if HEVC_TILES_WPP
   uint32_t           tileIdx;
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   uint8_t          emtFlag;
-#endif
   // needed for fast imv mode decisions
   int8_t          imvNumCand;
 
@@ -412,9 +410,7 @@ struct TransformUnit : public UnitArea
 #if ENABLE_BMS
   uint8_t        depth;
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   uint8_t        emtIdx;
-#endif
   uint8_t        cbf          [ MAX_NUM_TBLOCKS ];
   RDPCMMode    rdpcm        [ MAX_NUM_TBLOCKS ];
   bool         transformSkip[ MAX_NUM_TBLOCKS ];
diff --git a/source/Lib/CommonLib/dtrace_blockstatistics.cpp b/source/Lib/CommonLib/dtrace_blockstatistics.cpp
index 2d4b045d4a7728e3408e7bf37a54a6208d4255c2..32ef7304b5e10921c94e1da23a99a92ecde1ba1a 100644
--- a/source/Lib/CommonLib/dtrace_blockstatistics.cpp
+++ b/source/Lib/CommonLib/dtrace_blockstatistics.cpp
@@ -311,7 +311,7 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
           DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::SkipFlag), cu.skip);
         }
 
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
         if (!(!((cs.sps->getSpsNext().getUseIntraEMT() && CU::isIntra(cu)) || (cs.sps->getSpsNext().getUseInterEMT() && CU::isInter(cu))) || isChroma(cu.chType)))
         {
           DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::EMTFlag), cu.emtFlag);
@@ -334,7 +334,7 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
           DTRACE_BLOCK_SCALAR_CHROMA(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::TransQuantBypassFlag_Chroma), cu.transQuantBypass);
         }
 
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
         if (!(!((cs.sps->getSpsNext().getUseIntraEMT() && CU::isIntra(cu)) || (cs.sps->getSpsNext().getUseInterEMT() && CU::isInter(cu))) || isChroma(cu.chType)))
         {
           DTRACE_BLOCK_SCALAR_CHROMA(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::EMTFlag_Chroma), cu.emtFlag);
@@ -811,7 +811,7 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
           if (tu.Y().valid())
           {
             DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, tu, GetBlockStatisticName(BlockStatistic::Cbf_Y), tu.cbf[COMPONENT_Y]);
-#if HM_EMT_NSST_AS_IN_JEM && JVET_K1000_SIMPLIFIED_EMT
+#if HM_EMT_NSST_AS_IN_JEM
             if (!(!tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag(*tu.cs, tu.blocks[COMPONENT_Y]) || (isLuma(COMPONENT_Y) && tu.cu->emtFlag)))
 #else
             if (!(!tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag(*tu.cs, tu.blocks[COMPONENT_Y])))
@@ -824,7 +824,7 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
           {
             DTRACE_BLOCK_SCALAR_CHROMA(g_trace_ctx, D_BLOCK_STATISTICS_CODED, tu, GetBlockStatisticName(BlockStatistic::Cbf_Cb), tu.cbf[COMPONENT_Cb]);
             DTRACE_BLOCK_SCALAR_CHROMA(g_trace_ctx, D_BLOCK_STATISTICS_CODED, tu, GetBlockStatisticName(BlockStatistic::Cbf_Cr), tu.cbf[COMPONENT_Cr]);
-#if HM_EMT_NSST_AS_IN_JEM && JVET_K1000_SIMPLIFIED_EMT
+#if HM_EMT_NSST_AS_IN_JEM
             if (!(!tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag(*tu.cs, tu.blocks[COMPONENT_Cb]) || (isLuma(COMPONENT_Cb) && tu.cu->emtFlag)))
 #else
             if (!(!tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag(*tu.cs, tu.blocks[COMPONENT_Cb])))
@@ -832,7 +832,7 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
             {
               DTRACE_BLOCK_SCALAR_CHROMA(g_trace_ctx, D_BLOCK_STATISTICS_CODED, tu, GetBlockStatisticName(BlockStatistic::TransformSkipFlag_Cb), tu.transformSkip[COMPONENT_Cb]);
             }
-#if HM_EMT_NSST_AS_IN_JEM && JVET_K1000_SIMPLIFIED_EMT
+#if HM_EMT_NSST_AS_IN_JEM
             if (!(!tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag(*tu.cs, tu.blocks[COMPONENT_Cr]) || (isLuma(COMPONENT_Cr) && tu.cu->emtFlag)))
 #else
             if (!(!tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag(*tu.cs, tu.blocks[COMPONENT_Cr])))
@@ -843,7 +843,7 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
           }
         }
       }
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
       if (!(!((cs.sps->getSpsNext().getUseIntraEMT() && CU::isIntra(cu)) || (cs.sps->getSpsNext().getUseInterEMT() && CU::isInter(cu))) || isChroma(cu.chType)))
       {
         if( isLuma( ChannelType( chType ) ) )
diff --git a/source/Lib/CommonLib/dtrace_blockstatistics.h b/source/Lib/CommonLib/dtrace_blockstatistics.h
index 99d39d801fb5051250603f109b738f7455d7c1aa..2567fcc5e1b97690d6ea6bba07c8e1ab48968556 100644
--- a/source/Lib/CommonLib/dtrace_blockstatistics.h
+++ b/source/Lib/CommonLib/dtrace_blockstatistics.h
@@ -62,9 +62,7 @@ enum class BlockStatistic {
   QP,
   SplitSeries,
   TransQuantBypassFlag,
-#if JVET_K1000_SIMPLIFIED_EMT
   EMTFlag,
-#endif
   TransformSkipFlag_Y,
   TransformSkipFlag_Cb,
   TransformSkipFlag_Cr,
@@ -115,9 +113,7 @@ enum class BlockStatistic {
   QP_Chroma,
   SplitSeries_Chroma,
   TransQuantBypassFlag_Chroma,
-#if JVET_K1000_SIMPLIFIED_EMT
   EMTFlag_Chroma, // this is called flag, though the type is UChar ?!
-#endif
 
   // intra
   IPCM_Chroma,
@@ -180,9 +176,7 @@ static const std::map<BlockStatistic, std::tuple<std::string, BlockStatisticType
   { BlockStatistic::AffineType,             std::tuple<std::string, BlockStatisticType, std::string>{"AffineType",                  BlockStatisticType::Flag,                   ""} },
 #endif
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   { BlockStatistic::EMTFlag,                std::tuple<std::string, BlockStatisticType, std::string>{"EMTFlag",                     BlockStatisticType::Flag,                   ""}},
-#endif
 
   // for dual tree
   { BlockStatistic::PartSize_Chroma,               std::tuple<std::string, BlockStatisticType, std::string>{"PartSize_Chroma",                    BlockStatisticType::Integer,                "[0, " + std::to_string(NUMBER_OF_PART_SIZES) + "]"}},
@@ -194,9 +188,7 @@ static const std::map<BlockStatistic, std::tuple<std::string, BlockStatisticType
   { BlockStatistic::QP_Chroma,                     std::tuple<std::string, BlockStatisticType, std::string>{"QP_Chroma",                          BlockStatisticType::Integer,                "[0, 51]"}},
   { BlockStatistic::SplitSeries_Chroma,            std::tuple<std::string, BlockStatisticType, std::string>{"SplitSeries_Chroma",                 BlockStatisticType::Integer,                "[0, " + std::to_string(std::numeric_limits<SplitSeries>::max()) + "]"}},
   { BlockStatistic::TransQuantBypassFlag_Chroma,   std::tuple<std::string, BlockStatisticType, std::string>{"TransQuantBypassFlag_Chroma",        BlockStatisticType::Flag,                   ""}},
-#if JVET_K1000_SIMPLIFIED_EMT
   { BlockStatistic::EMTFlag_Chroma,                std::tuple<std::string, BlockStatisticType, std::string>{"EMTFlag_Chroma",                     BlockStatisticType::Integer,                "[0, 10]"}}, // todo: actual limits?
-#endif
   { BlockStatistic::IPCM_Chroma,                   std::tuple<std::string, BlockStatisticType, std::string>{"IPCM_Chroma",                        BlockStatisticType::Flag,                   ""}},
 
 };
diff --git a/source/Lib/DecoderLib/CABACReader.cpp b/source/Lib/DecoderLib/CABACReader.cpp
index 1dcf48986f954fc8702a585e37f273192e2eb751..1d218fc5ddb5394d0ed449ceb5a8ba0f6e11fbf6 100644
--- a/source/Lib/DecoderLib/CABACReader.cpp
+++ b/source/Lib/DecoderLib/CABACReader.cpp
@@ -1046,12 +1046,12 @@ void CABACReader::cu_residual( CodingUnit& cu, Partitioner &partitioner, CUCtx&
   transform_tree( *cu.cs, partitioner, cuCtx, chromaCbfs );
 
 
-#if JVET_K1000_SIMPLIFIED_EMT && !HM_EMT_NSST_AS_IN_JEM
+#if !HM_EMT_NSST_AS_IN_JEM
   cu_emt_pertu_idx( cu );
 #endif
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT && !HM_EMT_NSST_AS_IN_JEM
+#if !HM_EMT_NSST_AS_IN_JEM
 void CABACReader::cu_emt_pertu_idx( CodingUnit& cu )
 {
   bool anyCbf = false, anyNonTs = false;
@@ -1529,7 +1529,7 @@ void CABACReader::transform_tree( CodingStructure &cs, Partitioner &partitioner,
   if( split )
   {
     {
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
       if( trDepth == 0 ) emt_cu_flag( cu );
 #endif
 
@@ -1644,7 +1644,7 @@ void CABACReader::transform_tree( CodingStructure &cs, Partitioner &partitioner,
 #endif
     }
 
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
 #if ENABLE_BMS
     if( trDepth == 0 && TU::getCbfAtDepth( tu, COMPONENT_Y, 0 ) ) emt_cu_flag( cu );
 #else
@@ -1881,7 +1881,7 @@ void CABACReader::transform_unit_qtbt( TransformUnit& tu, CUCtx& cuCtx, ChromaCb
 
   if( tu.cbf[0] )
   {
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
     emt_cu_flag    ( cu );
 #endif
     residual_coding( tu, COMPONENT_Y );
@@ -1969,9 +1969,7 @@ void CABACReader::cu_chroma_qp_offset( CodingUnit& cu )
 
 void CABACReader::residual_coding( TransformUnit& tu, ComponentID compID )
 {
-#if ENABLE_TRACING || HEVC_USE_SIGN_HIDING || JVET_K1000_SIMPLIFIED_EMT
   const CodingUnit& cu = *tu.cu;
-#endif
   DTRACE( g_trace_ctx, D_SYNTAX, "residual_coding() etype=%d pos=(%d,%d) size=%dx%d predMode=%d\n", tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height, cu.predMode );
 
   // parse transform skip and explicit rdpcm mode
@@ -2008,9 +2006,7 @@ void CABACReader::residual_coding( TransformUnit& tu, ComponentID compID )
 #else
   unsigned&           GRStats = m_BinDecoder.getCtx().getGRAdaptStats( TU::getGolombRiceStatisticsIndex( tu, compID ) );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   unsigned            numSig  = 0;
-#endif
 
   // parse last coeff position
   cctx.setScanPosLast( last_sig_coeff( cctx ) );
@@ -2023,10 +2019,8 @@ void CABACReader::residual_coding( TransformUnit& tu, ComponentID compID )
   cctx.setGoRiceStats( GRStats );
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT
   bool useEmt = ( cu.cs->sps->getSpsNext().getUseIntraEMT() && cu.predMode == MODE_INTRA ) || ( cu.cs->sps->getSpsNext().getUseInterEMT() && cu.predMode != MODE_INTRA );
   useEmt = useEmt && isLuma(compID);
-#endif
 
     for( int subSetId = ( cctx.scanPosLast() >> cctx.log2CGSize() ); subSetId >= 0; subSetId--)
     {
@@ -2036,13 +2030,11 @@ void CABACReader::residual_coding( TransformUnit& tu, ComponentID compID )
 #else
       residual_coding_subblock( cctx, coeff );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
       if (useEmt)
       {
         numSig += cctx.emtNumSigCoeff();
         cctx.setEmtNumSigCoeff( 0 );
       }
-#endif
     }
 
 #if JVET_K0072
@@ -2050,7 +2042,7 @@ void CABACReader::residual_coding( TransformUnit& tu, ComponentID compID )
     GRStats = cctx.currGoRiceStats();
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
   if( useEmt && !tu.transformSkip[compID] && compID == COMPONENT_Y && tu.cu->emtFlag )
   {
     if( CU::isIntra( *tu.cu ) )
@@ -2077,7 +2069,7 @@ void CABACReader::residual_coding( TransformUnit& tu, ComponentID compID )
 void CABACReader::transform_skip_flag( TransformUnit& tu, ComponentID compID )
 {
 
-#if HM_EMT_NSST_AS_IN_JEM && JVET_K1000_SIMPLIFIED_EMT
+#if HM_EMT_NSST_AS_IN_JEM
   if( !tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag( *tu.cs, tu.blocks[compID] ) || ( isLuma( compID ) && tu.cu->emtFlag ) )
 #else
   if( !tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag( *tu.cs, tu.blocks[compID] ) )
@@ -2093,7 +2085,6 @@ void CABACReader::transform_skip_flag( TransformUnit& tu, ComponentID compID )
   tu.transformSkip[compID] = tskip;
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT
 void CABACReader::emt_tu_index( TransformUnit& tu )
 {
   int maxSizeEmtIntra, maxSizeEmtInter;
@@ -2175,7 +2166,6 @@ void CABACReader::emt_cu_flag( CodingUnit& cu )
     DTRACE( g_trace_ctx, D_SYNTAX, "emt_cu_flag() etype=%d pos=(%d,%d) emtCuFlag=%d\n", COMPONENT_Y, cu.lx(), cu.ly(), ( int ) cu.emtFlag );
   }
 }
-#endif
 
 
 void CABACReader::explicit_rdpcm_mode( TransformUnit& tu, ComponentID compID )
@@ -2419,9 +2409,7 @@ void CABACReader::residual_coding_subblock( CoeffCodingContext& cctx, TCoeff* co
     coeff[ sigBlkPos[k] ] = ( sumAbs & 1 ? -AbsCoeff : AbsCoeff );
   }
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   cctx.setEmtNumSigCoeff( numNonZero );
-#endif
 }
 
 #else
@@ -2634,9 +2622,7 @@ void CABACReader::residual_coding_subblock( CoeffCodingContext& cctx, TCoeff* co
       coeff[ sigBlkPos[k] ] = ( sumAbs & 1 ? -AbsCoeff : AbsCoeff );
     }
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
     cctx.setEmtNumSigCoeff( numNonZero );
-#endif
   }
 }
 #endif
diff --git a/source/Lib/DecoderLib/CABACReader.h b/source/Lib/DecoderLib/CABACReader.h
index 517753bd500d80f940f507bbf47f4663636d1bc0..5df0525b7321fd47d9c33b3d78c7a7536dd984e2 100644
--- a/source/Lib/DecoderLib/CABACReader.h
+++ b/source/Lib/DecoderLib/CABACReader.h
@@ -138,17 +138,15 @@ public:
 #endif
   void        cu_qp_delta               ( CodingUnit&                   cu,     int             predQP, int8_t& qp );
   void        cu_chroma_qp_offset       ( CodingUnit&                   cu );
-#if JVET_K1000_SIMPLIFIED_EMT && !HM_EMT_NSST_AS_IN_JEM
+#if !HM_EMT_NSST_AS_IN_JEM
   void        cu_emt_pertu_idx          ( CodingUnit&                   cu );
 #endif
 
   // residual coding (clause 7.3.8.11)
   void        residual_coding           ( TransformUnit&                tu,     ComponentID     compID );
   void        transform_skip_flag       ( TransformUnit&                tu,     ComponentID     compID );
-#if JVET_K1000_SIMPLIFIED_EMT
   void        emt_tu_index              ( TransformUnit&                tu );
   void        emt_cu_flag               ( CodingUnit&                   cu );
-#endif
   void        explicit_rdpcm_mode       ( TransformUnit&                tu,     ComponentID     compID );
   int         last_sig_coeff            ( CoeffCodingContext&           cctx );
 #if JVET_K0072
diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp
index 581c220619ed64c348a8a439ae68a869e06acd67..5c6d9c8fa81d4b27994fc3c59bb489873c345904 100644
--- a/source/Lib/DecoderLib/VLCReader.cpp
+++ b/source/Lib/DecoderLib/VLCReader.cpp
@@ -816,10 +816,8 @@ void HLSyntaxReader::parseSPSNext( SPSNext& spsNext, const bool usePCM )
 #if JVET_K0190
   READ_FLAG( symbol,    "lm_chroma_enabled_flag" );                 spsNext.setUseLMChroma            ( symbol != 0 );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   READ_FLAG( symbol,    "emt_intra_enabled_flag" );                 spsNext.setUseIntraEMT            ( symbol != 0 );
   READ_FLAG( symbol,    "emt_inter_enabled_flag" );                 spsNext.setUseInterEMT            ( symbol != 0 );
-#endif
 #if JVET_K_AFFINE
   READ_FLAG( symbol,    "affine_flag" );                            spsNext.setUseAffine              ( symbol != 0 );
 #if JVET_K0337_AFFINE_6PARA
diff --git a/source/Lib/EncoderLib/CABACWriter.cpp b/source/Lib/EncoderLib/CABACWriter.cpp
index d8b7a601c6449c1849af790cfb2e6b9f81043635..0e0258fc37c222e12a549b52b8f3b489505c6709 100644
--- a/source/Lib/EncoderLib/CABACWriter.cpp
+++ b/source/Lib/EncoderLib/CABACWriter.cpp
@@ -1034,12 +1034,12 @@ void CABACWriter::cu_residual( const CodingUnit& cu, Partitioner& partitioner, C
   ChromaCbfs chromaCbfs;
   transform_tree( *cu.cs, partitioner, cuCtx, chromaCbfs );
 
-#if JVET_K1000_SIMPLIFIED_EMT && !HM_EMT_NSST_AS_IN_JEM
+#if !HM_EMT_NSST_AS_IN_JEM
   cu_emt_pertu_idx( cu );
 #endif
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT && !HM_EMT_NSST_AS_IN_JEM
+#if !HM_EMT_NSST_AS_IN_JEM
 void CABACWriter::cu_emt_pertu_idx( const CodingUnit& cu )
 {
   bool anyCbf = false, anyNonTs = false;
@@ -1570,7 +1570,7 @@ void CABACWriter::transform_tree( const CodingStructure& cs, Partitioner& partit
       chromaCbfs.Cb        = TU::getCbfAtDepth( tu, COMPONENT_Cb,  trDepth );
       chromaCbfs.Cr        = TU::getCbfAtDepth( tu, COMPONENT_Cr,  trDepth );
     }
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
     if( trDepth == 0 ) emt_cu_flag( cu );
 #endif
 
@@ -1628,7 +1628,7 @@ void CABACWriter::transform_tree( const CodingStructure& cs, Partitioner& partit
       }
     }
 
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
 #if ENABLE_BMS
     if( trDepth == 0 && TU::getCbfAtDepth( tu, COMPONENT_Y, 0 ) ) emt_cu_flag( cu );
 #else
@@ -1882,7 +1882,7 @@ void CABACWriter::transform_unit_qtbt( const TransformUnit& tu, CUCtx& cuCtx, Ch
 
     if( tu.cbf[0] )
     {
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
       emt_cu_flag( cu );
 #endif
       residual_coding( tu, COMPONENT_Y );
@@ -1969,9 +1969,7 @@ void CABACWriter::cu_chroma_qp_offset( const CodingUnit& cu )
 
 void CABACWriter::residual_coding( const TransformUnit& tu, ComponentID compID )
 {
-#if ENABLE_TRACING || HEVC_USE_SIGN_HIDING || JVET_K1000_SIMPLIFIED_EMT
   const CodingUnit& cu = *tu.cu;
-#endif
   DTRACE( g_trace_ctx, D_SYNTAX, "residual_coding() etype=%d pos=(%d,%d) size=%dx%d predMode=%d\n", tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height, cu.predMode );
 
   // code transform skip and explicit rdpcm mode
@@ -2007,9 +2005,7 @@ void CABACWriter::residual_coding( const TransformUnit& tu, ComponentID compID )
 #else
   unsigned&           GRStats = m_BinEncoder.getCtx().getGRAdaptStats( TU::getGolombRiceStatisticsIndex( tu, compID ) );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   unsigned            numSig  = 0;
-#endif
 
   // determine and set last coeff position and sig group flags
   int                      scanPosLast = -1;
@@ -2036,10 +2032,8 @@ void CABACWriter::residual_coding( const TransformUnit& tu, ComponentID compID )
 #else
   cctx.setGoRiceStats( GRStats );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   bool useEmt = ( cu.cs->sps->getSpsNext().getUseIntraEMT() && cu.predMode == MODE_INTRA ) || ( cu.cs->sps->getSpsNext().getUseInterEMT() && cu.predMode != MODE_INTRA );
   useEmt = useEmt && isLuma(compID);
-#endif
 
   for( int subSetId = ( cctx.scanPosLast() >> cctx.log2CGSize() ); subSetId >= 0; subSetId--)
   {
@@ -2050,13 +2044,11 @@ void CABACWriter::residual_coding( const TransformUnit& tu, ComponentID compID )
     residual_coding_subblock( cctx, coeff );
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT
     if (useEmt)
     {
       numSig += cctx.emtNumSigCoeff();
       cctx.setEmtNumSigCoeff( 0 );
     }
-#endif
   }
 
 #if JVET_K0072
@@ -2064,7 +2056,7 @@ void CABACWriter::residual_coding( const TransformUnit& tu, ComponentID compID )
   GRStats = cctx.currGoRiceStats();
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
   if( useEmt && !tu.transformSkip[compID] && compID == COMPONENT_Y && tu.cu->emtFlag )
   {
     if( CU::isIntra( *tu.cu ) )
@@ -2089,7 +2081,7 @@ void CABACWriter::residual_coding( const TransformUnit& tu, ComponentID compID )
 
 void CABACWriter::transform_skip_flag( const TransformUnit& tu, ComponentID compID )
 {
-#if HM_EMT_NSST_AS_IN_JEM && JVET_K1000_SIMPLIFIED_EMT
+#if HM_EMT_NSST_AS_IN_JEM
   if( !tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag( *tu.cs, tu.blocks[compID] ) || ( isLuma( compID ) && tu.cu->emtFlag ) )
 #else
   if( !tu.cu->cs->pps->getUseTransformSkip() || tu.cu->transQuantBypass || !TU::hasTransformSkipFlag( *tu.cs, tu.blocks[compID] ) )
@@ -2102,7 +2094,6 @@ void CABACWriter::transform_skip_flag( const TransformUnit& tu, ComponentID comp
   DTRACE( g_trace_ctx, D_SYNTAX, "transform_skip_flag() etype=%d pos=(%d,%d) trSkip=%d\n", compID, tu.blocks[compID].x, tu.blocks[compID].y, (int)tu.transformSkip[compID] );
 }
 
-#if JVET_K1000_SIMPLIFIED_EMT
 void CABACWriter::emt_tu_index( const TransformUnit& tu )
 {
   int maxSizeEmtIntra, maxSizeEmtInter;
@@ -2172,7 +2163,6 @@ void CABACWriter::emt_cu_flag( const CodingUnit& cu )
     DTRACE( g_trace_ctx, D_SYNTAX, "emt_cu_flag() etype=%d pos=(%d,%d) emtCuFlag=%d\n", COMPONENT_Y, cu.lx(), cu.ly(), ( int ) cu.emtFlag );
   }
 }
-#endif
 
 
 
@@ -2377,9 +2367,7 @@ void CABACWriter::residual_coding_subblock( CoeffCodingContext& cctx, const TCoe
 #else
   m_BinEncoder.encodeBinsEP( signPattern, numNonZero );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   cctx.setEmtNumSigCoeff(numNonZero);
-#endif
 }
 
 #else
diff --git a/source/Lib/EncoderLib/CABACWriter.h b/source/Lib/EncoderLib/CABACWriter.h
index a8bd194ac2b286a2bcbca829fd5e90e6c87a9310..871af751eb38be1eaacf6b00f72d650af2f8ffdd 100644
--- a/source/Lib/EncoderLib/CABACWriter.h
+++ b/source/Lib/EncoderLib/CABACWriter.h
@@ -164,17 +164,15 @@ public:
 #endif
   void        cu_qp_delta               ( const CodingUnit&             cu,       int               predQP, const int8_t qp );
   void        cu_chroma_qp_offset       ( const CodingUnit&             cu );
-#if JVET_K1000_SIMPLIFIED_EMT && !HM_EMT_NSST_AS_IN_JEM
+#if !HM_EMT_NSST_AS_IN_JEM
   void        cu_emt_pertu_idx          ( const CodingUnit&             cu );
 #endif
 
   // residual coding (clause 7.3.8.11)
   void        residual_coding           ( const TransformUnit&          tu,       ComponentID       compID );
   void        transform_skip_flag       ( const TransformUnit&          tu,       ComponentID       compID );
-#if JVET_K1000_SIMPLIFIED_EMT
   void        emt_tu_index              ( const TransformUnit&          tu );
   void        emt_cu_flag               ( const CodingUnit&             cu );
-#endif
   void        explicit_rdpcm_mode       ( const TransformUnit&          tu,       ComponentID       compID );
   void        last_sig_coeff            ( CoeffCodingContext&           cctx );
 #if JVET_K0072
diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h
index 469c860271145e3d992f14dd39c35db53933e03e..8e5671644052777083669c43c5e64aeb30d4d7a3 100644
--- a/source/Lib/EncoderLib/EncCfg.h
+++ b/source/Lib/EncoderLib/EncCfg.h
@@ -187,12 +187,10 @@ protected:
 #if JVET_K0190
   int       m_LMChroma;
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   int       m_IntraEMT;
   int       m_InterEMT;
   int       m_FastIntraEMT;
   int       m_FastInterEMT;
-#endif
   bool      m_LargeCTU;
 #if JVET_K0346
   int       m_SubPuMvpMode;
@@ -661,7 +659,6 @@ public:
   bool      getUseAltDQPCoding              ()         const { return m_AltDQPCoding; }
 #endif
 
-#if JVET_K1000_SIMPLIFIED_EMT
   void      setFastIntraEMT                 ( bool b )       { m_FastIntraEMT = b; }
   bool      getFastIntraEMT                 ()         const { return m_FastIntraEMT; }
   void      setFastInterEMT                 ( bool b )       { m_FastInterEMT = b; }
@@ -670,7 +667,6 @@ public:
   bool      getIntraEMT                     ()         const { return m_IntraEMT; }
   void      setInterEMT                     ( bool b )       { m_InterEMT = b; }
   bool      getInterEMT                     ()         const { return m_InterEMT; }
-#endif
 
 
 
diff --git a/source/Lib/EncoderLib/EncCu.cpp b/source/Lib/EncoderLib/EncCu.cpp
index 2a4af3ff363a48d7c6d9511b66c49c502c7e1a90..1bc5b7f42e5c6d88c70cc873928dd58d35db2aa9 100644
--- a/source/Lib/EncoderLib/EncCu.cpp
+++ b/source/Lib/EncoderLib/EncCu.cpp
@@ -1132,37 +1132,26 @@ void EncCu::xCheckModeSplit(CodingStructure *&tempCS, CodingStructure *&bestCS,
 
 void EncCu::xCheckRDCostIntra( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode& encTestMode )
 {
-#if JVET_K1000_SIMPLIFIED_EMT
   double bestInterCost             = m_modeCtrl->getBestInterCost();
   double costSize2Nx2NemtFirstPass = m_modeCtrl->getEmtSize2Nx2NFirstPassCost();
   double costSizeNxNemtFirstPass   = MAX_DOUBLE;
   bool skipSecondEmtPass           = m_modeCtrl->getSkipSecondEMTPass();
   const SPS &sps                   = *tempCS->sps;
-#endif
   const PPS &pps              = *tempCS->pps;
   const CodingUnit *bestCU    = bestCS->getCU( partitioner.chType );
-#if JVET_K1000_SIMPLIFIED_EMT
   const int maxSizeEMT        = pps.pcv->noRQT ? EMT_INTRA_MAX_CU_WITH_QTBT : EMT_INTRA_MAX_CU;
-#endif
-#if JVET_K1000_SIMPLIFIED_EMT
 #if HM_EMT_NSST_AS_IN_JEM
   uint8_t considerEmtSecondPass = ( sps.getSpsNext().getUseIntraEMT() && isLuma( partitioner.chType ) && partitioner.currArea().lwidth() <= maxSizeEMT && partitioner.currArea().lheight() <= maxSizeEMT ) ? 1 : 0;
 #else
   uint8_t considerEmtSecondPass = ( sps.getSpsNext().getUseIntraEMT() && isLuma( partitioner.chType ) && partitioner.currArea().lwidth() <= maxSizeEMT && partitioner.currArea().lheight() <= maxSizeEMT && nsstIdx == 0 ) ? 1 : 0;
-#endif
 #endif
 
   Distortion interHad = m_modeCtrl->getInterHad();
 
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
   for( uint8_t emtCuFlag = 0; emtCuFlag <= considerEmtSecondPass; emtCuFlag++ )
-#else
-  for( uint8_t numPasses = 0; numPasses < 1; numPasses++ )
-#endif
   {
-#if JVET_K1000_SIMPLIFIED_EMT
     //Possible early EMT tests interruptions
 #if !JVET_K0220_ENC_CTRL
     //1) saveLoadTag code for EMT
@@ -1179,7 +1168,6 @@ void EncCu::xCheckRDCostIntra( CodingStructure *&tempCS, CodingStructure *&bestC
     {
       continue;
     }
-#endif
     //3) if interHad is 0, only try further modes if some intra mode was already better than inter
     if( m_pcEncCfg->getUsePbIntraFast() && !tempCS->slice->isIntra() && bestCU && CU::isInter( *bestCS->getCU( partitioner.chType ) ) && interHad == 0 )
     {
@@ -1202,9 +1190,7 @@ void EncCu::xCheckRDCostIntra( CodingStructure *&tempCS, CodingStructure *&bestC
     cu.chromaQpAdj      = cu.transQuantBypass ? 0 : m_cuChromaQpOffsetIdxPlus1;
     cu.qp               = encTestMode.qp;
   //cu.ipcm             = false;
-#if JVET_K1000_SIMPLIFIED_EMT
     cu.emtFlag          = emtCuFlag;
-#endif
 
     CU::addPUs( cu );
 
@@ -1277,10 +1263,8 @@ void EncCu::xCheckRDCostIntra( CodingStructure *&tempCS, CodingStructure *&bestC
     xCheckDQP( *tempCS, partitioner );
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
     // we save the cost of the modes for the first EMT pass
     if( !emtCuFlag ) static_cast< double& >( cu.partSize == SIZE_2Nx2N ? costSize2Nx2NemtFirstPass : costSizeNxNemtFirstPass ) = tempCS->cost;
-#endif
 
 #if WCG_EXT
     DTRACE_MODE_COST( *tempCS, m_pcRdCost->getLambda( true ) );
@@ -1290,7 +1274,6 @@ void EncCu::xCheckRDCostIntra( CodingStructure *&tempCS, CodingStructure *&bestC
     xCheckBestMode( tempCS, bestCS, partitioner, encTestMode );
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
     //now we check whether the second pass of SIZE_2Nx2N and the whole Intra SIZE_NxN should be skipped or not
 #if JVET_K0220_ENC_CTRL
     if( !emtCuFlag && !tempCS->slice->isIntra() && bestCU && bestCU->predMode != MODE_INTRA && cu.partSize == SIZE_2Nx2N && m_pcEncCfg->getFastInterEMT() )
@@ -1307,7 +1290,6 @@ void EncCu::xCheckRDCostIntra( CodingStructure *&tempCS, CodingStructure *&bestC
       }
     }
 
-#endif
   } //for emtCuFlag
 }
 
@@ -1671,9 +1653,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *&
 #if JVET_K0357_AMVR
         , NULL
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
         , 1
-#endif
         , uiNoResidualPass == 0 ? &candHasNoResidual[uiMergeCand] : NULL );
 
       if( m_pcEncCfg->getUseFastDecisionForMerge() && !bestIsSkip )
@@ -1778,9 +1758,7 @@ void EncCu::xCheckRDCostAffineMerge2Nx2N( CodingStructure *&tempCS, CodingStruct
 #if JVET_K0357_AMVR
     , NULL
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
     , 1
-#endif
     , &hasNoResidual);
 
   if( ! (encTestMode.lossless || hasNoResidual) )
@@ -1793,9 +1771,7 @@ void EncCu::xCheckRDCostAffineMerge2Nx2N( CodingStructure *&tempCS, CodingStruct
 #if JVET_K0357_AMVR
       , NULL
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
       , 1
-#endif
       , &hasNoResidual);
   }
 }
@@ -1833,9 +1809,7 @@ void EncCu::xCheckRDCostInter( CodingStructure *&tempCS, CodingStructure *&bestC
 #if JVET_K0357_AMVR
     , m_pImvTempCS ? m_pImvTempCS[wIdx][encTestMode.partSize] : NULL
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
     , 1
-#endif
     , 0
   );
 
@@ -1905,9 +1879,7 @@ bool EncCu::xCheckRDCostInterIMV( CodingStructure *&tempCS, CodingStructure *&be
   }
 
   cu.imv      = iIMV > 1 ? 2 : 1;
-#if JVET_K1000_SIMPLIFIED_EMT
   cu.emtFlag  = false;
-#endif
 
   
   if( pcCUInfo2Reuse != nullptr )
@@ -1944,9 +1916,7 @@ bool EncCu::xCheckRDCostInterIMV( CodingStructure *&tempCS, CodingStructure *&be
 #if JVET_K0357_AMVR
     , NULL
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
     , true
-#endif
     , 0
   );
 
@@ -1958,9 +1928,7 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS, CodingStructure *&be
 #if JVET_K0357_AMVR
   , CodingStructure* imvCS
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   , int emtMode
-#endif
   , bool* bestHasNonResi
   )
 {
@@ -1971,7 +1939,6 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS, CodingStructure *&be
 
   CodingUnit*            cu        = tempCS->getCU( partitioner.chType );
   double   bestCostInternal        = MAX_DOUBLE;
-#if JVET_K1000_SIMPLIFIED_EMT
   double           bestCost        = bestCS->cost;
   const SPS&            sps        = *tempCS->sps;
   const int      maxSizeEMT        = tempCS->pcv->noRQT ? EMT_INTER_MAX_CU_WITH_QTBT : EMT_INTER_MAX_CU;
@@ -1988,9 +1955,7 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS, CodingStructure *&be
   }
 
   for( int curEmtMode = minEMTMode; curEmtMode <= maxEMTMode; curEmtMode++ )
-#endif
   {
-#if JVET_K1000_SIMPLIFIED_EMT
     if( reloadCU )
     {
       if( bestCost == bestCS->cost ) //The first EMT pass didn't become the bestCS, so we clear the TUs generated
@@ -2020,11 +1985,8 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS, CodingStructure *&be
     }
 
     reloadCU    = true; // enable cu reloading
-#endif
     cu->skip    = false;
-#if JVET_K1000_SIMPLIFIED_EMT
     cu->emtFlag = curEmtMode;
-#endif
 
     const bool skipResidual = residualPass == 1;
     m_pcInterSearch->encodeResAndCalcRdInterCU( *tempCS, partitioner, skipResidual );
@@ -2034,9 +1996,7 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS, CodingStructure *&be
     xCheckDQP( *tempCS, partitioner );
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
     double emtFirstPassCost = tempCS->cost;
-#endif
 #if JVET_K0357_AMVR
     if( imvCS && (tempCS->cost < imvCS->cost) )
     {
@@ -2060,7 +2020,6 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS, CodingStructure *&be
 #endif
     xCheckBestMode( tempCS, bestCS, partitioner, encTestMode );
 
-#if JVET_K1000_SIMPLIFIED_EMT
     //now we check whether the second pass should be skipped or not
     if( !curEmtMode && maxEMTMode )
     {
@@ -2074,7 +2033,6 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS, CodingStructure *&be
         maxEMTMode = 0; // do not test EMT
       }
     }
-#endif
   } //end emt loop
 }
 
diff --git a/source/Lib/EncoderLib/EncCu.h b/source/Lib/EncoderLib/EncCu.h
index 101a62b582b961f3a1fc883fcfbdf683ef8117a7..221f1a8af29819e816f6ce3545fe9050b3e98dc3 100644
--- a/source/Lib/EncoderLib/EncCu.h
+++ b/source/Lib/EncoderLib/EncCu.h
@@ -204,9 +204,7 @@ protected:
 #if JVET_K0357_AMVR
     , CodingStructure* imvCS = NULL
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
     , int emtMode = 1
-#endif
     , bool* bestHasNonResi = NULL
   );
 #if REUSE_CU_RESULTS
diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp
index ef8faf8eee0fc38bf8167918713f44e32e61a35f..d29afcba0ec7a00ecd83cd65f1ae124f83a3ceb7 100644
--- a/source/Lib/EncoderLib/EncLib.cpp
+++ b/source/Lib/EncoderLib/EncLib.cpp
@@ -913,10 +913,8 @@ void EncLib::xInitSPS(SPS &sps)
 #if ENABLE_WPP_PARALLELISM
   sps.getSpsNext().setUseNextDQP            ( m_AltDQPCoding );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   sps.getSpsNext().setUseIntraEMT           ( m_IntraEMT );
   sps.getSpsNext().setUseInterEMT           ( m_InterEMT );
-#endif
 #if JVET_K0157
   sps.getSpsNext().setUseCompositeRef       ( m_compositeRefEnabled );
 #endif
diff --git a/source/Lib/EncoderLib/EncModeCtrl.cpp b/source/Lib/EncoderLib/EncModeCtrl.cpp
index fe31700e99eb2ae6fe31e32b6a8bba3110584602..8bd35331fb0aa4ba9d4d52c16a8c37fa76bcbcc7 100644
--- a/source/Lib/EncoderLib/EncModeCtrl.cpp
+++ b/source/Lib/EncoderLib/EncModeCtrl.cpp
@@ -1858,10 +1858,8 @@ bool EncModeCtrlMTnoRQT::tryMode( const EncTestMode& encTestmode, const CodingSt
         {
         }
 
-#if JVET_K1000_SIMPLIFIED_EMT
         sls.emtCuFlag  = bestCU->emtFlag;
         sls.emtTuIndex = bestCU->firstTU->emtIdx; //since this is the QTBT path, there is only one TU
-#endif
 
         sls.tag = LOAD_ENC_INFO;
         CHECK( sls.partIdx != cuECtx.partIdx, "partidx is not consistent" );
@@ -1901,7 +1899,6 @@ bool EncModeCtrlMTnoRQT::useModeResult( const EncTestMode& encTestmode, CodingSt
   {
     cuECtx.set( BEST_TRIV_SPLIT_COST, tempCS->cost );
   }
-#if JVET_K1000_SIMPLIFIED_EMT
   else if( encTestmode.type == ETM_INTRA && encTestmode.partSize == SIZE_2Nx2N )
   {
     const CodingUnit cu = *tempCS->getCU( partitioner.chType );
@@ -1911,7 +1908,6 @@ bool EncModeCtrlMTnoRQT::useModeResult( const EncTestMode& encTestmode, CodingSt
       cuECtx.bestEmtSize2Nx2N1stPass = tempCS->cost;
     }
   }
-#endif
 
 #if JVET_K0357_AMVR
   if( m_pcEncCfg->getIMV4PelFast() && m_pcEncCfg->getIMV() && encTestmode.type == ETM_INTER_ME )
diff --git a/source/Lib/EncoderLib/EncModeCtrl.h b/source/Lib/EncoderLib/EncModeCtrl.h
index 12fd159c5f840d80c6ceae961b95d7b776c32409..0c4e0eae1dd5dca9f63a393581ff48b959e508f3 100644
--- a/source/Lib/EncoderLib/EncModeCtrl.h
+++ b/source/Lib/EncoderLib/EncModeCtrl.h
@@ -189,12 +189,10 @@ struct ComprCUCtx
     , extraFeatures (            )
     , extraFeaturesd(            )
     , bestInterCost ( MAX_DOUBLE )
-#if JVET_K1000_SIMPLIFIED_EMT
     , bestEmtSize2Nx2N1stPass
                     ( MAX_DOUBLE )
     , skipSecondEMTPass
                     ( false   )
-#endif
 #if DISTORTION_TYPE_BUGFIX
     , interHad      (std::numeric_limits<Distortion>::max())
 #else
@@ -227,10 +225,8 @@ struct ComprCUCtx
   static_vector<int64_t,  30>         extraFeatures;
   static_vector<double, 30>         extraFeaturesd;
   double                            bestInterCost;
-#if JVET_K1000_SIMPLIFIED_EMT
   double                            bestEmtSize2Nx2N1stPass;
   bool                              skipSecondEMTPass;
-#endif
   Distortion                        interHad;
 #if ENABLE_SPLIT_PARALLELISM
   bool                              isLevelSplitParallel;
@@ -314,11 +310,9 @@ public:
   double getBestInterCost             ()                  const { return m_ComprCUCtxList.back().bestInterCost;           }
   Distortion getInterHad              ()                  const { return m_ComprCUCtxList.back().interHad;                }
   void enforceInterHad                ( Distortion had )        {        m_ComprCUCtxList.back().interHad = had;          }
-#if JVET_K1000_SIMPLIFIED_EMT
   double getEmtSize2Nx2NFirstPassCost ()                  const { return m_ComprCUCtxList.back().bestEmtSize2Nx2N1stPass; }
   bool getSkipSecondEMTPass           ()                  const { return m_ComprCUCtxList.back().skipSecondEMTPass;       }
   void setSkipSecondEMTPass           ( bool b )                {        m_ComprCUCtxList.back().skipSecondEMTPass = b;   }
-#endif
 
 protected:
   void xExtractFeatures ( const EncTestMode encTestmode, CodingStructure& cs );
diff --git a/source/Lib/EncoderLib/InterSearch.cpp b/source/Lib/EncoderLib/InterSearch.cpp
index a8e602c8d97aade1779d9dd748ae1b33d4224780..fdd0543b42ea11261e2dc997df3683c0dd80cf4c 100644
--- a/source/Lib/EncoderLib/InterSearch.cpp
+++ b/source/Lib/EncoderLib/InterSearch.cpp
@@ -4521,9 +4521,7 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
 #if ENABLE_BMS
     tu.depth          = currDepth;
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
     tu.emtIdx         = 0;
-#endif
 
     double minCost            [MAX_NUM_TBLOCKS];
     bool   checkTransformSkip [MAX_NUM_TBLOCKS];
@@ -4558,12 +4556,10 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
       }
 
       checkTransformSkip[compID] = pps.getUseTransformSkip() && TU::hasTransformSkipFlag( *tu.cs, tu.blocks[compID] ) && !cs.isLossless;
-#if JVET_K1000_SIMPLIFIED_EMT
       if( isLuma(compID) )
       {
         checkTransformSkip[compID]  &= !tu.cu->emtFlag;
       }
-#endif
 
       const bool isCrossCPredictionAvailable = TU::hasCrossCompPredInfo( tu, compID );
 
@@ -4577,12 +4573,8 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
       }
 
       const int crossCPredictionModesToTest = preCalcAlpha != 0 ? 2 : 1;
-#if JVET_K1000_SIMPLIFIED_EMT
       const int numEmtTransformCandidates   = isLuma(compID) && tu.cu->emtFlag && sps.getSpsNext().getUseInterEMT() ? 4 : 1;
       const int numTransformCandidates      = checkTransformSkip[compID] ? ( numEmtTransformCandidates + 1 ) : numEmtTransformCandidates;
-#else
-      const int numTransformCandidates      = checkTransformSkip[compID] ? 2 : 1;
-#endif
       int lastTransformModeIndex            = numTransformCandidates - 1; //lastTransformModeIndex is the mode for transformSkip (if transformSkip is active)
       const bool isOneMode                  = crossCPredictionModesToTest == 1 && numTransformCandidates == 1;
 
@@ -4601,9 +4593,7 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
           m_CABACEstimator->getCtx() = ctxStart;
           m_CABACEstimator->resetBits();
 
-#if JVET_K1000_SIMPLIFIED_EMT
           if( isLuma( compID ) ) tu.emtIdx = transformMode;
-#endif
           tu.transformSkip[compID]  = checkTransformSkip[compID] && transformMode == lastTransformModeIndex;
           tu.compAlpha[compID]      = bUseCrossCPrediction ? preCalcAlpha : 0;
 
@@ -4878,12 +4868,10 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
       );
 
       csSplit->cost = m_pcRdCost->calcRdCost( csSplit->fracBits, csSplit->dist );
-#if JVET_K1000_SIMPLIFIED_EMT
       if( csFull && csSplit->cost >= csFull->cost && m_pcEncCfg->getFastInterEMT() )
       {
         break;
       }
-#endif
     } while( partitioner.nextPart( *csSplit ) );
 
     partitioner.exitCurrSplit();
@@ -4891,12 +4879,8 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
     unsigned        anyCbfSet   =   0;
     unsigned        compCbf[3]  = { 0, 0, 0 };
 
-#if JVET_K1000_SIMPLIFIED_EMT
     bool isSplit = bCheckFull ? false : true;
     if( !bCheckFull || ( csSplit->cost < csFull->cost && m_pcEncCfg->getFastInterEMT() ) || !m_pcEncCfg->getFastInterEMT() )
-#else
-    if( !bCheckFull )
-#endif
     {
       for( auto &currTU : csSplit->traverseTUs( currArea, partitioner.chType ) )
       {
@@ -4943,17 +4927,11 @@ void InterSearch::xEstimateInterResidualQT(CodingStructure &cs, Partitioner &par
       {
         cs.useSubStructure( *csSplit, partitioner.chType, currArea, false, false, false, true );
         cs.cost = csSplit->cost;
-#if JVET_K1000_SIMPLIFIED_EMT
         isSplit = true;
-#endif
       }
     }
 
-#if JVET_K1000_SIMPLIFIED_EMT
     if( ( !isSplit && m_pcEncCfg->getFastInterEMT() ) || ( !m_pcEncCfg->getFastInterEMT() && !( !bCheckFull || ( anyCbfSet && csSplit->cost < csFull->cost ) ) ) )
-#else
-    if( !( !bCheckFull || ( anyCbfSet && csSplit->cost < csFull->cost ) ) )
-#endif
     {
       CHECK( !bCheckFull, "Error!" );
       cs.useSubStructure( *csFull, partitioner.chType, currArea, false, false, false, true );
diff --git a/source/Lib/EncoderLib/IntraSearch.cpp b/source/Lib/EncoderLib/IntraSearch.cpp
index eb8519e79dbe930bd7cc2d13f507cce82b8e21ce..8d7e81d727b5f6f2b6e9b893f94fcad73e5be9d8 100644
--- a/source/Lib/EncoderLib/IntraSearch.cpp
+++ b/source/Lib/EncoderLib/IntraSearch.cpp
@@ -296,7 +296,6 @@ void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner )
   uint32_t extraModes = 0; // add two extra modes, which would be used after uiMode <= DC_IDX is removed for cu.nsstIdx == 3
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const int width   = partitioner.currArea().lwidth();
   const int height  = partitioner.currArea().lheight();
 
@@ -331,7 +330,6 @@ void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner )
   }
 #if !JVET_K0220_ENC_CTRL
   NSSTLoadFlag &= !(m_pcEncCfg->getNSST() && m_pcEncCfg->getUseSaveLoadEncInfo() && (LOAD_ENC_INFO == slsCtrl->getSaveLoadTag(cu)));
-#endif
 #endif
 
   static_vector<uint32_t,   FAST_UDI_MAX_RDMODE_NUM> uiHadModeList;
@@ -339,9 +337,7 @@ void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner )
   static_vector<double, FAST_UDI_MAX_RDMODE_NUM> CandHadList;
 
   auto &pu = *cu.firstPU;
-#if JVET_K1000_SIMPLIFIED_EMT
   int puIndex = 0;
-#endif
   {
     CandHadList.clear();
     CandCostList.clear();
@@ -372,9 +368,7 @@ void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner )
 #endif
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
     if( emtUsageFlag != 2 )
-#endif
     {
       // this should always be true
       CHECK( !pu.Y().valid(), "PU is not valid" );
@@ -528,16 +522,13 @@ void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner )
           uiRdModeList.push_back( i );
         }
       }
-#if JVET_K1000_SIMPLIFIED_EMT
       if( emtUsageFlag == 1 )
       {
         // Store the modes to be checked with RD
         m_savedNumRdModes[puIndex] = numModesForFullRD;
         std::copy_n( uiRdModeList.begin(), numModesForFullRD, m_savedRdModeList[puIndex] );
       }
-#endif
     }
-#if JVET_K1000_SIMPLIFIED_EMT
     else //emtUsage = 2 (here we potentially reduce the number of modes that will be full-RD checked)
     {
       if( isAllIntra && m_pcEncCfg->getFastIntraEMT() )
@@ -579,7 +570,6 @@ void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner )
         std::copy_n( m_savedRdModeList[puIndex], m_savedNumRdModes[puIndex], uiRdModeList.begin() );
       }
     }
-#endif
 
 
     CHECK( numModesForFullRD != uiRdModeList.size(), "Inconsistent state!" );
@@ -587,11 +577,7 @@ void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner )
     // after this point, don't use numModesForFullRD
 
     // PBINTRA fast
-#if JVET_K1000_SIMPLIFIED_EMT
     if( m_pcEncCfg->getUsePbIntraFast() && !cs.slice->isIntra() && cu.partSize == SIZE_2Nx2N && uiRdModeList.size() < numModesAvailable && emtUsageFlag != 2 )
-#else
-    if( m_pcEncCfg->getUsePbIntraFast() && !cs.slice->isIntra() && cu.partSize == SIZE_2Nx2N && uiRdModeList.size() < numModesAvailable )
-#endif
     {
       if( CandHadList.size() < 3 || CandHadList[2] > cs.interHad * PBINTRA_RATIO )
       {
@@ -650,12 +636,10 @@ void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner )
 
       xRecurIntraCodingLumaQT( *csTemp, partitioner );
 
-#if JVET_K1000_SIMPLIFIED_EMT
       if( emtUsageFlag == 1 && m_pcEncCfg->getFastIntraEMT() )
       {
         m_modeCostStore[puIndex][uiMode] = csTemp->cost; //cs.cost;
       }
-#endif
 
 
       DTRACE( g_trace_ctx, D_INTRA_COST, "IntraCost T %f (%d) \n", csTemp->cost, uiOrgMode );
@@ -672,12 +656,10 @@ void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner )
 #endif
         uiBestPUMode  = uiOrgMode;
 
-#if JVET_K1000_SIMPLIFIED_EMT
         if( ( emtUsageFlag == 1 ) && m_pcEncCfg->getFastIntraEMT() )
         {
           m_bestModeCostStore[puIndex] = csBest->cost; //cs.cost;
         }
-#endif
       }
 #if ENABLE_RQT_INTRA_SPEEDUP_MOD
       else if( csTemp->cost < dSecondBestPUCost )
@@ -967,7 +949,7 @@ void IntraSearch::xEncSubdivCbfQT(CodingStructure &cs, Partitioner &partitioner,
 {
   const UnitArea &currArea = partitioner.currArea();
   TransformUnit &currTU    = *cs.getTU( currArea.blocks[partitioner.chType], partitioner.chType );
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
   CodingUnit &currCU       = *currTU.cu;
 #endif
 #if ENABLE_BMS
@@ -1021,7 +1003,7 @@ void IntraSearch::xEncSubdivCbfQT(CodingStructure &cs, Partitioner &partitioner,
 #if ENABLE_BMS
   if (subdiv)
   {
-#if JVET_K1000_SIMPLIFIED_EMT && HM_EMT_NSST_AS_IN_JEM
+#if HM_EMT_NSST_AS_IN_JEM
     if( currDepth == 0 && bLuma ) m_CABACEstimator->emt_cu_flag( currCU );
 #endif
 
@@ -1044,7 +1026,7 @@ void IntraSearch::xEncSubdivCbfQT(CodingStructure &cs, Partitioner &partitioner,
   else
 #endif
   {
-#if HM_EMT_NSST_AS_IN_JEM && JVET_K1000_SIMPLIFIED_EMT
+#if HM_EMT_NSST_AS_IN_JEM
 #if ENABLE_BMS
     if( currDepth == 0 && bLuma && TU::getCbfAtDepth( currTU, COMPONENT_Y, 0 ) ) m_CABACEstimator->emt_cu_flag( currCU );
 #else
@@ -1174,9 +1156,7 @@ void IntraSearch::xIntraCodingTUBlock(TransformUnit &tu, const ComponentID &comp
   const bool           bUseCrossCPrediction = pps.getPpsRangeExtension().getCrossComponentPredictionEnabledFlag() && isChroma( compID ) && PU::isChromaIntraModeCrossCheckMode( pu ) && checkCrossCPrediction;
   const bool           ccUseRecoResi        = m_pcEncCfg->getUseReconBasedCrossCPredictionEstimate();
 
-#if JVET_K1000_SIMPLIFIED_EMT
   const uint8_t          transformIndex       = tu.cu->emtFlag && compID == COMPONENT_Y ? tu.emtIdx : DCT2_EMT ;
-#endif
 
   //===== init availability pattern =====
   PelBuf sharedPredTS( m_pSharedPredTransformSkip[compID], area );
@@ -1252,12 +1232,7 @@ void IntraSearch::xIntraCodingTUBlock(TransformUnit &tu, const ComponentID &comp
 
   m_pcTrQuant->transformNxN(tu, compID, cQP, uiAbsSum, m_CABACEstimator->getCtx());
 
-#if JVET_K1000_SIMPLIFIED_EMT
-#if JVET_K1000_SIMPLIFIED_EMT
   if( transformIndex != DCT2_EMT && ( !tu.transformSkip[COMPONENT_Y] ) ) //this can only be true if compID is luma
-#else
-  if( transformIndex != DCT2_EMT && transformIndex != DCT2_HEVC && ( !tu.transformSkip[COMPONENT_Y] ) ) //this can only be true if compID is luma
-#endif
   {
     *numSig = 0;
     TCoeff* coeffBuffer = tu.getCoeffs(compID).buf;
@@ -1278,7 +1253,6 @@ void IntraSearch::xIntraCodingTUBlock(TransformUnit &tu, const ComponentID &comp
       return;
     }
   }
-#endif
 
   DTRACE( g_trace_ctx, D_TU_ABS_SUM, "%d: comp=%d, abssum=%d\n", DTRACE_GET_COUNTER( g_trace_ctx, D_TU_ABS_SUM ), compID, uiAbsSum );
 
@@ -1346,14 +1320,8 @@ void IntraSearch::xRecurIntraCodingLumaQT( CodingStructure &cs, Partitioner &par
   uint64_t     singleFracBits                     = 0;
   bool       checkTransformSkip                 = pps.getUseTransformSkip();
   int        bestModeId[MAX_NUM_COMPONENT]      = {0, 0, 0};
-#if JVET_K1000_SIMPLIFIED_EMT
   uint8_t      nNumTransformCands                 = cu.emtFlag ? 4 : 1; //4 is the number of transforms of emt
-#else
-  uint8_t      nNumTransformCands                 = 1;
-#endif
-#if JVET_K1000_SIMPLIFIED_EMT
   bool       isAllIntra                         = m_pcEncCfg->getIntraPeriod() == 1;
-#endif
 
   uint8_t numTransformIndexCands                  = nNumTransformCands;
 
@@ -1387,9 +1355,7 @@ void IntraSearch::xRecurIntraCodingLumaQT( CodingStructure &cs, Partitioner &par
 
     checkTransformSkip &= TU::hasTransformSkipFlag( *tu.cs, tu.Y() );
     checkTransformSkip &= !cu.transQuantBypass;
-#if JVET_K1000_SIMPLIFIED_EMT
     checkTransformSkip &= !cu.emtFlag;
-#endif
 
     CHECK( !tu.Y().valid(), "Invalid TU" );
 
@@ -1421,9 +1387,7 @@ void IntraSearch::xRecurIntraCodingLumaQT( CodingStructure &cs, Partitioner &par
       tmpTU = &saveCS.addTU(currArea, partitioner.chType);
     }
 
-#if JVET_K1000_SIMPLIFIED_EMT
     bool cbfBestMode = false;
-#endif
 
 
     for( int modeId = firstCheckId; modeId <= lastCheckId; modeId++ )
@@ -1437,12 +1401,9 @@ void IntraSearch::xRecurIntraCodingLumaQT( CodingStructure &cs, Partitioner &par
         }
       }
 
-#if JVET_K1000_SIMPLIFIED_EMT
       uint8_t transformIndex = modeId;
-#endif
 
 
-#if JVET_K1000_SIMPLIFIED_EMT
       if( ( transformIndex < lastCheckId ) || ( ( transformIndex == lastCheckId ) && !checkTransformSkip ) ) //we avoid this if the mode is transformSkip
       {
         // Skip checking other transform candidates if zero CBF is encountered and it is the best transform so far
@@ -1458,7 +1419,6 @@ void IntraSearch::xRecurIntraCodingLumaQT( CodingStructure &cs, Partitioner &par
         }
 #endif
       }
-#endif
 
       if ((modeId != firstCheckId) && isNotOnlyOneMode)
       {
@@ -1477,12 +1437,10 @@ void IntraSearch::xRecurIntraCodingLumaQT( CodingStructure &cs, Partitioner &par
         default0Save1Load2 = 2;
       }
 
-#if JVET_K1000_SIMPLIFIED_EMT
       if (cu.emtFlag)
       {
         tu.emtIdx = transformIndex;
       }
-#endif
       if( !checkTransformSkip )
       {
         tu.transformSkip[COMPONENT_Y] = false;
@@ -1496,20 +1454,12 @@ void IntraSearch::xRecurIntraCodingLumaQT( CodingStructure &cs, Partitioner &par
 
       //----- determine rate and r-d cost -----
       //the condition (transformIndex != DCT2_EMT) seems to be irrelevant, since DCT2_EMT=7 and the highest value of transformIndex is 4
-#if JVET_K1000_SIMPLIFIED_EMT
 #if ENABLE_BMS
       if( ( modeId == lastCheckId && checkTransformSkip && !TU::getCbfAtDepth( tu, COMPONENT_Y, currDepth ) )
         || ( tu.emtIdx > 0 && ( checkTransformSkip ? transformIndex != lastCheckId : true ) && tu.emtIdx != DCT2_EMT && numSig <= g_EmtSigNumThr ) )
 #else
       if( ( modeId == lastCheckId && checkTransformSkip && !TU::getCbf( tu, COMPONENT_Y ) )
         || ( tu.emtIdx > 0 && ( checkTransformSkip ? transformIndex != lastCheckId : true ) && tu.emtIdx != DCT2_EMT && numSig <= g_EmtSigNumThr ) )
-#endif
-#else
-#if ENABLE_BMS
-      if( ( modeId == lastCheckId && checkTransformSkip && !TU::getCbfAtDepth( tu, COMPONENT_Y, currDepth ) ) )
-#else
-      if( ( modeId == lastCheckId && checkTransformSkip && !TU::getCbf( tu, COMPONENT_Y ) ) )
-#endif
 #endif
       {
         //In order not to code TS flag when cbf is zero, the case for TS with cbf being zero is forbidden.
@@ -1528,13 +1478,11 @@ void IntraSearch::xRecurIntraCodingLumaQT( CodingStructure &cs, Partitioner &par
         singleFracBits    = singleTmpFracBits;
 
         bestModeId[COMPONENT_Y] = modeId;
-#if JVET_K1000_SIMPLIFIED_EMT
 #if ENABLE_BMS
         cbfBestMode       = TU::getCbfAtDepth( tu, COMPONENT_Y, currDepth );
 #else
         cbfBestMode       = TU::getCbf( tu, COMPONENT_Y );
 #endif
-#endif
 
 
         if( bestModeId[COMPONENT_Y] != lastCheckId )
diff --git a/source/Lib/EncoderLib/IntraSearch.h b/source/Lib/EncoderLib/IntraSearch.h
index 90e9fd2636eee2320fba6cef72ede5b9eaae2ac0..df9b32895d6863179d67cc04b63516f5ba0b15d3 100644
--- a/source/Lib/EncoderLib/IntraSearch.h
+++ b/source/Lib/EncoderLib/IntraSearch.h
@@ -77,13 +77,11 @@ private:
 
   CodingStructure **m_pSaveCS;
 
-#if JVET_K1000_SIMPLIFIED_EMT
   //cost variables for the EMT algorithm and new modes list
   double m_bestModeCostStore[4];                                    // RD cost of the best mode for each PU using DCT2
   double m_modeCostStore    [4][NUM_LUMA_MODE];                         // RD cost of each mode for each PU using DCT2
   uint32_t   m_savedRdModeList  [4][NUM_LUMA_MODE], m_savedNumRdModes[4];
 
-#endif
 protected:
   // interface to option
   EncCfg*         m_pcEncCfg;
diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp
index 9a63d03636d2bf261dc7842fd32118a446ce8f31..64386a010c4c510afd96f4f88495189994779735 100644
--- a/source/Lib/EncoderLib/VLCWriter.cpp
+++ b/source/Lib/EncoderLib/VLCWriter.cpp
@@ -556,10 +556,8 @@ void HLSWriter::codeSPSNext( const SPSNext& spsNext, const bool usePCM )
 #if JVET_K0190
   WRITE_FLAG( spsNext.getUseLMChroma() ? 1 : 0,                                                 "lm_chroma_enabled_flag" );
 #endif
-#if JVET_K1000_SIMPLIFIED_EMT
   WRITE_FLAG( spsNext.getUseIntraEMT() ? 1 : 0,                                                 "emt_intra_enabled_flag" );
   WRITE_FLAG( spsNext.getUseInterEMT() ? 1 : 0,                                                 "emt_inter_enabled_flag" );
-#endif
 #if JVET_K_AFFINE
   WRITE_FLAG( spsNext.getUseAffine() ? 1 : 0,                                                   "affine_flag" );
 #if JVET_K0337_AFFINE_6PARA