protected override void InternalParse()
        {
            m_template = new QuestTemplate();

            int entry = Reader.ReadInt32();
            if (entry < 0)
            {
                Output.AppendLine("Entry: " + entry);
                return;
            }

            m_template.entry                    = entry;
            m_template.doubleEntry              = m_template.entry;
            m_template.Method                   = Reader.ReadUInt32();
            m_template.QuestLevel               = Reader.ReadInt32();
            m_template.MinLevel                 = Reader.ReadInt32();
            m_template.ZoneOrSort               = Reader.ReadInt32();
            m_template.Type                     = Reader.ReadUInt32();
            m_template.SuggestedPlayers         = Reader.ReadUInt32();
            m_template.RepObjectiveFaction1     = Reader.ReadUInt32();
            m_template.RepObjectiveValue1       = Reader.ReadInt32();
            m_template.RepObjectiveFaction2     = Reader.ReadUInt32();
            m_template.RepObjectiveValue2       = Reader.ReadInt32();
            m_template.NextQuestInChain         = Reader.ReadUInt32();
            m_template.RewXPId                  = Reader.ReadInt32();
            m_template.RewOrReqMoney            = Reader.ReadInt32();
            m_template.RewMoneyMaxLevel         = Reader.ReadUInt32();
            m_template.RewSpell                 = Reader.ReadUInt32();
            m_template.RewSpellCast             = Reader.ReadUInt32();
            m_template.RewHonorAddition         = Reader.ReadUInt32();
            m_template.RewHonorMultiplier       = Reader.ReadSingle();
            m_template.SrcItemId                = Reader.ReadUInt32();
            m_template.QuestFlags1              = Reader.ReadUInt32();
            m_template.QuestFlags2              = Reader.ReadUInt32();
            m_template.CharTitleId              = Reader.ReadInt32();
            m_template.PlayersSlain             = Reader.ReadInt32();
            m_template.BonusTalents             = Reader.ReadInt32();
            m_template.BonusArenaPoints         = Reader.ReadInt32();
            m_template.skill_reward             = Reader.ReadUInt32();
            m_template.skill_points_reward      = Reader.ReadUInt32();
            m_template.unk1                     = Reader.ReadUInt32();
            m_template.unk2                     = Reader.ReadUInt32();
            m_template.unk3                     = Reader.ReadUInt32();
            m_template.RewItemId1               = Reader.ReadInt32();
            m_template.RewItemCount1            = Reader.ReadUInt32();
            m_template.RewItemId2               = Reader.ReadInt32();
            m_template.RewItemCount2            = Reader.ReadUInt32();
            m_template.RewItemId3               = Reader.ReadInt32();
            m_template.RewItemCount3            = Reader.ReadUInt32();
            m_template.RewItemId4               = Reader.ReadInt32();
            m_template.RewItemCount4            = Reader.ReadUInt32();
            m_template.RewChoiceItemId1         = Reader.ReadUInt32();
            m_template.RewChoiceItemCount1      = Reader.ReadUInt32();
            m_template.RewChoiceItemId2         = Reader.ReadUInt32();
            m_template.RewChoiceItemCount2      = Reader.ReadUInt32();
            m_template.RewChoiceItemId3         = Reader.ReadUInt32();
            m_template.RewChoiceItemCount3      = Reader.ReadUInt32();
            m_template.RewChoiceItemId4         = Reader.ReadUInt32();
            m_template.RewChoiceItemCount4      = Reader.ReadUInt32();
            m_template.RewChoiceItemId5         = Reader.ReadUInt32();
            m_template.RewChoiceItemCount5      = Reader.ReadUInt32();
            m_template.RewChoiceItemId6         = Reader.ReadUInt32();
            m_template.RewChoiceItemCount6      = Reader.ReadUInt32();
            m_template.RawFactionId1            = Reader.ReadUInt32();
            m_template.RawFactionId2            = Reader.ReadUInt32();
            m_template.RawFactionId3            = Reader.ReadUInt32();
            m_template.RawFactionId4            = Reader.ReadUInt32();
            m_template.RawFactionId5            = Reader.ReadUInt32();
            m_template.RawFactionVal1           = Reader.ReadInt32();
            m_template.RawFactionVal2           = Reader.ReadInt32();
            m_template.RawFactionVal3           = Reader.ReadInt32();
            m_template.RawFactionVal4           = Reader.ReadInt32();
            m_template.RawFactionVal5           = Reader.ReadInt32();
            m_template.RawFactionValOverride1   = Reader.ReadUInt32();
            m_template.RawFactionValOverride2   = Reader.ReadUInt32();
            m_template.RawFactionValOverride3   = Reader.ReadUInt32();
            m_template.RawFactionValOverride4   = Reader.ReadUInt32();
            m_template.RawFactionValOverride5   = Reader.ReadUInt32();
            m_template.PointMapId               = Reader.ReadUInt32();
            m_template.PointX                   = Reader.ReadSingle();
            m_template.PointY                   = Reader.ReadSingle();
            m_template.PointOpt                 = Reader.ReadInt32();
            m_template.Title                    = Reader.ReadCString();
            m_template.Objectives               = Reader.ReadCString();
            m_template.Details                  = Reader.ReadCString();
            m_template.EndText                  = Reader.ReadCString();
            m_template.CompletedText            = Reader.ReadCString();
            m_template.ReqCreatureOrGOId1       = Reader.ReadInt32();
            m_template.ReqCreatureOrGOCount1    = Reader.ReadUInt32();
            m_template.ReqSourceId1             = Reader.ReadInt32();
            m_template.ReqSourceIdMaxCount1     = Reader.ReadUInt32();
            m_template.ReqCreatureOrGOId2       = Reader.ReadInt32();
            m_template.ReqCreatureOrGOCount2    = Reader.ReadUInt32();
            m_template.ReqSourceId2             = Reader.ReadInt32();
            m_template.ReqSourceIdMaxCount2     = Reader.ReadUInt32();
            m_template.ReqCreatureOrGOId3       = Reader.ReadInt32();
            m_template.ReqCreatureOrGOCount3    = Reader.ReadUInt32();
            m_template.ReqSourceId3             = Reader.ReadInt32();
            m_template.ReqSourceIdMaxCount3     = Reader.ReadUInt32();
            m_template.ReqCreatureOrGOId4       = Reader.ReadInt32();
            m_template.ReqCreatureOrGOCount4    = Reader.ReadUInt32();
            m_template.ReqSourceId4             = Reader.ReadInt32();
            m_template.ReqSourceIdMaxCount4     = Reader.ReadUInt32();
            m_template.ReqItemId1               = Reader.ReadUInt32();
            m_template.ReqItemCount1            = Reader.ReadUInt32();
            m_template.ReqItemId2               = Reader.ReadUInt32();
            m_template.ReqItemCount2            = Reader.ReadUInt32();
            m_template.ReqItemId3               = Reader.ReadUInt32();
            m_template.ReqItemCount3            = Reader.ReadUInt32();
            m_template.ReqItemId4               = Reader.ReadUInt32();
            m_template.ReqItemCount4            = Reader.ReadUInt32();
            m_template.ReqItemId5               = Reader.ReadUInt32();
            m_template.ReqItemCount5            = Reader.ReadUInt32();
            m_template.ReqItemId6               = Reader.ReadUInt32();
            m_template.ReqItemCount6            = Reader.ReadUInt32();
            m_template.unk4                     = Reader.ReadUInt32();
            m_template.ObjectiveText1           = Reader.ReadCString();
            m_template.ObjectiveText2           = Reader.ReadCString();
            m_template.ObjectiveText3           = Reader.ReadCString();
            m_template.ObjectiveText4           = Reader.ReadCString();
            m_template.RewCurrency1             = Reader.ReadUInt32();
            m_template.RewCurrencyCount1        = Reader.ReadUInt32();
            m_template.RewCurrency2             = Reader.ReadUInt32();
            m_template.RewCurrencyCount2        = Reader.ReadUInt32();
            m_template.RewCurrency3             = Reader.ReadUInt32();
            m_template.RewCurrencyCount3        = Reader.ReadUInt32();
            m_template.RewCurrency4             = Reader.ReadUInt32();
            m_template.RewCurrencyCount4        = Reader.ReadUInt32();
            m_template.ReqCurrency1             = Reader.ReadUInt32();
            m_template.ReqCurrencyCount1        = Reader.ReadUInt32();
            m_template.ReqCurrency2             = Reader.ReadUInt32();
            m_template.ReqCurrencyCount2        = Reader.ReadUInt32();
            m_template.ReqCurrency3             = Reader.ReadUInt32();
            m_template.ReqCurrencyCount3        = Reader.ReadUInt32();
            m_template.ReqCurrency4             = Reader.ReadUInt32();
            m_template.ReqCurrencyCount4        = Reader.ReadUInt32();
            m_template.npcframe_accept_text1    = Reader.ReadCString();
            m_template.npcframe_accept_text2    = Reader.ReadCString();
            m_template.npcframe_handin_text1    = Reader.ReadCString();
            m_template.npcframe_handin_text2    = Reader.ReadCString();
            m_template.unk5                     = Reader.ReadUInt32();
            m_template.unk6                     = Reader.ReadUInt32();

            Output.AppendLine("entry: " +                  m_template.entry);
            //Output.AppendLine("doubleEntry: " +            qt.doubleEntry); // cache struct
            Output.AppendLine("Method: " +                 m_template.Method);
            Output.AppendLine("QuestLevel: " +             m_template.QuestLevel);
            Output.AppendLine("MinLevel: " +               m_template.MinLevel);
            Output.AppendLine("ZoneOrSort: " +             m_template.ZoneOrSort);
            Output.AppendLine("Type: " +                   m_template.Type);
            Output.AppendLine("SuggestedPlayers: " +       m_template.SuggestedPlayers);
            Output.AppendLine("RepObjectiveFaction1: " +   m_template.RepObjectiveFaction1);
            Output.AppendLine("RepObjectiveValue1: " +     m_template.RepObjectiveValue1);
            Output.AppendLine("RepObjectiveFaction2: " +   m_template.RepObjectiveFaction2);
            Output.AppendLine("RepObjectiveValue2: " +     m_template.RepObjectiveValue2);
            Output.AppendLine("NextQuestInChain: " +       m_template.NextQuestInChain);
            Output.AppendLine("RewXPId: " +                m_template.RewXPId);
            Output.AppendLine("RewOrReqMoney: " +          m_template.RewOrReqMoney);
            Output.AppendLine("RewMoneyMaxLevel: " +       m_template.RewMoneyMaxLevel);
            Output.AppendLine("RewSpell: " +               m_template.RewSpell);
            Output.AppendLine("RewSpellCast: " +           m_template.RewSpellCast);
            Output.AppendLine("RewHonorAddition: " +       m_template.RewHonorAddition);
            Output.AppendLine("RewHonorMultiplier: " +     m_template.RewHonorMultiplier);
            Output.AppendLine("SrcItemId: " +              m_template.SrcItemId);
            Output.AppendLine("QuestFlags1: " +            m_template.QuestFlags1);
            Output.AppendLine("QuestFlags2: " +            m_template.QuestFlags2);
            Output.AppendLine("CharTitleId: " +            m_template.CharTitleId);
            Output.AppendLine("PlayersSlain: " +           m_template.PlayersSlain);
            Output.AppendLine("BonusTalents: " +           m_template.BonusTalents);
            Output.AppendLine("BonusArenaPoints: " +       m_template.BonusArenaPoints);
            Output.AppendLine("skill_reward: " +           m_template.skill_reward);
            Output.AppendLine("skill_points_reward: " +    m_template.skill_points_reward);
            Output.AppendLine("unk1: " +                   m_template.unk1);
            Output.AppendLine("unk2: " +                   m_template.unk2);
            Output.AppendLine("unk3: " +                   m_template.unk3);
            Output.AppendLine("RewItemId1: " +             m_template.RewItemId1);
            Output.AppendLine("RewItemCount1: " +          m_template.RewItemCount1);
            Output.AppendLine("RewItemId2: " +             m_template.RewItemId2);
            Output.AppendLine("RewItemCount2: " +          m_template.RewItemCount2);
            Output.AppendLine("RewItemId3: " +             m_template.RewItemId3);
            Output.AppendLine("RewItemCount3: " +          m_template.RewItemCount3);
            Output.AppendLine("RewItemId4: " +             m_template.RewItemId4);
            Output.AppendLine("RewItemCount4: " +          m_template.RewItemCount4);
            Output.AppendLine("RewChoiceItemId1: " +       m_template.RewChoiceItemId1);
            Output.AppendLine("RewChoiceItemCount1: " +    m_template.RewChoiceItemCount1);
            Output.AppendLine("RewChoiceItemId2: " +       m_template.RewChoiceItemId2);
            Output.AppendLine("RewChoiceItemCount2: " +    m_template.RewChoiceItemCount2);
            Output.AppendLine("RewChoiceItemId3: " +       m_template.RewChoiceItemId3);
            Output.AppendLine("RewChoiceItemCount3: " +    m_template.RewChoiceItemCount3);
            Output.AppendLine("RewChoiceItemId4: " +       m_template.RewChoiceItemId4);
            Output.AppendLine("RewChoiceItemCount4: " +    m_template.RewChoiceItemCount4);
            Output.AppendLine("RewChoiceItemId5: " +       m_template.RewChoiceItemId5);
            Output.AppendLine("RewChoiceItemCount5: " +    m_template.RewChoiceItemCount5);
            Output.AppendLine("RewChoiceItemId6: " +       m_template.RewChoiceItemId6);
            Output.AppendLine("RewChoiceItemCount6: " +    m_template.RewChoiceItemCount6);
            Output.AppendLine("RawFactionId1: " +          m_template.RawFactionId1);
            Output.AppendLine("RawFactionId2: " +          m_template.RawFactionId2);
            Output.AppendLine("RawFactionId3: " +          m_template.RawFactionId3);
            Output.AppendLine("RawFactionId4: " +          m_template.RawFactionId4);
            Output.AppendLine("RawFactionId5: " +          m_template.RawFactionId5);
            Output.AppendLine("RawFactionVal1: " +         m_template.RawFactionVal1);
            Output.AppendLine("RawFactionVal2: " +         m_template.RawFactionVal2);
            Output.AppendLine("RawFactionVal3: " +         m_template.RawFactionVal3);
            Output.AppendLine("RawFactionVal4: " +         m_template.RawFactionVal4);
            Output.AppendLine("RawFactionVal5: " +         m_template.RawFactionVal5);
            Output.AppendLine("RawFactionValOverride1: " + m_template.RawFactionValOverride1);
            Output.AppendLine("RawFactionValOverride2: " + m_template.RawFactionValOverride2);
            Output.AppendLine("RawFactionValOverride3: " + m_template.RawFactionValOverride3);
            Output.AppendLine("RawFactionValOverride4: " + m_template.RawFactionValOverride4);
            Output.AppendLine("RawFactionValOverride5: " + m_template.RawFactionValOverride5);
            Output.AppendLine("PointMapId: " +             m_template.PointMapId);
            Output.AppendLine("PointX: " +                 m_template.PointX);
            Output.AppendLine("PointY: " +                 m_template.PointY);
            Output.AppendLine("PointOpt: " +               m_template.PointOpt);
            Output.AppendLine("Title: " +                  m_template.Title);
            Output.AppendLine("Objectives: " +             m_template.Objectives);
            Output.AppendLine("Details: " +                m_template.Details);
            Output.AppendLine("EndText: " +                m_template.EndText);
            Output.AppendLine("CompletedText: " +          m_template.CompletedText);
            Output.AppendLine("ReqCreatureOrGOId1: " +     m_template.ReqCreatureOrGOId1);
            Output.AppendLine("ReqCreatureOrGOCount1: " +  m_template.ReqCreatureOrGOCount1);
            Output.AppendLine("ReqSourceId1: " +           m_template.ReqSourceId1);
            Output.AppendLine("ReqSourceIdMaxCount1: " +   m_template.ReqSourceIdMaxCount1);
            Output.AppendLine("ReqCreatureOrGOId2: " +     m_template.ReqCreatureOrGOId2);
            Output.AppendLine("ReqCreatureOrGOCount2: " +  m_template.ReqCreatureOrGOCount2);
            Output.AppendLine("ReqSourceId2: " +           m_template.ReqSourceId2);
            Output.AppendLine("ReqSourceIdMaxCount2: " +   m_template.ReqSourceIdMaxCount2);
            Output.AppendLine("ReqCreatureOrGOId3: " +     m_template.ReqCreatureOrGOId3);
            Output.AppendLine("ReqCreatureOrGOCount3: " +  m_template.ReqCreatureOrGOCount3);
            Output.AppendLine("ReqSourceId3: " +           m_template.ReqSourceId3);
            Output.AppendLine("ReqSourceIdMaxCount3: " +   m_template.ReqSourceIdMaxCount3);
            Output.AppendLine("ReqCreatureOrGOId4: " +     m_template.ReqCreatureOrGOId4);
            Output.AppendLine("ReqCreatureOrGOCount4: " +  m_template.ReqCreatureOrGOCount4);
            Output.AppendLine("ReqSourceId4: " +           m_template.ReqSourceId4);
            Output.AppendLine("ReqSourceIdMaxCount4: " +   m_template.ReqSourceIdMaxCount4);
            Output.AppendLine("ReqItemId1: " +             m_template.ReqItemId1);
            Output.AppendLine("ReqItemCount1: " +          m_template.ReqItemCount1);
            Output.AppendLine("ReqItemId2: " +             m_template.ReqItemId2);
            Output.AppendLine("ReqItemCount2: " +          m_template.ReqItemCount2);
            Output.AppendLine("ReqItemId3: " +             m_template.ReqItemId3);
            Output.AppendLine("ReqItemCount3: " +          m_template.ReqItemCount3);
            Output.AppendLine("ReqItemId4: " +             m_template.ReqItemId4);
            Output.AppendLine("ReqItemCount4: " +          m_template.ReqItemCount4);
            Output.AppendLine("ReqItemId5: " +             m_template.ReqItemId5);
            Output.AppendLine("ReqItemCount5: " +          m_template.ReqItemCount5);
            Output.AppendLine("ReqItemId6: " +             m_template.ReqItemId6);
            Output.AppendLine("ReqItemCount6: " +          m_template.ReqItemCount6);
            Output.AppendLine("unk4: " +                   m_template.unk4);
            Output.AppendLine("ObjectiveText1: " +         m_template.ObjectiveText1);
            Output.AppendLine("ObjectiveText2: " +         m_template.ObjectiveText2);
            Output.AppendLine("ObjectiveText3: " +         m_template.ObjectiveText3);
            Output.AppendLine("ObjectiveText4: " +         m_template.ObjectiveText4);
            Output.AppendLine("RewCurrency1: " +           m_template.RewCurrency1);
            Output.AppendLine("RewCurrencyCount1: " +      m_template.RewCurrencyCount1);
            Output.AppendLine("RewCurrency2: " +           m_template.RewCurrency2);
            Output.AppendLine("RewCurrencyCount2: " +      m_template.RewCurrencyCount2);
            Output.AppendLine("RewCurrency3: " +           m_template.RewCurrency3);
            Output.AppendLine("RewCurrencyCount3: " +      m_template.RewCurrencyCount3);
            Output.AppendLine("RewCurrency4: " +           m_template.RewCurrency4);
            Output.AppendLine("RewCurrencyCount4: " +      m_template.RewCurrencyCount4);
            Output.AppendLine("ReqCurrency1: " +           m_template.ReqCurrency1);
            Output.AppendLine("ReqCurrencyCount1: " +      m_template.ReqCurrencyCount1);
            Output.AppendLine("ReqCurrency2: " +           m_template.ReqCurrency2);
            Output.AppendLine("ReqCurrencyCount2: " +      m_template.ReqCurrencyCount2);
            Output.AppendLine("ReqCurrency3: " +           m_template.ReqCurrency3);
            Output.AppendLine("ReqCurrencyCount3: " +      m_template.ReqCurrencyCount3);
            Output.AppendLine("ReqCurrency4: " +           m_template.ReqCurrency4);
            Output.AppendLine("ReqCurrencyCount4: " +      m_template.ReqCurrencyCount4);
            Output.AppendLine("npcframe_accept_text1: " +  m_template.npcframe_accept_text1);
            Output.AppendLine("npcframe_accept_text2: " +  m_template.npcframe_accept_text2);
            Output.AppendLine("npcframe_handin_text1: " +  m_template.npcframe_handin_text1);
            Output.AppendLine("npcframe_handin_text2: " +  m_template.npcframe_handin_text2);
            Output.AppendLine("unk5: " +                   m_template.unk5);
            Output.AppendLine("unk6: " +                   m_template.unk6);
        }
        protected override void InternalParse()
        {
            m_template = new QuestTemplate();

            int entry = Reader.ReadInt32();

            if (entry < 0)
            {
                Output.AppendLine("Entry: " + entry);
                return;
            }

            m_template.entry                  = entry;
            m_template.doubleEntry            = m_template.entry;
            m_template.Method                 = Reader.ReadUInt32();
            m_template.QuestLevel             = Reader.ReadInt32();
            m_template.MinLevel               = Reader.ReadInt32();
            m_template.ZoneOrSort             = Reader.ReadInt32();
            m_template.Type                   = Reader.ReadUInt32();
            m_template.SuggestedPlayers       = Reader.ReadUInt32();
            m_template.RepObjectiveFaction1   = Reader.ReadUInt32();
            m_template.RepObjectiveValue1     = Reader.ReadInt32();
            m_template.RepObjectiveFaction2   = Reader.ReadUInt32();
            m_template.RepObjectiveValue2     = Reader.ReadInt32();
            m_template.NextQuestInChain       = Reader.ReadUInt32();
            m_template.RewXPId                = Reader.ReadInt32();
            m_template.RewOrReqMoney          = Reader.ReadInt32();
            m_template.RewMoneyMaxLevel       = Reader.ReadUInt32();
            m_template.RewSpell               = Reader.ReadUInt32();
            m_template.RewSpellCast           = Reader.ReadUInt32();
            m_template.RewHonorAddition       = Reader.ReadUInt32();
            m_template.RewHonorMultiplier     = Reader.ReadSingle();
            m_template.SrcItemId              = Reader.ReadUInt32();
            m_template.QuestFlags1            = Reader.ReadUInt32();
            m_template.QuestFlags2            = Reader.ReadUInt32();
            m_template.CharTitleId            = Reader.ReadInt32();
            m_template.PlayersSlain           = Reader.ReadInt32();
            m_template.BonusTalents           = Reader.ReadInt32();
            m_template.BonusArenaPoints       = Reader.ReadInt32();
            m_template.skill_reward           = Reader.ReadUInt32();
            m_template.skill_points_reward    = Reader.ReadUInt32();
            m_template.unk1                   = Reader.ReadUInt32();
            m_template.unk2                   = Reader.ReadUInt32();
            m_template.unk3                   = Reader.ReadUInt32();
            m_template.RewItemId1             = Reader.ReadInt32();
            m_template.RewItemCount1          = Reader.ReadUInt32();
            m_template.RewItemId2             = Reader.ReadInt32();
            m_template.RewItemCount2          = Reader.ReadUInt32();
            m_template.RewItemId3             = Reader.ReadInt32();
            m_template.RewItemCount3          = Reader.ReadUInt32();
            m_template.RewItemId4             = Reader.ReadInt32();
            m_template.RewItemCount4          = Reader.ReadUInt32();
            m_template.RewChoiceItemId1       = Reader.ReadUInt32();
            m_template.RewChoiceItemCount1    = Reader.ReadUInt32();
            m_template.RewChoiceItemId2       = Reader.ReadUInt32();
            m_template.RewChoiceItemCount2    = Reader.ReadUInt32();
            m_template.RewChoiceItemId3       = Reader.ReadUInt32();
            m_template.RewChoiceItemCount3    = Reader.ReadUInt32();
            m_template.RewChoiceItemId4       = Reader.ReadUInt32();
            m_template.RewChoiceItemCount4    = Reader.ReadUInt32();
            m_template.RewChoiceItemId5       = Reader.ReadUInt32();
            m_template.RewChoiceItemCount5    = Reader.ReadUInt32();
            m_template.RewChoiceItemId6       = Reader.ReadUInt32();
            m_template.RewChoiceItemCount6    = Reader.ReadUInt32();
            m_template.RawFactionId1          = Reader.ReadUInt32();
            m_template.RawFactionId2          = Reader.ReadUInt32();
            m_template.RawFactionId3          = Reader.ReadUInt32();
            m_template.RawFactionId4          = Reader.ReadUInt32();
            m_template.RawFactionId5          = Reader.ReadUInt32();
            m_template.RawFactionVal1         = Reader.ReadInt32();
            m_template.RawFactionVal2         = Reader.ReadInt32();
            m_template.RawFactionVal3         = Reader.ReadInt32();
            m_template.RawFactionVal4         = Reader.ReadInt32();
            m_template.RawFactionVal5         = Reader.ReadInt32();
            m_template.RawFactionValOverride1 = Reader.ReadUInt32();
            m_template.RawFactionValOverride2 = Reader.ReadUInt32();
            m_template.RawFactionValOverride3 = Reader.ReadUInt32();
            m_template.RawFactionValOverride4 = Reader.ReadUInt32();
            m_template.RawFactionValOverride5 = Reader.ReadUInt32();
            m_template.PointMapId             = Reader.ReadUInt32();
            m_template.PointX                 = Reader.ReadSingle();
            m_template.PointY                 = Reader.ReadSingle();
            m_template.PointOpt               = Reader.ReadInt32();
            m_template.Title                  = Reader.ReadCString();
            m_template.Objectives             = Reader.ReadCString();
            m_template.Details                = Reader.ReadCString();
            m_template.EndText                = Reader.ReadCString();
            m_template.CompletedText          = Reader.ReadCString();
            m_template.ReqCreatureOrGOId1     = Reader.ReadInt32();
            m_template.ReqCreatureOrGOCount1  = Reader.ReadUInt32();
            m_template.ReqSourceId1           = Reader.ReadInt32();
            m_template.ReqSourceIdMaxCount1   = Reader.ReadUInt32();
            m_template.ReqCreatureOrGOId2     = Reader.ReadInt32();
            m_template.ReqCreatureOrGOCount2  = Reader.ReadUInt32();
            m_template.ReqSourceId2           = Reader.ReadInt32();
            m_template.ReqSourceIdMaxCount2   = Reader.ReadUInt32();
            m_template.ReqCreatureOrGOId3     = Reader.ReadInt32();
            m_template.ReqCreatureOrGOCount3  = Reader.ReadUInt32();
            m_template.ReqSourceId3           = Reader.ReadInt32();
            m_template.ReqSourceIdMaxCount3   = Reader.ReadUInt32();
            m_template.ReqCreatureOrGOId4     = Reader.ReadInt32();
            m_template.ReqCreatureOrGOCount4  = Reader.ReadUInt32();
            m_template.ReqSourceId4           = Reader.ReadInt32();
            m_template.ReqSourceIdMaxCount4   = Reader.ReadUInt32();
            m_template.ReqItemId1             = Reader.ReadUInt32();
            m_template.ReqItemCount1          = Reader.ReadUInt32();
            m_template.ReqItemId2             = Reader.ReadUInt32();
            m_template.ReqItemCount2          = Reader.ReadUInt32();
            m_template.ReqItemId3             = Reader.ReadUInt32();
            m_template.ReqItemCount3          = Reader.ReadUInt32();
            m_template.ReqItemId4             = Reader.ReadUInt32();
            m_template.ReqItemCount4          = Reader.ReadUInt32();
            m_template.ReqItemId5             = Reader.ReadUInt32();
            m_template.ReqItemCount5          = Reader.ReadUInt32();
            m_template.ReqItemId6             = Reader.ReadUInt32();
            m_template.ReqItemCount6          = Reader.ReadUInt32();
            m_template.unk4                   = Reader.ReadUInt32();
            m_template.ObjectiveText1         = Reader.ReadCString();
            m_template.ObjectiveText2         = Reader.ReadCString();
            m_template.ObjectiveText3         = Reader.ReadCString();
            m_template.ObjectiveText4         = Reader.ReadCString();
            m_template.RewCurrency1           = Reader.ReadUInt32();
            m_template.RewCurrencyCount1      = Reader.ReadUInt32();
            m_template.RewCurrency2           = Reader.ReadUInt32();
            m_template.RewCurrencyCount2      = Reader.ReadUInt32();
            m_template.RewCurrency3           = Reader.ReadUInt32();
            m_template.RewCurrencyCount3      = Reader.ReadUInt32();
            m_template.RewCurrency4           = Reader.ReadUInt32();
            m_template.RewCurrencyCount4      = Reader.ReadUInt32();
            m_template.ReqCurrency1           = Reader.ReadUInt32();
            m_template.ReqCurrencyCount1      = Reader.ReadUInt32();
            m_template.ReqCurrency2           = Reader.ReadUInt32();
            m_template.ReqCurrencyCount2      = Reader.ReadUInt32();
            m_template.ReqCurrency3           = Reader.ReadUInt32();
            m_template.ReqCurrencyCount3      = Reader.ReadUInt32();
            m_template.ReqCurrency4           = Reader.ReadUInt32();
            m_template.ReqCurrencyCount4      = Reader.ReadUInt32();
            m_template.npcframe_accept_text1  = Reader.ReadCString();
            m_template.npcframe_accept_text2  = Reader.ReadCString();
            m_template.npcframe_handin_text1  = Reader.ReadCString();
            m_template.npcframe_handin_text2  = Reader.ReadCString();
            m_template.unk5                   = Reader.ReadUInt32();
            m_template.unk6                   = Reader.ReadUInt32();

            Output.AppendLine("entry: " + m_template.entry);
            //Output.AppendLine("doubleEntry: " +            qt.doubleEntry); // cache struct
            Output.AppendLine("Method: " + m_template.Method);
            Output.AppendLine("QuestLevel: " + m_template.QuestLevel);
            Output.AppendLine("MinLevel: " + m_template.MinLevel);
            Output.AppendLine("ZoneOrSort: " + m_template.ZoneOrSort);
            Output.AppendLine("Type: " + m_template.Type);
            Output.AppendLine("SuggestedPlayers: " + m_template.SuggestedPlayers);
            Output.AppendLine("RepObjectiveFaction1: " + m_template.RepObjectiveFaction1);
            Output.AppendLine("RepObjectiveValue1: " + m_template.RepObjectiveValue1);
            Output.AppendLine("RepObjectiveFaction2: " + m_template.RepObjectiveFaction2);
            Output.AppendLine("RepObjectiveValue2: " + m_template.RepObjectiveValue2);
            Output.AppendLine("NextQuestInChain: " + m_template.NextQuestInChain);
            Output.AppendLine("RewXPId: " + m_template.RewXPId);
            Output.AppendLine("RewOrReqMoney: " + m_template.RewOrReqMoney);
            Output.AppendLine("RewMoneyMaxLevel: " + m_template.RewMoneyMaxLevel);
            Output.AppendLine("RewSpell: " + m_template.RewSpell);
            Output.AppendLine("RewSpellCast: " + m_template.RewSpellCast);
            Output.AppendLine("RewHonorAddition: " + m_template.RewHonorAddition);
            Output.AppendLine("RewHonorMultiplier: " + m_template.RewHonorMultiplier);
            Output.AppendLine("SrcItemId: " + m_template.SrcItemId);
            Output.AppendLine("QuestFlags1: " + m_template.QuestFlags1);
            Output.AppendLine("QuestFlags2: " + m_template.QuestFlags2);
            Output.AppendLine("CharTitleId: " + m_template.CharTitleId);
            Output.AppendLine("PlayersSlain: " + m_template.PlayersSlain);
            Output.AppendLine("BonusTalents: " + m_template.BonusTalents);
            Output.AppendLine("BonusArenaPoints: " + m_template.BonusArenaPoints);
            Output.AppendLine("skill_reward: " + m_template.skill_reward);
            Output.AppendLine("skill_points_reward: " + m_template.skill_points_reward);
            Output.AppendLine("unk1: " + m_template.unk1);
            Output.AppendLine("unk2: " + m_template.unk2);
            Output.AppendLine("unk3: " + m_template.unk3);
            Output.AppendLine("RewItemId1: " + m_template.RewItemId1);
            Output.AppendLine("RewItemCount1: " + m_template.RewItemCount1);
            Output.AppendLine("RewItemId2: " + m_template.RewItemId2);
            Output.AppendLine("RewItemCount2: " + m_template.RewItemCount2);
            Output.AppendLine("RewItemId3: " + m_template.RewItemId3);
            Output.AppendLine("RewItemCount3: " + m_template.RewItemCount3);
            Output.AppendLine("RewItemId4: " + m_template.RewItemId4);
            Output.AppendLine("RewItemCount4: " + m_template.RewItemCount4);
            Output.AppendLine("RewChoiceItemId1: " + m_template.RewChoiceItemId1);
            Output.AppendLine("RewChoiceItemCount1: " + m_template.RewChoiceItemCount1);
            Output.AppendLine("RewChoiceItemId2: " + m_template.RewChoiceItemId2);
            Output.AppendLine("RewChoiceItemCount2: " + m_template.RewChoiceItemCount2);
            Output.AppendLine("RewChoiceItemId3: " + m_template.RewChoiceItemId3);
            Output.AppendLine("RewChoiceItemCount3: " + m_template.RewChoiceItemCount3);
            Output.AppendLine("RewChoiceItemId4: " + m_template.RewChoiceItemId4);
            Output.AppendLine("RewChoiceItemCount4: " + m_template.RewChoiceItemCount4);
            Output.AppendLine("RewChoiceItemId5: " + m_template.RewChoiceItemId5);
            Output.AppendLine("RewChoiceItemCount5: " + m_template.RewChoiceItemCount5);
            Output.AppendLine("RewChoiceItemId6: " + m_template.RewChoiceItemId6);
            Output.AppendLine("RewChoiceItemCount6: " + m_template.RewChoiceItemCount6);
            Output.AppendLine("RawFactionId1: " + m_template.RawFactionId1);
            Output.AppendLine("RawFactionId2: " + m_template.RawFactionId2);
            Output.AppendLine("RawFactionId3: " + m_template.RawFactionId3);
            Output.AppendLine("RawFactionId4: " + m_template.RawFactionId4);
            Output.AppendLine("RawFactionId5: " + m_template.RawFactionId5);
            Output.AppendLine("RawFactionVal1: " + m_template.RawFactionVal1);
            Output.AppendLine("RawFactionVal2: " + m_template.RawFactionVal2);
            Output.AppendLine("RawFactionVal3: " + m_template.RawFactionVal3);
            Output.AppendLine("RawFactionVal4: " + m_template.RawFactionVal4);
            Output.AppendLine("RawFactionVal5: " + m_template.RawFactionVal5);
            Output.AppendLine("RawFactionValOverride1: " + m_template.RawFactionValOverride1);
            Output.AppendLine("RawFactionValOverride2: " + m_template.RawFactionValOverride2);
            Output.AppendLine("RawFactionValOverride3: " + m_template.RawFactionValOverride3);
            Output.AppendLine("RawFactionValOverride4: " + m_template.RawFactionValOverride4);
            Output.AppendLine("RawFactionValOverride5: " + m_template.RawFactionValOverride5);
            Output.AppendLine("PointMapId: " + m_template.PointMapId);
            Output.AppendLine("PointX: " + m_template.PointX);
            Output.AppendLine("PointY: " + m_template.PointY);
            Output.AppendLine("PointOpt: " + m_template.PointOpt);
            Output.AppendLine("Title: " + m_template.Title);
            Output.AppendLine("Objectives: " + m_template.Objectives);
            Output.AppendLine("Details: " + m_template.Details);
            Output.AppendLine("EndText: " + m_template.EndText);
            Output.AppendLine("CompletedText: " + m_template.CompletedText);
            Output.AppendLine("ReqCreatureOrGOId1: " + m_template.ReqCreatureOrGOId1);
            Output.AppendLine("ReqCreatureOrGOCount1: " + m_template.ReqCreatureOrGOCount1);
            Output.AppendLine("ReqSourceId1: " + m_template.ReqSourceId1);
            Output.AppendLine("ReqSourceIdMaxCount1: " + m_template.ReqSourceIdMaxCount1);
            Output.AppendLine("ReqCreatureOrGOId2: " + m_template.ReqCreatureOrGOId2);
            Output.AppendLine("ReqCreatureOrGOCount2: " + m_template.ReqCreatureOrGOCount2);
            Output.AppendLine("ReqSourceId2: " + m_template.ReqSourceId2);
            Output.AppendLine("ReqSourceIdMaxCount2: " + m_template.ReqSourceIdMaxCount2);
            Output.AppendLine("ReqCreatureOrGOId3: " + m_template.ReqCreatureOrGOId3);
            Output.AppendLine("ReqCreatureOrGOCount3: " + m_template.ReqCreatureOrGOCount3);
            Output.AppendLine("ReqSourceId3: " + m_template.ReqSourceId3);
            Output.AppendLine("ReqSourceIdMaxCount3: " + m_template.ReqSourceIdMaxCount3);
            Output.AppendLine("ReqCreatureOrGOId4: " + m_template.ReqCreatureOrGOId4);
            Output.AppendLine("ReqCreatureOrGOCount4: " + m_template.ReqCreatureOrGOCount4);
            Output.AppendLine("ReqSourceId4: " + m_template.ReqSourceId4);
            Output.AppendLine("ReqSourceIdMaxCount4: " + m_template.ReqSourceIdMaxCount4);
            Output.AppendLine("ReqItemId1: " + m_template.ReqItemId1);
            Output.AppendLine("ReqItemCount1: " + m_template.ReqItemCount1);
            Output.AppendLine("ReqItemId2: " + m_template.ReqItemId2);
            Output.AppendLine("ReqItemCount2: " + m_template.ReqItemCount2);
            Output.AppendLine("ReqItemId3: " + m_template.ReqItemId3);
            Output.AppendLine("ReqItemCount3: " + m_template.ReqItemCount3);
            Output.AppendLine("ReqItemId4: " + m_template.ReqItemId4);
            Output.AppendLine("ReqItemCount4: " + m_template.ReqItemCount4);
            Output.AppendLine("ReqItemId5: " + m_template.ReqItemId5);
            Output.AppendLine("ReqItemCount5: " + m_template.ReqItemCount5);
            Output.AppendLine("ReqItemId6: " + m_template.ReqItemId6);
            Output.AppendLine("ReqItemCount6: " + m_template.ReqItemCount6);
            Output.AppendLine("unk4: " + m_template.unk4);
            Output.AppendLine("ObjectiveText1: " + m_template.ObjectiveText1);
            Output.AppendLine("ObjectiveText2: " + m_template.ObjectiveText2);
            Output.AppendLine("ObjectiveText3: " + m_template.ObjectiveText3);
            Output.AppendLine("ObjectiveText4: " + m_template.ObjectiveText4);
            Output.AppendLine("RewCurrency1: " + m_template.RewCurrency1);
            Output.AppendLine("RewCurrencyCount1: " + m_template.RewCurrencyCount1);
            Output.AppendLine("RewCurrency2: " + m_template.RewCurrency2);
            Output.AppendLine("RewCurrencyCount2: " + m_template.RewCurrencyCount2);
            Output.AppendLine("RewCurrency3: " + m_template.RewCurrency3);
            Output.AppendLine("RewCurrencyCount3: " + m_template.RewCurrencyCount3);
            Output.AppendLine("RewCurrency4: " + m_template.RewCurrency4);
            Output.AppendLine("RewCurrencyCount4: " + m_template.RewCurrencyCount4);
            Output.AppendLine("ReqCurrency1: " + m_template.ReqCurrency1);
            Output.AppendLine("ReqCurrencyCount1: " + m_template.ReqCurrencyCount1);
            Output.AppendLine("ReqCurrency2: " + m_template.ReqCurrency2);
            Output.AppendLine("ReqCurrencyCount2: " + m_template.ReqCurrencyCount2);
            Output.AppendLine("ReqCurrency3: " + m_template.ReqCurrency3);
            Output.AppendLine("ReqCurrencyCount3: " + m_template.ReqCurrencyCount3);
            Output.AppendLine("ReqCurrency4: " + m_template.ReqCurrency4);
            Output.AppendLine("ReqCurrencyCount4: " + m_template.ReqCurrencyCount4);
            Output.AppendLine("npcframe_accept_text1: " + m_template.npcframe_accept_text1);
            Output.AppendLine("npcframe_accept_text2: " + m_template.npcframe_accept_text2);
            Output.AppendLine("npcframe_handin_text1: " + m_template.npcframe_handin_text1);
            Output.AppendLine("npcframe_handin_text2: " + m_template.npcframe_handin_text2);
            Output.AppendLine("unk5: " + m_template.unk5);
            Output.AppendLine("unk6: " + m_template.unk6);
        }