void Parse(Stream s)
        {
            var br = new BinaryReader(s);

            this.version = br.ReadUInt32();
            this.commonA = new CatalogCommon(kRecommendedApiVersion, this.OnResourceChanged, s);
            this.unk01   = br.ReadByte();
            this.unk02   = br.ReadByte();
            if (s.Position < (s.Length))
            {
                this.cblkEntries = new CBLKEntryList(this.OnResourceChanged, s);
                hasCBLKEntries   = true;
            }
            else
            {
                hasCBLKEntries = false;
            }
        }
        protected override Stream UnParse()
        {
            var s  = new MemoryStream();
            var bw = new BinaryWriter(s);

            bw.Write(this.version);
            if (this.commonA == null)
            {
                this.commonA = new CatalogCommon(kRecommendedApiVersion, this.OnResourceChanged);
            }
            this.commonA.UnParse(s);
            bw.Write(this.unk01);
            bw.Write(this.unk02);
            if (hasCBLKEntries == true)
            {
                if (this.cblkEntries == null)
                {
                    this.cblkEntries = new CBLKEntryList(this.OnResourceChanged);
                }
                this.cblkEntries.UnParse(s);
            }
            return(s);
        }