From 54c7b504d8ac6a56b0e6a14867a020d2f35f1b0f Mon Sep 17 00:00:00 2001 From: Mike Cohen Date: Wed, 7 Feb 2024 04:05:53 +1000 Subject: [PATCH] Implemented long value support I discovered that the source code for ESE was published by Microsoft and so this work is based around reading the original source code. Added more documentation to the file format. --- bin/catalog.go | 9 +- docs/long_value.md | 194 +++++++++++++++++++++++ fixtures/SYSTEM_IDENTITY.golden | 1 + fixtures/WebCacheV01.dat.golden | 2 + fixtures/WindowsEdb.golden | 2 +- fixtures/ntds.dit.golden | 8 +- fixtures/ntds.dit_sd_table.golden | 98 ++++++++++++ parser/catalog.go | 254 +++++++++++++++++++++++------- parser/context.go | 9 +- parser/conversion.spec.yaml | 14 +- parser/debug.go | 12 ++ parser/ese_gen.go | 215 +++++++++++++++++++------ parser/ese_profile.json | 41 ++++- parser/long_values.go | 130 +++++++++++++++ parser/pages.go | 114 ++++++++++---- parser/reader.go | 28 ++++ parser/utils.go | 4 + parser_test.go | 18 ++- 18 files changed, 1002 insertions(+), 151 deletions(-) create mode 100644 docs/long_value.md create mode 100644 fixtures/ntds.dit_sd_table.golden create mode 100644 parser/long_values.go diff --git a/bin/catalog.go b/bin/catalog.go index 9beea4d..1923211 100644 --- a/bin/catalog.go +++ b/bin/catalog.go @@ -11,6 +11,9 @@ import ( var ( catalog_command = app.Command( "catalog", "Dump the catalog") + catalog_command_long_value = catalog_command.Flag( + "long_values", "Also dump long value tables").Bool() + catalog_command_file_arg = catalog_command.Arg( "file", "The image file to inspect", ).Required().OpenFile(os.O_RDONLY, os.FileMode(0666)) @@ -22,7 +25,11 @@ func doCatalog() { catalog, err := parser.ReadCatalog(ese_ctx) kingpin.FatalIfError(err, "Unable to open ese file") - fmt.Printf(catalog.Dump()) + fmt.Printf(catalog.Dump(parser.DumpOptions{ + Indexes: true, + Tables: true, + LongValueTables: *catalog_command_long_value, + })) } func init() { diff --git a/docs/long_value.md b/docs/long_value.md new file mode 100644 index 0000000..5293186 --- /dev/null +++ b/docs/long_value.md @@ -0,0 +1,194 @@ +# ESE Format observations + +Previously this library was based on libesedb which was an excellent +effort to reverse engineer the file format. Since then, Microsoft has +published the source code for the ESE engine. This clarifies a lot of +questions about the file format. + +These are described and implemented here +https://github.com/microsoft/Extensible-Storage-Engine/blob/main/dev/ese/src/ese/lv.cxx + +TODO: This library currently uses variable names based on libesedb but +since we now have the original Microsoft source code it makes sense to +change the names to make them the same as the original source code. + +## Small pages + +From Extensible-Storage-Engine/dev/ese/src/inc/daedef.hxx#L5631 If +page size is less than 8kb then it is considered a small page. There +are a number of changes throughout the format for small page vs large +page support. + +### B trees + +The pages are organized into B trees so we can walk them. + +Example Long Value page from `ntds.dit`. In this case the page size is 0x2000 + +``` +00FD0000 AC CD 8E BF 3E 02 C1 FD 26 3E 01 00 00 00 00 00 ....>...&>...... +00FD0010 00 00 00 00 E8 07 00 00 E4 00 00 00 5B 02 00 00 ............[... +00FD0020 5D 1D 08 00 82 A8 00 00 00 00 00 01 00 00 00 00 ]............... +00FD0030 04 00 00 00 01 00 00 00 74 0F 00 00 08 00 00 00 ........t....... +``` + +The page starts with a PageHeader struct. This has two versions: + +https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/cpage.hxx#L885 + +PGHDR used for pages less than 8kb (small pages) has a size of 40 bytes +PGHDR2 has a size of 80 bytes for larger pages. + +The size of the header depends on the pagesize on which version of header is used. +https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/cpage.hxx#L987 + + +// Todo - these fields should be renamed to correspond with the MS +// source code. + +``` +Page header struct PageHeader @ 0xfd0000: + LastModified: { + struct DBTime @ 0xfd0008: + Hours: 0x3e26 + Min: 0x1 + Sec: 0x0 + } + PreviousPageNumber: 0x0 + NextPageNumber: 0x7e8 + FatherPage: 0xe4 + AvailableDataSize: 0x25b + AvailableDataOffset: 0x1d5d + AvailablePageTag: 0x8 + Flags: 43138 (Leaf,Long) + EndOffset: 0xfd0028 = 0xfd0000 + 40 +``` + +Immediately following the PageHeader we have the external_value: + 00 00 00 01 00 00 00 00 + +This is marked by the first tag. + +### Tags + +The data is stored in the page in a list of values. The index to these +values is stored in a list of Tags at the end of the page. + +``` +00FD1FD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +00FD1FE0 0D 00 50 9D E1 06 6F 96 0D 00 62 96 C9 06 99 8F ..P...o...b..... +00FD1FF0 0D 00 8C 8F 78 0F 14 80 0C 00 08 80 08 00 00 00 ....x........... +``` + +The first tag is always reserved for the "external header". In this +case it is pointing at a value of length 8 bytes immediately after the +page header (Tag offset 0) + +The next tag is decoded as: +``` +ID 2023 Tag struct Tag @ 0xfd1ff8: + _ValueSize: 0xc + _ValueOffset: 0x8008 + ValueOffsetInPage: 0xfd0030 + PageID 2023 Flags 4 +Header struct LongValueHeader @ 0xfd0030: + Flags: Unknown (4) + Key: ^A^@^@^@ +``` + +To calculate the offset within the page (ValueOffsetInPage) we mask +_ValueOffset with 0x7FFF for large pages and 0x1fff for small +pages. This is the offset **after** the end of the header - so in the +above the value's offset is: + +``` +0x8008 & 0x1FFF = 8 +8 + 40 + 0xfd0000 = 0xfd0030 +``` + +See the following calculations: + +https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/ese/cpage.cxx#L1200 +https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/cpage.hxx#L840 +(In the above code Ib - index of buffer, Cb means count buffer) + +The value is stored within the page. This contains the Key and data. +``` +00FD0030 04 00 00 00 01 00 00 00 74 0F 00 00 08 00 00 00 ........t....... +00FD0040 01 00 14 8C 54 0F 00 00 64 0F 00 00 14 00 00 00 ....T...d....... +00FD0050 4C 01 00 00 04 00 38 01 07 00 00 00 07 42 38 00 L.....8......B8. +``` + +### Data Records + +The data fields are stored in a LINE (or node) within the page using +Tags as above. But the data stores a series of REC structs. These are +defined in rec.hxx#284 + +The REC starts with a header then a sequence of fixed length fields +(for columns with a fixed size like ints etc), then variable length +fields (like Text), followed by tagged fields. + +RECHDR: + BYTE fidFixedLastInRec + BYTE fidVarLastInRec + USHORT ibEndOfFixedData // offset relative to start of record + +Here we see it being modified fldmod.cxx#895 + +### Long Value Key + +A key has a prefix and a suffix. It is defined in +https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/daedef.hxx#L1248 + +The key is reversed on LE platforms and is stored in Big Endian on +disk. + +There are two types of keys. The key can be 32 bit (8 byte) or 64 bit +(12 byte). + +### Line + +The ESE code calls the Value within the page a `Line`. + +A Line is a Tagged Value in the page. + +struct LINE { + pv -> pointer to the Value data + cb -> size of the value data + fFlags -> tag flags +} + +// https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/node.hxx#L226 +tag flags can be fNDCompressed = 0x04; + +To get a line from the page call cpage.GetPtr() + +Extracting the key from the line: NDILineToKeydataflags + +The Key has a prefix and suffix part. If the tag fFlags is compressed +(bit 16 is on) then prefix count is the first 4 bytes and it refers to +the external header for the actual data. + +Otherwise, prefix is not used and suffix count is the first 4 bytes +and suffix buffer is the next 4 bytes. + +Examples: + +1. Key is not compressed 0400000001000000740f0000 + Key Prefix : 000001 (Length 0400) + Key Suffix : "" (Length 0000) + Total Key: 00 00 00 00 00 00 00 01 + Data: 000000740f0000 + +2. Key is compressed 080000000100148c540f0000 (external header is 00 00 00 01 00 00 00) + Key Prefix: Length 8 - value is in the external header 00000001000000 + Key Suffix: Length (0000 ) - next 4 bytes (so no local header). + Total key: 00 00 00 01 00 00 00 00 + Data: 0100148c540f0000 + +3. Key is compressed 0300050002000000000100148ca006 + Key Prefix: Length 3 Value in external header (00 00 00) + Key Suffix: Length 5. Value is 02 00 00 00 00 + Total Key: 00 00 00 02 00 00 00 00 + Data: 0100148ca006 diff --git a/fixtures/SYSTEM_IDENTITY.golden b/fixtures/SYSTEM_IDENTITY.golden index ab07713..46cb237 100644 --- a/fixtures/SYSTEM_IDENTITY.golden +++ b/fixtures/SYSTEM_IDENTITY.golden @@ -1,4 +1,5 @@ {"CreationTime":"2021-06-05T11:49:26Z","PhysicalProcessorCount":2,"CoresPerPhysicalProcessor":1,"LogicalProcessorsPerPhysicalProcessor":2,"MaximumMemory":2147483648,"OSMajor":10,"OSMinor":0,"OSBuildNumber":17763,"OSPlatformId":2,"ServicePackMajor":0,"ServicePackMinor":0,"OSSuiteMask":400,"OSProductType":3,"OSCurrentTimeZone":65116,"OSDaylightInEffect":true,"SystemManufacturer":"VMware, Inc.","SystemProductName":"VMware7,1","SystemSMBIOSUUID":"49704D56-60F8-0A10-1C09-0156A066C2C3","SystemSerialNumber":"VMware-56 4d 70 49 f8 60 10 0a-1c 09 01 56 a0 66 c2 c3","SystemDNSHostName":"WIN-M5M48LSM8UB","SystemDomainName":"WORKGROUP","OSSerialNumber":"00431-20000-00000-AA261","OSCountryCode":"1","OSLastBootUpTime":"20210605044708.644043-420"} +{"CreationTime":"2021-06-05T11:49:26Z","PhysicalProcessorCount":2,"CoresPerPhysicalProcessor":1,"LogicalProcessorsPerPhysicalProcessor":2,"MaximumMemory":2147483648,"OSMajor":10,"OSMinor":0,"OSBuildNumber":17763,"OSPlatformId":2,"ServicePackMajor":0,"ServicePackMinor":0,"OSSuiteMask":400,"OSProductType":3,"OSCurrentTimeZone":65116,"OSDaylightInEffect":true} {"CreationTime":"2021-06-05T11:56:47Z","PhysicalProcessorCount":2,"CoresPerPhysicalProcessor":1,"LogicalProcessorsPerPhysicalProcessor":2,"MaximumMemory":2147483648,"OSMajor":10,"OSMinor":0,"OSBuildNumber":17763,"OSPlatformId":2,"ServicePackMajor":0,"ServicePackMinor":0,"OSSuiteMask":400,"OSProductType":3,"OSCurrentTimeZone":0,"OSDaylightInEffect":false,"SystemManufacturer":"VMware, Inc.","SystemProductName":"VMware7,1","SystemSMBIOSUUID":"49704D56-60F8-0A10-1C09-0156A066C2C3","SystemSerialNumber":"VMware-56 4d 70 49 f8 60 10 0a-1c 09 01 56 a0 66 c2 c3","SystemDNSHostName":"DC-0","SystemDomainName":"WORKGROUP","OSSerialNumber":"00431-20000-00000-AA261","OSCountryCode":"1","OSLastBootUpTime":"20210605150348.500000+000"} {"CreationTime":"2021-06-05T23:37:30Z","PhysicalProcessorCount":2,"CoresPerPhysicalProcessor":1,"LogicalProcessorsPerPhysicalProcessor":2,"MaximumMemory":2147483648,"OSMajor":10,"OSMinor":0,"OSBuildNumber":17763,"OSPlatformId":2,"ServicePackMajor":0,"ServicePackMinor":0,"OSSuiteMask":400,"OSProductType":3,"OSCurrentTimeZone":0,"OSDaylightInEffect":false,"SystemManufacturer":"VMware, Inc.","SystemProductName":"VMware7,1","SystemSMBIOSUUID":"49704D56-60F8-0A10-1C09-0156A066C2C3","SystemSerialNumber":"VMware-56 4d 70 49 f8 60 10 0a-1c 09 01 56 a0 66 c2 c3","SystemDNSHostName":"DC-1","SystemDomainName":"WORKGROUP","OSSerialNumber":"00431-20000-00000-AA261","OSCountryCode":"1","OSLastBootUpTime":"20210605233519.500000+000"} {"CreationTime":"2021-06-12T23:35:18Z","PhysicalProcessorCount":2,"CoresPerPhysicalProcessor":1,"LogicalProcessorsPerPhysicalProcessor":2,"MaximumMemory":3145728000,"OSMajor":10,"OSMinor":0,"OSBuildNumber":17763,"OSPlatformId":2,"ServicePackMajor":0,"ServicePackMinor":0,"OSSuiteMask":400,"OSProductType":3,"OSCurrentTimeZone":0,"OSDaylightInEffect":false,"SystemManufacturer":"VMware, Inc.","SystemProductName":"VMware7,1","SystemSMBIOSUUID":"49704D56-60F8-0A10-1C09-0156A066C2C3","SystemSerialNumber":"VMware-56 4d 70 49 f8 60 10 0a-1c 09 01 56 a0 66 c2 c3","SystemDNSHostName":"DC-1","SystemDomainName":"WORKGROUP","OSSerialNumber":"00431-20000-00000-AA261","OSCountryCode":"1","OSLastBootUpTime":"20210612233304.500000+000"} diff --git a/fixtures/WebCacheV01.dat.golden b/fixtures/WebCacheV01.dat.golden index eee47c0..a8f2caa 100644 --- a/fixtures/WebCacheV01.dat.golden +++ b/fixtures/WebCacheV01.dat.golden @@ -1,4 +1,6 @@ {"ContainerId":1,"SetId":0,"Flags":68,"Size":0,"Limit":1024,"LastScavengeTime":0,"EntryMaxAge":0,"LastAccessTime":133370576566552287,"Name":"History","PartitionId":"M","Directory":"C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\History\\History.IE5\\"} {"ContainerId":2,"SetId":0,"Flags":64,"Size":0,"Limit":1024,"LastScavengeTime":0,"EntryMaxAge":0,"LastAccessTime":133370576566722799,"Name":"MSHist012023082020230821","PartitionId":"M","Directory":"C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\History\\History.IE5\\MSHist012023082020230821\\"} +{"ContainerId":2155814921,"SetId":134283264,"Flags":16791936,"Size":0,"Limit":1140850688,"LastScavengeTime":0,"EntryMaxAge":4,"LastAccessTime":0,"Name":""} {"EntryId":2,"ContainerId":2,"CacheId":0,"UrlHash":3019452809937611611,"SecureDirectory":0,"FileSize":0,"Type":2097156,"Flags":4,"AccessCount":1,"SyncTime":133370576566752849,"CreationTime":0,"ExpiryTime":0,"ModifiedTime":133370324566642496,"AccessedTime":133370576566752849,"PostCheckTime":0,"SyncCount":0,"ExemptionDelta":86400,"Url":":2023082020230821: Administrator@:Host: This PC"} {"EntryId":1,"ContainerId":2,"CacheId":0,"UrlHash":8670262967669071927,"SecureDirectory":0,"FileSize":0,"Type":2097156,"Flags":4,"AccessCount":1,"SyncTime":133370576566722799,"CreationTime":0,"ExpiryTime":133393040566647726,"ModifiedTime":133370324566642496,"AccessedTime":133370576566722799,"PostCheckTime":0,"SyncCount":0,"ExemptionDelta":86400,"Url":":2023082020230821: Administrator@file:///C:/מדריך/test.html"} +{"EntryId":7582925233825194002,"ContainerId":551890165795,"CacheId":33635233236516864,"UrlHash":1,"SecureDirectory":2,"FileSize":0,"Type":0,"Flags":1763942455,"AccessCount":2018702907,"SyncTime":0,"CreationTime":9007216434610176,"ExpiryTime":4294967300,"ModifiedTime":133370576566722799,"AccessedTime":0,"PostCheckTime":133393040566647726,"SyncCount":2204077888,"ExemptionDelta":31052698} diff --git a/fixtures/WindowsEdb.golden b/fixtures/WindowsEdb.golden index f678c93..939715a 100644 --- a/fixtures/WindowsEdb.golden +++ b/fixtures/WindowsEdb.golden @@ -26,5 +26,5 @@ {"WorkID":6,"27F-System_Search_Rank":707406378,"4631F-System_Search_GatherTime":"mf6Lg8M02AE=","13F-System_Size":"KioqKioqKio=","14F-System_FileAttributes":17,"15F-System_DateModified":"wSd+fZYZ2AE=","16F-System_DateCreated":"OwVnyN6s1QE=","17F-System_DateAccessed":"uY2Jg8M02AE=","0F-InvertedOnlyMD5":"AD7FjIHjAaZX/H/BKimYbA==","4434-System_IsFolder":false,"4397-System_FilePlaceholderStatus":1536,"4624-System_Search_AccessCount":0,"4440-System_ItemFolderPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs","4447-System_ItemPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Windows Accessories","4633-System_Search_LastIndexedTotalTime":0,"33-System_ItemUrl":"file:C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Accessories","4365-System_DateImported":"00007b76c9deacd501","4429-System_IsAttachment":false,"4431-System_IsEncrypted":false,"4438-System_ItemDate":"00007b76c9deacd501","4456-System_Kind":"0166006f006c00640065007200","4678-System_ThumbnailCacheId":"00b24761032a3aceed","4637-System_Search_Store":"file","3-System_ItemFolderNameDisplay":"Programs","5-System_ItemTypeText":"File folder","4443-System_ItemNameDisplay":"Windows Accessories","4371-System_Document_DateCreated":"00007b76c9deacd501","4373-System_Document_DateSaved":"00c1277e7d9619d801","4442-System_ItemName":"Windows Accessories","4457-System_KindText":"Folder","4441-System_ItemFolderPathDisplayNarrow":"Programs (C:\\ProgramData\\Microsoft\\Windows\\Start Menu)","4444-System_ItemNameDisplayWithoutExtension":"Windows Accessories","4403-System_FolderNameDisplay":"Windows Accessories","4448-System_ItemPathDisplayNarrow":"Windows Accessories (C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs)","4450-System_ItemType":"Directory","11-System_FileName":"Accessories","4565-System_ParsingName":"Accessories","4623-System_SFGAOFlags":2147581696,"0-InvertedOnlyPids":"0128126512"} {"WorkID":7,"27F-System_Search_Rank":707406378,"4631F-System_Search_GatherTime":"mf6Lg8M02AE=","13F-System_Size":"KioqKioqKio=","14F-System_FileAttributes":8209,"15F-System_DateModified":"wSd+fZYZ2AE=","16F-System_DateCreated":"OwVnyN6s1QE=","17F-System_DateAccessed":"6DwqYMM02AE=","0F-InvertedOnlyMD5":"eGtgwBZlaRIhzGXUG0RuDA==","4434-System_IsFolder":false,"4397-System_FilePlaceholderStatus":1536,"4624-System_Search_AccessCount":0,"4440-System_ItemFolderPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs","4447-System_ItemPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Windows Administrative Tools","4633-System_Search_LastIndexedTotalTime":0,"33-System_ItemUrl":"file:C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Administrative Tools","4365-System_DateImported":"00007b76c9deacd501","4429-System_IsAttachment":false,"4431-System_IsEncrypted":false,"4438-System_ItemDate":"00007b76c9deacd501","4456-System_Kind":"0166006f006c00640065007200","4678-System_ThumbnailCacheId":"0017ac7b179ee27c42","4637-System_Search_Store":"file","3-System_ItemFolderNameDisplay":"Programs","5-System_ItemTypeText":"File folder","4443-System_ItemNameDisplay":"Windows Administrative Tools","4371-System_Document_DateCreated":"00007b76c9deacd501","4373-System_Document_DateSaved":"00c1277e7d9619d801","4442-System_ItemName":"Windows Administrative Tools","4457-System_KindText":"Folder","4441-System_ItemFolderPathDisplayNarrow":"Programs (C:\\ProgramData\\Microsoft\\Windows\\Start Menu)","4444-System_ItemNameDisplayWithoutExtension":"Windows Administrative Tools","4403-System_FolderNameDisplay":"Windows Administrative Tools","4448-System_ItemPathDisplayNarrow":"Windows Administrative Tools (C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs)","4450-System_ItemType":"Directory","11-System_FileName":"Administrative Tools","4565-System_ParsingName":"Administrative Tools","4623-System_SFGAOFlags":2147581696,"0-InvertedOnlyPids":"0128126512"} {"WorkID":8,"27F-System_Search_Rank":707406378,"4631F-System_Search_GatherTime":"QEtVtJw02AE=","13F-System_Size":"kAEAAAAAAAA=","14F-System_FileAttributes":38,"15F-System_DateModified":"4OV4WJYZ2AE=","16F-System_DateCreated":"qIqyyd6s1QE=","17F-System_DateAccessed":"VC+qs5w02AE=","0F-InvertedOnlyMD5":"XMWOf3f2TkH5lHqZGUodMA==","4434-System_IsFolder":false,"4397-System_FilePlaceholderStatus":1536,"4624-System_Search_AccessCount":0,"4440-System_ItemFolderPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs","4447-System_ItemPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\desktop.ini","4633-System_Search_LastIndexedTotalTime":0,"33-System_ItemUrl":"file:C:/ProgramData/Microsoft/Windows/Start Menu/Programs/desktop.ini","4365-System_DateImported":"0000a8a7cadeacd501","4429-System_IsAttachment":false,"4431-System_IsEncrypted":false,"4438-System_ItemDate":"0000a8a7cadeacd501","4678-System_ThumbnailCacheId":"00819de12d69c35c06","4637-System_Search_Store":"file","3-System_ItemFolderNameDisplay":"Programs","5-System_ItemTypeText":"Configuration settings","4443-System_ItemNameDisplay":"desktop.ini","4392-System_FileExtension":".ini","4371-System_Document_DateCreated":"0000a8a7cadeacd501","4373-System_Document_DateSaved":"00e0e578589619d801","4442-System_ItemName":"desktop.ini","4441-System_ItemFolderPathDisplayNarrow":"Programs (C:\\ProgramData\\Microsoft\\Windows\\Start Menu)","4444-System_ItemNameDisplayWithoutExtension":"desktop","4448-System_ItemPathDisplayNarrow":"desktop (C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs)","4450-System_ItemType":".ini","11-System_FileName":"desktop.ini","4565-System_ParsingName":"desktop.ini","4623-System_SFGAOFlags":1485928192,"0-InvertedOnlyPids":"0128126512"} -{"WorkID":9,"27F-System_Search_Rank":707406378,"4631F-System_Search_GatherTime":"cNqytpw02AE=","13F-System_Size":"LQkAAAAAAAA=","14F-System_FileAttributes":37,"15F-System_DateModified":"vI0BLd6s1QE=","16F-System_DateCreated":"vI0BLd6s1QE=","17F-System_DateAccessed":"CvKus5w02AE=","0F-InvertedOnlyMD5":"UvS/gkm1224IJypRZDhpBw==","4434-System_IsFolder":false,"4397-System_FilePlaceholderStatus":1536,"4624-System_Search_AccessCount":0,"4440-System_ItemFolderPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs","4447-System_ItemPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Settings.lnk","4633-System_Search_LastIndexedTotalTime":-1.2882297539194267e-231,"33-System_ItemUrl":"file:C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Immersive Control Panel.lnk","4396-System_FileOwner":"NT AUTHORITY\\SYSTEM","4365-System_DateImported":"00bc8d012ddeacd501","4465-System_Link_TargetParsingPath":"C:\\Windows\\System32\\Control.exe","4466-System_Link_TargetSFGAOFlags":1073837824,"4681-System_Tile_SmallLogoPath":"Images\\Logo.png","4679-System_Tile_Background":2872267008,"4559-System_NotUserContent":false,"4429-System_IsAttachment":false,"4625-System_Search_AutoSummary":"Change settings and customize the functionality of your computer","4431-System_IsEncrypted":false,"4438-System_ItemDate":"00bc8d012ddeacd501","4456-System_Kind":"0313ecb47b0d80cbdf6779b80d","4678-System_ThumbnailCacheId":"00d517ef9af79d1395","4702-System_VolumeId":"{00010004-0909-4a7f-0009-0000002a2a2a}","4637-System_Search_Store":"file","3-System_ItemFolderNameDisplay":"Programs","5-System_ItemTypeText":"Shortcut","4173-System_Comment":"Change settings and customize the functionality of your computer","4443-System_ItemNameDisplay":"Settings.lnk","4392-System_FileExtension":".lnk","4371-System_Document_DateCreated":"00bc8d012ddeacd501","4373-System_Document_DateSaved":"00bc8d012ddeacd501","4442-System_ItemName":"Settings.lnk","4457-System_KindText":"Link; Program","4441-System_ItemFolderPathDisplayNarrow":"Programs (C:\\ProgramData\\Microsoft\\Windows\\Start Menu)","4444-System_ItemNameDisplayWithoutExtension":"Settings","4146-System_AppUserModel_PackageFamilyName":"windows.immersivecontrolpanel_cw5n1h2txyewy","4184-System_ComputerName":"DESKTOP-TMKU40H","4448-System_ItemPathDisplayNarrow":"Settings (C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs)","4450-System_ItemType":".lnk","11-System_FileName":"Immersive Control Panel.lnk","4565-System_ParsingName":"Immersive Control Panel.lnk","4623-System_SFGAOFlags":1091663616,"0-InvertedOnlyPids":"017011731128126512"} +{"WorkID":9,"27F-System_Search_Rank":707406378,"4631F-System_Search_GatherTime":"cNqytpw02AE=","13F-System_Size":"LQkAAAAAAAA=","14F-System_FileAttributes":37,"15F-System_DateModified":"vI0BLd6s1QE=","16F-System_DateCreated":"vI0BLd6s1QE=","17F-System_DateAccessed":"CvKus5w02AE=","0F-InvertedOnlyMD5":"UvS/gkm1224IJypRZDhpBw==","4434-System_IsFolder":false,"4397-System_FilePlaceholderStatus":1536,"4624-System_Search_AccessCount":0,"4440-System_ItemFolderPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs","4447-System_ItemPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Settings.lnk","4633-System_Search_LastIndexedTotalTime":-1.2882297539194267e-231,"33-System_ItemUrl":"file:C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Immersive Control Panel.lnk","4396-System_FileOwner":"NT AUTHORITY\\SYSTEM","4365-System_DateImported":"00bc8d012ddeacd501","4465-System_Link_TargetParsingPath":"C:\\Windows\\System32\\Control.exe","4466-System_Link_TargetSFGAOFlags":1073837824,"4681-System_Tile_SmallLogoPath":"Images\\Logo.png","4679-System_Tile_Background":2872267008,"4559-System_NotUserContent":false,"4429-System_IsAttachment":false,"4625-System_Search_AutoSummary":"Change settings and customize the functionality of your computer","4431-System_IsEncrypted":false,"4438-System_ItemDate":"00bc8d012ddeacd501","4456-System_Kind":"0313ecb47b0d80cbdf6779b80d","4678-System_ThumbnailCacheId":"00d517ef9af79d1395","4702-System_VolumeId":"{1d26cf00-5824-a464-4c90-4ba338227e6f}","4637-System_Search_Store":"file","3-System_ItemFolderNameDisplay":"Programs","5-System_ItemTypeText":"Shortcut","4173-System_Comment":"Change settings and customize the functionality of your computer","4443-System_ItemNameDisplay":"Settings.lnk","4392-System_FileExtension":".lnk","4371-System_Document_DateCreated":"00bc8d012ddeacd501","4373-System_Document_DateSaved":"00bc8d012ddeacd501","4442-System_ItemName":"Settings.lnk","4457-System_KindText":"Link; Program","4441-System_ItemFolderPathDisplayNarrow":"Programs (C:\\ProgramData\\Microsoft\\Windows\\Start Menu)","4444-System_ItemNameDisplayWithoutExtension":"Settings","4146-System_AppUserModel_PackageFamilyName":"windows.immersivecontrolpanel_cw5n1h2txyewy","4184-System_ComputerName":"DESKTOP-TMKU40H","4448-System_ItemPathDisplayNarrow":"Settings (C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs)","4450-System_ItemType":".lnk","11-System_FileName":"Immersive Control Panel.lnk","4565-System_ParsingName":"Immersive Control Panel.lnk","4623-System_SFGAOFlags":1091663616,"0-InvertedOnlyPids":"017011731128126512"} {"WorkID":10,"27F-System_Search_Rank":707406378,"4631F-System_Search_GatherTime":"mf6Lg8M02AE=","13F-System_Size":"KioqKioqKio=","14F-System_FileAttributes":8208,"15F-System_DateModified":"qIqyyd6s1QE=","16F-System_DateCreated":"OwVnyN6s1QE=","17F-System_DateAccessed":"6DwqYMM02AE=","0F-InvertedOnlyMD5":"Cd3SVK2junbvG2lIvYqX+g==","4434-System_IsFolder":false,"4397-System_FilePlaceholderStatus":1536,"4624-System_Search_AccessCount":0,"4440-System_ItemFolderPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs","4447-System_ItemPathDisplay":"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Maintenance","4633-System_Search_LastIndexedTotalTime":0,"33-System_ItemUrl":"file:C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Maintenance","4365-System_DateImported":"00007b76c9deacd501","4429-System_IsAttachment":false,"4431-System_IsEncrypted":false,"4438-System_ItemDate":"00007b76c9deacd501","4456-System_Kind":"0166006f006c00640065007200","4678-System_ThumbnailCacheId":"00f2976f2cea073c89","4637-System_Search_Store":"file","3-System_ItemFolderNameDisplay":"Programs","5-System_ItemTypeText":"File folder","4443-System_ItemNameDisplay":"Maintenance","4371-System_Document_DateCreated":"00007b76c9deacd501","4373-System_Document_DateSaved":"00a88ab2c9deacd501","4442-System_ItemName":"Maintenance","4457-System_KindText":"Folder","4441-System_ItemFolderPathDisplayNarrow":"Programs (C:\\ProgramData\\Microsoft\\Windows\\Start Menu)","4444-System_ItemNameDisplayWithoutExtension":"Maintenance","4403-System_FolderNameDisplay":"Maintenance","4448-System_ItemPathDisplayNarrow":"Maintenance (C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs)","4450-System_ItemType":"Directory","11-System_FileName":"Maintenance","4565-System_ParsingName":"Maintenance","4623-System_SFGAOFlags":2147581696,"0-InvertedOnlyPids":"0128126512"} diff --git a/fixtures/ntds.dit.golden b/fixtures/ntds.dit.golden index f4c20ee..ebbcf32 100644 --- a/fixtures/ntds.dit.golden +++ b/fixtures/ntds.dit.golden @@ -1,5 +1,5 @@ {"DNT_col":1,"PDNT_col":707406378,"OBJ_col":1,"RDNtyp_col":707406378,"cnt_col":1,"ab_cnt_col":0,"ATTm589825":"$NOT_AN_OBJECT1$","ATTk589826":"01000000000000000000000000000000"} -{"DNT_col":2,"PDNT_col":0,"OBJ_col":1,"RDNtyp_col":707406378,"cnt_col":3,"ab_cnt_col":0,"time_col":3038287259199220266,"NCDNT_col":707406378,"IsVisibleInAB":0,"Ancestors_col":"02000000","ATTb49":2,"ATTb131108":3,"ATTc0":65536,"ATTm589825":"$ROOT_OBJECT$","ATTj131073":3,"ATTq131091":11398675699859461,"ATTl131074":11398675699859461,"ATTp131353":"0100000000000000","ATTk589826":"00000000000000000000000000000000"} -{"DNT_col":6,"PDNT_col":2030,"OBJ_col":1,"RDNtyp_col":3,"cnt_col":2,"ab_cnt_col":0,"time_col":13013628273,"NCDNT_col":2030,"IsVisibleInAB":42,"recycle_time_col":3038287259199220266,"Ancestors_col":"02000000d6070000d7070000d8070000ee07000006000000","ATTc590021":10,"ATTm131532":"organization","ATTm131298":"Organization","ATTl591181":3494522856748941316,"ATTc131098":10,"ATTi590342":0,"ATTi131241":1,"ATTc590020":2883624,"ATTm131266":"Organization","ATTb49":6,"ATTc0":50334980,"ATTk589827":"b0050000","ATTc131094":65540,"ATTk589972":"a37a96bfe60dd011a28500aa003049e2","ATTc131093":65536,"ATTm590048":"D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)","ATTi589994":0,"ATTq131192":3494522856748941316,"ATTl131075":3494522856748941316,"ATTm589825":"Organization","ATTb590607":6,"ATTj131442":1,"ATTm3":"Organization","ATTj131073":4,"ATTq131091":3494522856748941316,"ATTl131074":3494522856748941316,"ATTp131353":"0700000000000000","ATTk589826":"2d5641aa2856e348be148245aef718a2","ATTc590019":655366,"ATTb590606":1486,"ATTj590199":16} -{"DNT_col":8,"PDNT_col":2030,"OBJ_col":1,"RDNtyp_col":3,"cnt_col":3,"ab_cnt_col":0,"time_col":13013628273,"NCDNT_col":2030,"IsVisibleInAB":42,"recycle_time_col":3038287259199220266,"Ancestors_col":"02000000d6070000d7070000d8070000ee07000008000000","ATTm131532":"nTDSDSA","ATTm131298":"NTDS-DSA","ATTl591181":3494522865338875908,"ATTc131098":3,"ATTi590342":1,"ATTi131241":1,"ATTc590020":3801142,"ATTm131266":"NTDS-DSA","ATTb49":8,"ATTc0":50334980,"ATTk589827":"9a050000","ATTc131094":1507375,"ATTk589972":"abfff8f09111d011a06000aa006c33ed","ATTc131093":1507377,"ATTm590048":"D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)","ATTi589994":1,"ATTq131192":3494522865338875908,"ATTl131075":3494522865338875908,"ATTm589825":"NTDS-DSA","ATTb590607":8,"ATTj131442":1,"ATTm3":"NTDS-DSA","ATTj131073":4,"ATTq131091":3494522865338875908,"ATTl131074":3494522865338875908,"ATTp131353":"0700000000000000","ATTk589826":"6455d6804b5ca5448d2a4a97d2fd3080","ATTc590019":167776516,"ATTb590606":1486,"ATTj590199":16} -{"DNT_col":10,"PDNT_col":2030,"OBJ_col":1,"RDNtyp_col":3,"cnt_col":3,"ab_cnt_col":0,"time_col":13013628273,"NCDNT_col":2030,"IsVisibleInAB":42,"recycle_time_col":3038287259199220266,"Ancestors_col":"02000000d6070000d7070000d8070000ee0700000a000000","ATTc590021":3,"ATTm131532":"dMD","ATTm131298":"DMD","ATTl591181":3494522873928810500,"ATTc131098":3,"ATTi590342":1,"ATTi131241":1,"ATTc590020":1179662,"ATTm131266":"DMD","ATTb49":10,"ATTc0":50334980,"ATTk589827":"99030000","ATTc131094":196617,"ATTk589972":"8f7a96bfe60dd011a28500aa003049e2","ATTc131093":65536,"ATTm590048":"D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)","ATTi589994":1,"ATTq131192":3494522873928810500,"ATTl131075":3494522873928810500,"ATTm589825":"DMD","ATTb590607":10,"ATTj131442":1,"ATTm3":"DMD","ATTj131073":4,"ATTq131091":3494522873928810500,"ATTl131074":3494522873928810500,"ATTp131353":"0700000000000000","ATTk589826":"d31faf81b16f6742b8cc3a2c3f4aac41","ATTc590019":655372,"ATTb590606":1486,"ATTj590199":16} +{"DNT_col":2,"PDNT_col":0,"OBJ_col":1,"RDNtyp_col":707406378,"cnt_col":3,"ab_cnt_col":0,"time_col":3038287259199220266,"NCDNT_col":707406378,"IsVisibleInAB":0,"Ancestors_col":"02000000","ATTb49":2,"ATTb131108":3,"ATTc0":65536,"ATTm589825":"$ROOT_OBJECT$","ATTj131073":3,"ATTq131091":0,"ATTl131074":0,"ATTp131353":"0100000000000000","ATTk589826":"00000000000000000000000000000000"} +{"DNT_col":6,"PDNT_col":2030,"OBJ_col":1,"RDNtyp_col":3,"cnt_col":2,"ab_cnt_col":0,"time_col":13013628273,"NCDNT_col":2030,"IsVisibleInAB":42,"recycle_time_col":3038287259199220266,"Ancestors_col":"02000000d6070000d7070000d8070000ee07000006000000","ATTc590021":10,"ATTm131532":"organization","ATTm131298":"Organization","ATTl591181":0,"ATTc131098":10,"ATTi590342":0,"ATTi131241":1,"ATTc590020":2883624,"ATTm131266":"Organization","ATTb49":6,"ATTc0":50334980,"ATTk589827":"0100000000000000180000000000000000000000010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000003000000010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000001000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000002000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000015000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000016000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f2060000000000001a000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000a9000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000c2000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000e2000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000019010200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000072010200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000cc010200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000001000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000094000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000aa000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000c3000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000c4000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000c5000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000e0000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000077010900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f20600000000000006020900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f2060000000000000e030900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f2060000000000000f030900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673f206000000000000f206000000000000","ATTc131094":65540,"ATTk589972":"a37a96bfe60dd011a28500aa003049e2","ATTc131093":65536,"ATTm590048":"D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)","ATTi589994":0,"ATTq131192":1778,"ATTl131075":13013628277,"ATTm589825":"Organization","ATTb590607":6,"ATTj131442":1,"ATTm3":"Organization","ATTj131073":4,"ATTq131091":1778,"ATTl131074":13013628277,"ATTp131353":"0700000000000000","ATTk589826":"2d5641aa2856e348be148245aef718a2","ATTc590019":655366,"ATTb590606":1486,"ATTj590199":16} +{"DNT_col":8,"PDNT_col":2030,"OBJ_col":1,"RDNtyp_col":3,"cnt_col":3,"ab_cnt_col":0,"time_col":13013628273,"NCDNT_col":2030,"IsVisibleInAB":42,"recycle_time_col":3038287259199220266,"Ancestors_col":"02000000d6070000d7070000d8070000ee07000008000000","ATTm131532":"nTDSDSA","ATTm131298":"NTDS-DSA","ATTl591181":0,"ATTc131098":3,"ATTi590342":1,"ATTi131241":1,"ATTc590020":3801142,"ATTm131266":"NTDS-DSA","ATTb49":8,"ATTc0":50334980,"ATTk589827":"0100000000000000170000000000000000000000010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000003000000010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000001000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000002000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000015000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000016000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e1060000000000001a000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e106000000000000a9000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e106000000000000c2000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e106000000000000e2000200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000019010200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000072010200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e106000000000000cc010200010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000001000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000094000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e106000000000000aa000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e106000000000000c3000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e106000000000000c4000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e106000000000000e0000900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000077010900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e10600000000000006020900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e1060000000000000e030900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e1060000000000000f030900010000002a34741503000000f41b2d9efcb40c41af70a3eaad80a673e106000000000000e106000000000000","ATTc131094":1507375,"ATTk589972":"abfff8f09111d011a06000aa006c33ed","ATTc131093":1507377,"ATTm590048":"D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)","ATTi589994":1,"ATTq131192":1761,"ATTl131075":13013628277,"ATTm589825":"NTDS-DSA","ATTb590607":8,"ATTj131442":1,"ATTm3":"NTDS-DSA","ATTj131073":4,"ATTq131091":1761,"ATTl131074":13013628277,"ATTp131353":"0700000000000000","ATTk589826":"6455d6804b5ca5448d2a4a97d2fd3080","ATTc590019":167776516,"ATTb590606":1486,"ATTj590199":16} +{"DNT_col":10,"PDNT_col":2030,"OBJ_col":1,"RDNtyp_col":3,"cnt_col":3,"ab_cnt_col":0,"time_col":13013628273,"NCDNT_col":2030,"IsVisibleInAB":42,"recycle_time_col":3038287259199220266,"Ancestors_col":"02000000d6070000d7070000d8070000ee0700000a000000","ATTc590021":3,"ATTm131532":"dMD","ATTm131298":"DMD","ATTl591181":0,"ATTc131098":3,"ATTi590342":1,"ATTi131241":1,"ATTc590020":1179662,"ATTm131266":"DMD","ATTb49":10,"ATTc0":50334980,"ATTk589827":"0100000000000000180000000000000000000000010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000003000000010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000001000200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000002000200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000015000200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000016000200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a673050600000000000005060000000000001a000200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000a9000200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000c2000200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000e2000200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000019010200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000072010200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000cc010200010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000001000900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000094000900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000aa000900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000c3000900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000c4000900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000c5000900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000e0000900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000077010900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a6730506000000000000050600000000000006020900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a673050600000000000005060000000000000e030900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a673050600000000000005060000000000000f030900010000002934741503000000f41b2d9efcb40c41af70a3eaad80a67305060000000000000506000000000000","ATTc131094":196617,"ATTk589972":"8f7a96bfe60dd011a28500aa003049e2","ATTc131093":65536,"ATTm590048":"D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)","ATTi589994":1,"ATTq131192":1541,"ATTl131075":13013628276,"ATTm589825":"DMD","ATTb590607":10,"ATTj131442":1,"ATTm3":"DMD","ATTj131073":4,"ATTq131091":1541,"ATTl131074":13013628276,"ATTp131353":"0700000000000000","ATTk589826":"d31faf81b16f6742b8cc3a2c3f4aac41","ATTc590019":655372,"ATTb590606":1486,"ATTj590199":16} diff --git a/fixtures/ntds.dit_sd_table.golden b/fixtures/ntds.dit_sd_table.golden new file mode 100644 index 0000000..879af19 --- /dev/null +++ b/fixtures/ntds.dit_sd_table.golden @@ -0,0 +1,98 @@ +{"sd_id":1,"sd_hash":"V2PmZlQplksUO7RkRjvwaA==","sd_refcount":1,"sd_value":"0f00000001000480300000003c000000000000001400000002001c000100000000031400ffffffff010100000000000100000000010100000000000100000000010100000000000100000000"} +{"sd_id":5,"sd_hash":"B95AVxhV2ERy9Q/3c2HGyQ==","sd_refcount":1,"sd_value":"01001480e802000004030000140000009400000004008000040000000240140020000c000101000000000001000000000240180000010000010200000000000520000000200200000240240000010000010500000000000515000000a1e10f85a261235624bd76a2010200000740280000010000010000005651ec457edbbb47b53fdbeb2d03c40f010100000000000100000000040054020f000000050028000001000001000000aaf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000abf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000acf63111079cd111f79f00c04fc2dcd201010000000000050900000005002c000001000001000000aaf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000abf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000acf63111079cd111f79f00c04fc2dcd201020000000000052000000020020000000014009400020001010000000000050b00000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f00010100000000000512000000000a2400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000050028000001000001000000adf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000765be9894d44624c991a0facbeda640c01010000000000050900000005002c000001000001000000adf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000765be9894d44624c991a0facbeda640c01020000000000052000000020020000050038000001000001000000aaf63111079cd111f79f00c04fc2dcd2010500000000000515000000a1e10f85a261235624bd76a2f2010000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":6,"sd_hash":"lAyV5ZTzIs9E8ue48n6O0Q==","sd_refcount":1,"sd_value":"01001480a8030000c403000014000000d00000000400bc0006000000024014006b000d0001010000000000010000000002421400200000000101000000000001000000000240180000010000010200000000000520000000200200000240240000010000010500000000000515000000a1e10f85a261235624bd76a201020000074028000001000001000000b6562be1950ad111adbb00c04fd8d5cd0101000000000001000000000740280000010000010000005651ec457edbbb47b53fdbeb2d03c40f0101000000000001000000000400d80211000000050038000001000001000000b6562be1950ad111adbb00c04fd8d5cd010500000000000515000000a1e10f85a261235624bd76a206020000050028000001000001000000aaf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000abf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000acf63111079cd111f79f00c04fc2dcd201010000000000050900000005002c000001000001000000aaf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000abf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000acf63111079cd111f79f00c04fc2dcd201020000000000052000000020020000000214009400020001010000000000050b00000000022400bd010e00010500000000000515000000a1e10f85a261235624bd76a20602000000021400ff010f00010100000000000512000000050028000001000001000000adf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000765be9894d44624c991a0facbeda640c01010000000000050900000005002c000001000001000000adf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000765be9894d44624c991a0facbeda640c01020000000000052000000020020000050038000001000001000000aaf63111079cd111f79f00c04fc2dcd2010500000000000515000000a1e10f85a261235624bd76a2f2010000050038000001000001000000adf63111079cd111f79f00c04fc2dcd2010500000000000515000000a1e10f85a261235624bd76a2f2010000050038000001000001000000765be9894d44624c991a0facbeda640c010500000000000515000000a1e10f85a261235624bd76a2f2010000010500000000000515000000a1e10f85a261235624bd76a206020000010500000000000515000000a1e10f85a261235624bd76a206020000"} +{"sd_id":7,"sd_hash":"+e3uCT+Wq+hR98SE1nEKDQ==","sd_refcount":1738,"sd_value":"0100148c84000000a0000000140000003000000004001c000100000002521400200000000101000000000001000000000400540003000000001214009400020001010000000000050b00000000122400bd010e00010500000000000515000000a1e10f85a261235624bd76a20602000000121400ff010f00010100000000000512000000010500000000000515000000a1e10f85a261235624bd76a206020000010500000000000515000000a1e10f85a261235624bd76a206020000"} +{"sd_id":8,"sd_hash":"ji1KHqFelDzo7VQIlknOOw==","sd_refcount":1,"sd_value":"0100049c480000005400000000000000140000000200340002000000000014003f000f00010100000000000512000000000018001400000001020000000000052000000020020000010100000000000512000000010100000000000512000000"} +{"sd_id":9,"sd_hash":"TVj66b1F3DtCtoSCOLgmIQ==","sd_refcount":3,"sd_value":"0100048cb0000000cc000000000000001400000004009c0005000000000014009400020001010000000000010000000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":10,"sd_hash":"wUHoVLpjgdWJ2i+vnDLq8w==","sd_refcount":1,"sd_value":"0100148ce40100000002000014000000000100000400ec00050000000242140043000100010100000000000100000000074a28000001000002000000abfff8f09111d011a06000aa006c33ed010100000000000100000000074a38002000000003000000be3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000074a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000074a380020000000030000004c94103e54c3d011aff80000f80367c12431b1b72eb8d011afee0000f80367c10101000000000001000000000400e40006000000000014009400020001010000000000050b000000050a4800080000000300000057871ad34724454580813bb610cacbf2abfff8f09111d011a06000aa006c33ed010500000000000515000000a1e10f85a261235624bd76a2f201000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":11,"sd_hash":"k5qq7aCIlVhjZR9foQJdDg==","sd_refcount":5,"sd_value":"0100148ce40100000002000014000000000100000400ec00050000000252140043000100010100000000000100000000075a28000001000002000000abfff8f09111d011a06000aa006c33ed010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a380020000000030000004c94103e54c3d011aff80000f80367c12431b1b72eb8d011afee0000f80367c10101000000000001000000000400e40006000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f00010100000000000512000000051a4800080000000300000057871ad34724454580813bb610cacbf2abfff8f09111d011a06000aa006c33ed010500000000000515000000a1e10f85a261235624bd76a2f201000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":12,"sd_hash":"JtLSngOpmApWJ4Zb0zOalQ==","sd_refcount":1,"sd_value":"0100148cd4010000f001000014000000000100000400ec00050000000252140043000100010100000000000100000000075a28000001000002000000abfff8f09111d011a06000aa006c33ed010100000000000100000000075238002000000003000000be3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075238002000000003000000bf3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a380020000000030000004c94103e54c3d011aff80000f80367c12431b1b72eb8d011afee0000f80367c10101000000000001000000000400d40006000000000014009400020001010000000000050b00000000001400ff010f000101000000000005120000000000140094000200010100000000000509000000051a4800080000000300000057871ad34724454580813bb610cacbf2abfff8f09111d011a06000aa006c33ed010500000000000515000000a1e10f85a261235624bd76a2f201000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":13,"sd_hash":"KWT9t4mn6yTi3u7h4Ziu9A==","sd_refcount":1,"sd_value":"0100148ce40100000002000014000000000100000400ec00050000000252140043000100010100000000000100000000075a28000001000002000000abfff8f09111d011a06000aa006c33ed010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a380020000000030000004c94103e54c3d011aff80000f80367c12431b1b72eb8d011afee0000f80367c10101000000000001000000000400e40006000000000014009400020001010000000000050b00000000002400fd010f00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f00010100000000000512000000051a4800080000000300000057871ad34724454580813bb610cacbf2abfff8f09111d011a06000aa006c33ed010500000000000515000000a1e10f85a261235624bd76a2f201000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":14,"sd_hash":"bXzVJff9sb1CWd412/VuLQ==","sd_refcount":1,"sd_value":"0100148cd8010000f401000014000000000100000400ec00050000000252140043000100010100000000000100000000075a28000001000002000000abfff8f09111d011a06000aa006c33ed010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a380020000000030000004c94103e54c3d011aff80000f80367c12431b1b72eb8d011afee0000f80367c10101000000000001000000000400d8000600000000001800010000000102000000000005200000002002000000001400ff010f00010100000000000512000000000014009400020001010000000000050b000000051a4800080000000300000057871ad34724454580813bb610cacbf2abfff8f09111d011a06000aa006c33ed010500000000000515000000a1e10f85a261235624bd76a2f201000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":15,"sd_hash":"1m5jPsSUeKzRYTQsIBKsDg==","sd_refcount":1,"sd_value":"0100148c0c02000028020000140000003000000004001c00010000000242140063010d000101000000000001000000000400dc010d000000000014008400020001010000000000050b00000005002800100000000100000054018de4f8bcd111870200c04fb9605001010000000000050b00000005002800100000000100000057871ad34724454580813bb610cacbf201010000000000050b000000050028001000000001000000871817663c8fd011afda00c04fd930c901010000000000050b000000050028001000000001000000bf6021032498d111aec00000f80367c101010000000000050b000000050028001000000001000000ebe19e788e8c4c4e8cec79b31b7617b501010000000000050b000000050028001000000001000000afae065740b9b24fbcfc5268683ad9fe01010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f000101000000000005120000000000140001000000010100000000000509000000050a3c002000000003000000df93f73d58981744a701735a1ecebf748d7a96bfe60dd011a28500aa003049e20102000000000005200000002002000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":16,"sd_hash":"v6EuNUfMtLlgY/OYZPinYA==","sd_refcount":3,"sd_value":"0100148c0801000024010000140000003000000004001c00010000000252140063010d000101000000000001000000000400d80006000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000005123c002000000003000000df93f73d58981744a701735a1ecebf748d7a96bfe60dd011a28500aa003049e20102000000000005200000002002000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":17,"sd_hash":"sfZKlUNzSN4//uE7tLjY8w==","sd_refcount":22,"sd_value":"0100048cb0000000cc000000000000001400000004009c0005000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":18,"sd_hash":"KHpWIptCC3wdk3ZMtWfdPg==","sd_refcount":1,"sd_value":"0100148ce0000000fc0000001400000044000000040030000100000007402800200000000100000086fff8f09111d011a06000aa006c33ed01010000000000010000000004009c0005000000000214009400020001010000000000050b00000000022400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000021400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":19,"sd_hash":"GJbLySsHDYZuoAdXNHql3w==","sd_refcount":3,"sd_value":"0100048cfc0000001801000000000000140000000400e80008000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f00010100000000000512000000001214009400020001010000000000050b00000000122400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000121400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":20,"sd_hash":"FpzgUxS6rvelz3mUQDKtGw==","sd_refcount":1,"sd_value":"0100148c2c010000480100001400000044000000040030000100000007402800200000000100000052a35973f790d111aebc0000f80367c10101000000000001000000000400e80008000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f00010100000000000512000000001214009400020001010000000000050b00000000122400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000121400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":21,"sd_hash":"g2nLSmCMEgEXK/4Ks0FTnQ==","sd_refcount":1,"sd_value":"0100048cd4000000f000000000000000140000000400c00006000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20502000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":22,"sd_hash":"U8BIrz2czYXxcyz96Eou4w==","sd_refcount":1513,"sd_value":"0100048cb0000000cc000000000000001400000004009c0005000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":23,"sd_hash":"Egk2JLYJpAyFd315Pks48A==","sd_refcount":3,"sd_value":"0100048cb0000000cc000000000000001400000004009c000500000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f00010100000000000512000000000014009400020001010000000000050b00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":24,"sd_hash":"f8vmefOQFHZA8O6jWELw/g==","sd_refcount":25,"sd_value":"0100048cc4000000e000000000000000140000000400b000060000000100140040000100010100000000000100000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":25,"sd_hash":"oD8GQjEmJYzw+EpUK8lfGw==","sd_refcount":1,"sd_value":"0100148ccc000000e8000000140000003000000004001c0001000000024214004300010001010000000000010000000004009c0005000000000014009400020001010000000000010000000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":26,"sd_hash":"HKVJpa+57X7bzPlf3yjO/g==","sd_refcount":91,"sd_value":"0100148ccc000000e8000000140000003000000004001c0001000000025214004300010001010000000000010000000004009c0005000000000014009400020001010000000000010000000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":27,"sd_hash":"lYe+xAd84QsFaylMzWfZ3g==","sd_refcount":8,"sd_value":"0100148ccc000000e8000000140000003000000004001c0001000000025214004300010001010000000000010000000004009c0005000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":28,"sd_hash":"fi3LoDBPyYKHbhtlEkY2Hg==","sd_refcount":1,"sd_value":"0100148ccc000000e8000000140000003000000004001c0001000000025214004300010001010000000000010000000004009c0005000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":29,"sd_hash":"N5cYU+bwBEEpc8cnnlOfpg==","sd_refcount":25,"sd_value":"0100148ce0000000fc000000140000003000000004001c000100000002521400430001000101000000000001000000000400b000060000000100140040000100010100000000000100000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":30,"sd_hash":"fQEjTQ/q52MEQpmu8yf0mw==","sd_refcount":1,"sd_value":"0100148ccc000000e8000000140000003000000004001c0001000000025214004300010001010000000000010000000004009c0005000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":31,"sd_hash":"mI+lRcUbZ2cyvM7an+lmzQ==","sd_refcount":1,"sd_value":"0100148ce400000000010000140000003000000004001c0001000000024214006b010d000101000000000001000000000400b4000500000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a207020000000018009400020001020000000000052000000020020000050028000001000001000000fe03cc4ec0ff4749b630eb672a8a9dbc01010000000000010000000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":33,"sd_hash":"PO/szjToSqIiuXlbgUcP4A==","sd_refcount":1,"sd_value":"0100149cc0000000cc000000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000200340002000000000014003f000f00010100000000000512000000000018001400000001020000000000052000000020020000010100000000000512000000010100000000000512000000"} +{"sd_id":37,"sd_hash":"8g/RuwZC64NqGNkFREbh2w==","sd_refcount":1,"sd_value":"0100149c0801000024010000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e201010000000000010000000002007c000400000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f0001010000000000051200000000021800bd010f000102000000000005200000002002000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":39,"sd_hash":"Y4jPVTSWbPSrhdHcttaSww==","sd_refcount":2,"sd_value":"0100149ce80100000402000014000000b40000000400a00003000000075228002000040002000000c23b0ef3f09fd111b6030000f80367c1010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040034010a00000000002400bd000e00010500000000000515000000a1e10f85a261235624bd76a200020000000a2400ff000f00010500000000000515000000a1e10f85a261235624bd76a20002000000002400bd000e00010500000000000515000000a1e10f85a261235624bd76a207020000000a2400ff000f00010500000000000515000000a1e10f85a261235624bd76a20702000000002400bd000e00010500000000000515000000a1e10f85a261235624bd76a200020000000a1400ff000f0001010000000000030000000000021400ff000f00010100000000000512000000000214009400020001010000000000050b0000000502280000010000010000008ffdacedb3ffd111b41d00a0c968f93901010000000000050b0000000002140094000200010100000000000509000000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":40,"sd_hash":"K7RGYSiYILST5gMjIUf30w==","sd_refcount":4,"sd_value":"0100148cdc010000f801000014000000b40000000400a00003000000075a28002000040002000000c23b0ef3f09fd111b6030000f80367c1010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040028010b000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f00010100000000000512000000000014009400020001010000000000050900000000122400ff000f00010500000000000515000000a1e10f85a261235624bd76a20002000000122400ff000f00010500000000000515000000a1e10f85a261235624bd76a207020000001a1400ff000f0001010000000000030000000000121400ff000f00010100000000000512000000001214009400020001010000000000050b0000000512280000010000010000008ffdacedb3ffd111b41d00a0c968f93901010000000000050b0000000012140094000200010100000000000509000000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":45,"sd_hash":"aj1rixHSrby9S+u3hPECTQ==","sd_refcount":1,"sd_value":"0100149c5401000070010000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000200c8000700000000001800bd0002000102000000000005200000002002000000002400bd000200010500000000000515000000a1e10f85a261235624bd76a208020000000214009400020001010000000000050b000000000214009400020001010000000000051200000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000a1400ff010f00010100000000000300000000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":46,"sd_hash":"XfBde+x7M0eCc5Uwq3aGVw==","sd_refcount":3,"sd_value":"0100148c88010000a4010000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000200fc0009000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a2000200000000240001000000010500000000000515000000a1e10f85a261235624bd76a20802000000001400ff010f00010100000000000512000000001214009400020001010000000000050b000000001214009400020001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000001a1400ff010f00010100000000000300000000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":4224319380258816,"sd_hash":"AQEAAAAAAAUSAAAAABIkAA==","sd_refcount":983551} +{"sd_id":47,"sd_hash":"NjqsMxLtgEAkoozCm0vnkg==","sd_refcount":1,"sd_value":"0100149c5401000070010000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000200c80007000000000214009400020001010000000000050b000000000214009400020001010000000000051200000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000001800bd0002000102000000000005200000002002000000002400bd000200010500000000000515000000a1e10f85a261235624bd76a208020000000a1400ff010f00010100000000000300000000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":59,"sd_hash":"ddi2MhPyfFcUPqIf06GbQg==","sd_refcount":1,"sd_value":"0100148ce40100000002000014000000000100000400ec00050000000252140043000100010100000000000100000000075228000001000002000000abfff8f09111d011a06000aa006c33ed010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a380020000000030000004c94103e54c3d011aff80000f80367c12431b1b72eb8d011afee0000f80367c10101000000000001000000000400e40006000000000014009400020001010000000000050b00000000002400fd010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000005124800080000000300000057871ad34724454580813bb610cacbf2abfff8f09111d011a06000aa006c33ed010500000000000515000000a1e10f85a261235624bd76a2f201000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":66,"sd_hash":"b/g/hYgMvXIEP60jE0PK4g==","sd_refcount":18,"sd_value":"0100148cc0050000d0050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040034051d00000005002c0010000000010000001db1a946ae605a40b7e8ff8a58d456d201020000000000052000000030020000050028000001000001000000551a72ab2f1ed011981900aa0040529b01010000000000050b00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001800ff010f0001020000000000052000000024020000000014009400020001010000000000050a000000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e20101000000000005090000000512380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005122c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f00010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000"} +{"sd_id":69,"sd_hash":"zhSeF3A87ED3Wdl2hmwjog==","sd_refcount":1,"sd_value":"0100148ce40100000002000014000000000100000400ec00050000000252140043000100010100000000000100000000075a28000001000002000000abfff8f09111d011a06000aa006c33ed010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a380020000000030000004c94103e54c3d011aff80000f80367c12431b1b72eb8d011afee0000f80367c10101000000000001000000000400e4000600000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a4800080000000300000057871ad34724454580813bb610cacbf2abfff8f09111d011a06000aa006c33ed010500000000000515000000a1e10f85a261235624bd76a2f201000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":70,"sd_hash":"hAJLvVa+TKV2wcukCTDVfQ==","sd_refcount":1,"sd_value":"010014846c0900007c09000014000000dc0000000400c80005000000074238002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000074238002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000240240000010000010500000000000515000000a1e10f85a261235624bd76a2010200000240180000010000010200000000000520000000200200000240140020000c000101000000000001000000000400900831000000050a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050038000001000001000000187e0f3e7a2c104cba824d926db99a3e010500000000000515000000a1e10f85a261235624bd76a20a020000050038000001000001000000aaf63111079cd111f79f00c04fc2dcd2010500000000000515000000a1e10f85a261235624bd76a2f2010000050038000001000001000000adf63111079cd111f79f00c04fc2dcd2010500000000000515000000a1e10f85a261235624bd76a204020000050a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000050a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000050a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000050a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a00000005002c000001000001000000765be9894d44624c991a0facbeda640c0102000000000005200000002002000005002c000001000001000000aaf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000abf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000acf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000adf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000aef63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000c96da3e217aec347b58bbe34c55ba6330102000000000005200000002d02000005002c001000000001000000607340c7bf20d011a76800aa006e05290102000000000005200000002a02000005002c001000000001000000d09f11b8f6046247ab7a4986c76b3f9a0102000000000005200000002a020000050a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a0200000500280000010000010000005e4cc705eb4db443bd9f86664c2a7fd501010000000000050b000000050028000001000001000000765be9894d44624c991a0facbeda640c0101000000000005090000000500280000010000010000007ddcc2ccada67a4a8846c04e3cc5350101010000000000050b0000000500280000010000010000009c360f28c7678e43ae981d46f3c6f54101010000000000050b000000050028000001000001000000aaf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000abf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000acf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000aef63111079cd111f79f00c04fc2dcd2010100000000000509000000050028001000000001000000d09f11b8f6046247ab7a4986c76b3f9a01010000000000050b000000050328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000050a28003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20002000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000001800100002000102000000000005200000002a02000000021800040000000102000000000005200000002a02000000021800bd010f000102000000000005200000002002000000001400100000000101000000000001000000000000140094000200010100000000000509000000000014009400020001010000000000050b00000000001400ff010f000101000000000005120000000102000000000005200000002002000001020000000000052000000020020000"} +{"sd_id":72,"sd_hash":"+lE2Is2NpoRUMm2foCex9g==","sd_refcount":27,"sd_value":"0100048cb0000000cc000000000000001400000004009c000500000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a207020000000014009400020001010000000000010000000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a207020000010500000000000515000000a1e10f85a261235624bd76a207020000"} +{"sd_id":75,"sd_hash":"0xLPaq338nJD6v1+pcgJCQ==","sd_refcount":15,"sd_value":"0100148cc0050000dc050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040034051d00000005002c0010000000010000001db1a946ae605a40b7e8ff8a58d456d201020000000000052000000030020000050028000001000001000000551a72ab2f1ed011981900aa0040529b01010000000000050b00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001800ff010f0001020000000000052000000024020000000014009400020001010000000000050a000000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e20101000000000005090000000512380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005122c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":78,"sd_hash":"8aA0Htw46OD5uZ6cHM/6xg==","sd_refcount":1,"sd_value":"0100148c040e0000140e0000140000004c0100000400380107000000074238002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000074238002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000240240000010000010500000000000515000000a1e10f85a261235624bd76a2010200000240180000010000010200000000000520000000200200000240140020000c00010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b80c46000000050a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050038000001000001000000aaf63111079cd111f79f00c04fc2dcd2010500000000000515000000a1e10f85a261235624bd76a2f2010000050038000001000001000000adf63111079cd111f79f00c04fc2dcd2010500000000000515000000a1e10f85a261235624bd76a204020000050a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000050a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000050a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000050a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a00000005002c000001000001000000765be9894d44624c991a0facbeda640c0102000000000005200000002002000005002c000001000001000000aaf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000abf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000acf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000adf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000aef63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000c96da3e217aec347b58bbe34c55ba6330102000000000005200000002d02000005002c001000000001000000607340c7bf20d011a76800aa006e05290102000000000005200000002a02000005002c001000000001000000d09f11b8f6046247ab7a4986c76b3f9a0102000000000005200000002a020000050a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a0200000500280000010000010000005e4cc705eb4db443bd9f86664c2a7fd501010000000000050b000000050028000001000001000000765be9894d44624c991a0facbeda640c0101000000000005090000000500280000010000010000007ddcc2ccada67a4a8846c04e3cc5350101010000000000050b0000000500280000010000010000009c360f28c7678e43ae981d46f3c6f54101010000000000050b000000050028000001000001000000aaf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000abf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000acf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000aef63111079cd111f79f00c04fc2dcd2010100000000000509000000050028001000000001000000d09f11b8f6046247ab7a4986c76b3f9a01010000000000050b000000050328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000050a28003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20002000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000001800100002000102000000000005200000002a02000000021800040000000102000000000005200000002a02000000021800bd010f000102000000000005200000002002000000001400100000000101000000000001000000000000140094000200010100000000000509000000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f00010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000"} +{"sd_id":79,"sd_hash":"ymNZ5w+pYKjke+H7eccJtg==","sd_refcount":1,"sd_value":"0100148c1c06000038060000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040090051e00000000001400ff010f0001010000000000051200000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000005002c000300000001000000867a96bfe60dd011a28500aa003049e20102000000000005200000002402000005002c000300000001000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002402000005002c0003000000010000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002402000005002c000300000001000000a87a96bfe60dd011a28500aa003049e201020000000000052000000026020000000014009400020001010000000000050b00000005002c00030000000100000014cc28483714bc459b07ad6f015e5f2801020000000000052000000024020000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":80,"sd_hash":"+ry0Z2PGBWqWt0QKINKniQ==","sd_refcount":1,"sd_value":"0100148c7c0500009805000014000000b40000000400a000040000000240140043000d000101000000000001000000000242140020000000010100000000000100000000075238002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075238002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400c8041a000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f000101000000000005120000000000140094000200010100000000000509000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":81,"sd_hash":"0UK/cPq6gt6VAfCCmTicvw==","sd_refcount":1,"sd_value":"0100148c84080000a008000014000000a000000004008c00030000000252140020000000010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400e407290000000500480020000000030000001020205fa579d011902000c04fc2d4cf867a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a200020000050048002000000003000000507996bfe60dd011a28500aa003049e2867a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a200020000050048002000000003000000537996bfe60dd011a28500aa003049e2867a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a200020000050048002000000003000000d0bf0a3e6a12d011a06000aa006c33ed867a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a2000200000500380008000000010000004795e372187bd111adef00c04fd8d5cd010500000000000515000000a1e10f85a261235624bd76a2000200000500380008000000010000008847a6f30653d111a9c50000f80367c1010500000000000515000000a1e10f85a261235624bd76a2000200000500380020000000010000000042164cc020d011a76800aa006e0529010500000000000515000000a1e10f85a261235624bd76a2000200000500380030000000010000007f7a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a20502000005002c000300000001000000a87a96bfe60dd011a28500aa003049e20102000000000005200000002602000005002c0010000000010000001db1a946ae605a40b7e8ff8a58d456d201020000000000052000000030020000050028000001000001000000531a72ab2f1ed011981900aa0040529b0101000000000001000000000500280008000000010000004795e372187bd111adef00c04fd8d5cd01010000000000050a0000000500280008000000010000008847a6f30653d111a9c50000f80367c101010000000000050a00000005002800300000000100000086b8b5774a94d111aebd0000f80367c101010000000000050a00000000002400d4010300010500000000000515000000a1e10f85a261235624bd76a20002000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014000300000001010000000000050a000000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a0200000512380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051238002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":82,"sd_hash":"8fbAmtb8LXaxEBddm4EwvQ==","sd_refcount":3,"sd_value":"0100148c400500005c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b4041900000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f00010100000000000512000000000014009400020001010000000000050b000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":83,"sd_hash":"V3V2RioiqvcSwKWjwjqF6Q==","sd_refcount":4,"sd_value":"0100148c2407000040070000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400980626000000050028000001000001000000531a72ab2f1ed011981900aa0040529b010100000000000100000000050028000001000001000000531a72ab2f1ed011981900aa0040529b01010000000000050a000000050028000001000001000000541a72ab2f1ed011981900aa0040529b01010000000000050a000000050028000001000001000000561a72ab2f1ed011981900aa0040529b01010000000000050a000000050028001000000001000000422fba59a279d011902000c04fc2d3cf01010000000000050b00000005002800100000000100000054018de4f8bcd111870200c04fb9605001010000000000050b00000005002800100000000100000086b8b5774a94d111aebd0000f80367c101010000000000050b000000050028001000000001000000b39557e45594d111aebd0000f80367c101010000000000050b00000005002800300000000100000086b8b5774a94d111aebd0000f80367c101010000000000050a000000050028003000000001000000b29557e45594d111aebd0000f80367c101010000000000050a000000050028003000000001000000b39557e45594d111aebd0000f80367c101010000000000050a00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001800ff010f0001020000000000052000000024020000000014000000020001010000000000050b000000000014009400020001010000000000050a00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":84,"sd_hash":"KCPEmmyt+FWlAa5MqOVk1g==","sd_refcount":1,"sd_value":"0100148c540500007005000014000000a000000004008c00030000000240140020010000010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b40419000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":85,"sd_hash":"RMeLKG27CwMQPX08Fy2bFg==","sd_refcount":12,"sd_value":"0100148c400500005c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b40419000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":86,"sd_hash":"/cRDXFgMnEmc6Rf96IRcRQ==","sd_refcount":1,"sd_value":"0100148cc4050000e0050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040038051c00000000001400ff010f0001010000000000051200000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000005002c000300000001000000446220ce2758864aba1c1c0c386c1b640102000000000005200000002402000005002c000300000001000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002402000005002c0003000000010000009c7a96bfe60dd011a28500aa003049e201020000000000052000000024020000000014009400020001010000000000050b000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":87,"sd_hash":"2faYxDBO0m8R8HuSQkz9yQ==","sd_refcount":1,"sd_value":"0100148c6c0500008805000014000000a000000004008c0003000000024214006b010d00010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400cc041900000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000018009400020001020000000000052000000020020000050028000001000001000000fe03cc4ec0ff4749b630eb672a8a9dbc010100000000000100000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":88,"sd_hash":"PBiUFroKARrmPyxDf+5H1A==","sd_refcount":1,"sd_value":"0100148c400500005c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b40419000000000014009400020001010000000000050b00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":89,"sd_hash":"P75P3+11QHw9tE6UnmvTtA==","sd_refcount":1,"sd_value":"0100148c540500007005000014000000a000000004008c00030000000242140043000100010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b40419000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":90,"sd_hash":"giGL/XcQeXTt9pHSaxkkPg==","sd_refcount":81,"sd_value":"0100148c540500007005000014000000a000000004008c00030000000252140043000100010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b40419000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":91,"sd_hash":"OYbFv9K1yH6hs3yuHPNjdw==","sd_refcount":1,"sd_value":"0100148c540500007005000014000000a000000004008c00030000000252140043000100010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b4041900000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":92,"sd_hash":"FHpjeAAfemc9RM5VgYyJKw==","sd_refcount":1,"sd_value":"0100148cac050000c8050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040020051c0000000002240094000200010500000000000515000000a1e10f85a261235624bd76a2030200000002240094000200010500000000000515000000a1e10f85a261235624bd76a20802000000022400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000021400ff010f0001010000000000051200000000021400940002000101000000000005140000000002240094000200010500000000000515000000a1e10f85a261235624bd76a2f2010000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":93,"sd_hash":"Q6q3bUKbsFkTDTp7N2Y4Fw==","sd_refcount":22,"sd_value":"0100148cac050000c8050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040020051c0000000012240094000200010500000000000515000000a1e10f85a261235624bd76a2030200000012240094000200010500000000000515000000a1e10f85a261235624bd76a20802000000122400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000121400ff010f0001010000000000051200000000121400940002000101000000000005140000000012240094000200010500000000000515000000a1e10f85a261235624bd76a2f2010000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":94,"sd_hash":"iNJH6JMOOp8qs/O5nTN/eQ==","sd_refcount":1,"sd_value":"0100148c2c05000048050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400a0041800000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":95,"sd_hash":"mTqttvsInYfr4+WmGj32uA==","sd_refcount":1,"sd_value":"0100148cb4050000d005000014000000dc0000000400c800040000000740280043000d0001000000c23b0ef3f09fd111b6030000f80367c1010100000000000100000000074228002000040002000000c23b0ef3f09fd111b6030000f80367c1010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400d8041a000000000014009400020001010000000000050b00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a2000200000000240001000000010500000000000515000000a1e10f85a261235624bd76a20802000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":96,"sd_hash":"zkvv8J3H51bpaqypwJ4zMQ==","sd_refcount":1,"sd_value":"0100148c400500005c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b40419000000000014009400020001010000000000050b00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":97,"sd_hash":"rUcsm2YZkkzlw7HlQsdvvA==","sd_refcount":1,"sd_value":"0100148c300500004c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400a4041800000000002400bf010f00010500000000000515000000a1e10f85a261235624bd76a22902000000001800940002000102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":98,"sd_hash":"U8zHii+af+8nY3hTqblRgA==","sd_refcount":1,"sd_value":"0100148cac050000bc050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040020051c00000005002c0000010000010000001874d6913501cc4a8d79c08e857cfbec0102000000000005200000002a0200000500280000010000010000001874d6913501cc4a8d79c08e857cfbec01010000000000050b00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001800940002000102000000000005200000002a020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f00010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000"} +{"sd_id":99,"sd_hash":"X+gZxgOjr8SXn8xLT1NE/A==","sd_refcount":1,"sd_value":"0100148c500500006c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400c4041900000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001400ff010f000101000000000005120000000000240095000000010500000000000515000000a1e10f85a261235624bd76a203020000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":100,"sd_hash":"g1BRCA078AS39xoVWqoiNA==","sd_refcount":1,"sd_value":"0100148cf00500000c060000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040064051d00000000001400ff010f0001010000000000051200000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000005002c000300000001000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002402000005002c0003000000010000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002402000005002c000300000001000000a87a96bfe60dd011a28500aa003049e201020000000000052000000026020000000014009400020001010000000000050b00000005002c00030000000100000014cc28483714bc459b07ad6f015e5f2801020000000000052000000024020000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":102,"sd_hash":"UNv3bv+l5KJLxp4FieEk2Q==","sd_refcount":1,"sd_value":"0100148c000600001006000014000000a000000004008c000300000002c0140000000701010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040060051e000000060028000001000001000000531a72ab2f1ed011981900aa0040529b010100000000000100000000060028000001000001000000531a72ab2f1ed011981900aa0040529b01010000000000050a000000050028000001000001000000531a72ab2f1ed011981900aa0040529b010100000000000100000000050028000001000001000000531a72ab2f1ed011981900aa0040529b01010000000000050a00000000001800ff010f000102000000000005200000002002000000001800ff010f0001020000000000052000000024020000000014001000000001010000000000050a000000000014001000000001010000000000050b000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e20101000000000005090000000512380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a02000005122c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f00010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000"} +{"sd_id":104,"sd_hash":"OzLYe6F+eqFEf7wk6vLmHg==","sd_refcount":1,"sd_value":"0100148c540500007005000014000000a000000004008c00030000000240140020010000010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b4041900000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":105,"sd_hash":"Ktd2n+X7jcqOezCF/CZoOQ==","sd_refcount":1,"sd_value":"0100148c540500007005000014000000a000000004008c00030000000252140020000000010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b4041900000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":106,"sd_hash":"PNM/Ts+J56KMb5WR7x99vA==","sd_refcount":1,"sd_value":"0100148cc0050000cc050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040034051d00000005002c0010000000010000001db1a946ae605a40b7e8ff8a58d456d201020000000000052000000030020000050028000001000001000000551a72ab2f1ed011981900aa0040529b01010000000000050b00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001800ff010f0001020000000000052000000024020000000014009400020001010000000000050a000000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e20101000000000005090000000512380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005122c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010100000000000512000000010100000000000512000000"} +{"sd_id":107,"sd_hash":"y3mBTiLHny8JzUOpWu2lLw==","sd_refcount":1,"sd_value":"0100148cc0050000cc050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040034051d00000005002c0010000000010000001db1a946ae605a40b7e8ff8a58d456d201020000000000052000000030020000050028000001000001000000551a72ab2f1ed011981900aa0040529b01010000000000050b00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001800ff010f0001020000000000052000000024020000000014009400020001010000000000050a000000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e20101000000000005090000000512380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005122c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":111,"sd_hash":"atlqD0vJbOd3TD/jWm5HLA==","sd_refcount":2,"sd_value":"0100148c6405000070050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400d8041a00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000224007f010f00010500000000000515000000a1e10f85a261235624bd76a24e04000000001400ff010f00010100000000000512000000000214007f010f00010100000000000509000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010100000000000512000000010100000000000512000000"} +{"sd_id":114,"sd_hash":"y6pPSWIvrO/1F+lMSFbGCw==","sd_refcount":2,"sd_value":"0100148c8c05000098050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040000051c00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000010000000000001400ff010f00010100000000000512000000000214007f010f00010100000000000509000000001224007f010f00010500000000000515000000a1e10f85a261235624bd76a24e040000001214007f010f00010100000000000509000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":115,"sd_hash":"PttAVUZJqgbTXtZqa8fT1g==","sd_refcount":63,"sd_value":"0100148c8c05000098050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040000051c00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000010000000000001400ff010f0001010000000000050900000000001400ff010f00010100000000000512000000001214007f010f00010100000000000509000000001224007f010f00010500000000000515000000a1e10f85a261235624bd76a24e040000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":117,"sd_hash":"DRkgnWyVuRuoNze05HTTCQ==","sd_refcount":3,"sd_value":"0100148ca0050000ac050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040014051d00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014000100000001010000000000050b000000000014009400020001010000000000010000000000001400ff010f00010100000000000512000000000214007f010f00010100000000000509000000001224007f010f00010500000000000515000000a1e10f85a261235624bd76a24e040000001214007f010f00010100000000000509000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":119,"sd_hash":"4Ec1Y+029l6qdB8i8/NPXg==","sd_refcount":6,"sd_value":"0100148c400500004c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b4041900000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":121,"sd_hash":"ln3jocWzWH6k8yrFcr1uXQ==","sd_refcount":1,"sd_value":"0100148ca4050000b005000014000000a000000004008c00030000000252140020000000010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040004051b00000005002800ff010f0000000000010500000000000515000000a1e10f85a261235624bd76a2e9030000050b2800ffffffff00000000010500000000000515000000a1e10f85a261235624bd76a2e903000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":122,"sd_hash":"1jUrM3RiFEfvmrOfFZ4eGw==","sd_refcount":2,"sd_value":"0100148ca4050000b005000014000000a000000004008c00030000000252140020000000010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040004051b00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f0001010000000000051200000005102800ff010f0000000000010500000000000515000000a1e10f85a261235624bd76a2e9030000051b2800ffffffff00000000010500000000000515000000a1e10f85a261235624bd76a2e9030000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":124,"sd_hash":"weGQPAOo+DUuPgJS4dqImg==","sd_refcount":2,"sd_value":"0100148c240900003009000014000000dc0000000400c80005000000074238002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000074238002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000240240000010000010500000000000515000000a1e10f85a261235624bd76a2010200000240180000010000010200000000000520000000200200000240140020000c000101000000000001000000000400480830000000050a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050038000001000001000000aaf63111079cd111f79f00c04fc2dcd2010500000000000515000000a1e10f85a261235624bd76a2f2010000050a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000050a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000050a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000050a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a00000005002c000001000001000000765be9894d44624c991a0facbeda640c0102000000000005200000002002000005002c000001000001000000aaf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000abf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000acf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000adf63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000aef63111079cd111f79f00c04fc2dcd20102000000000005200000002002000005002c000001000001000000c96da3e217aec347b58bbe34c55ba6330102000000000005200000002d02000005002c001000000001000000607340c7bf20d011a76800aa006e05290102000000000005200000002a02000005002c001000000001000000d09f11b8f6046247ab7a4986c76b3f9a0102000000000005200000002a020000050a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000050a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a0200000500280000010000010000005e4cc705eb4db443bd9f86664c2a7fd501010000000000050b000000050028000001000001000000765be9894d44624c991a0facbeda640c0101000000000005090000000500280000010000010000007ddcc2ccada67a4a8846c04e3cc5350101010000000000050b0000000500280000010000010000009c360f28c7678e43ae981d46f3c6f54101010000000000050b000000050028000001000001000000aaf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000abf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000acf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000adf63111079cd111f79f00c04fc2dcd2010100000000000509000000050028000001000001000000aef63111079cd111f79f00c04fc2dcd2010100000000000509000000050028001000000001000000d09f11b8f6046247ab7a4986c76b3f9a01010000000000050b000000050328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000050a28003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a20002000000022400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000001800100002000102000000000005200000002a02000000021800040000000102000000000005200000002a02000000021800bd010f000102000000000005200000002002000000001400100000000101000000000001000000000000140094000200010100000000000509000000000014009400020001010000000000050b00000000001400ff010f0001010000000000051200000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":125,"sd_hash":"11DhBiyr67HGZe+QanWXqA==","sd_refcount":2,"sd_value":"0100149cc0000000cc000000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000200340002000000000018001400000001020000000000052000000020020000000014003f000f00010100000000000512000000010100000000000512000000010100000000000512000000"} +{"sd_id":126,"sd_hash":"9KXEaFdmPXfhWy+pwAFIcg==","sd_refcount":2,"sd_value":"0100148c400500005c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b4041900000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":127,"sd_hash":"rOrRRjYXQoJN/rdkw+89fg==","sd_refcount":2,"sd_value":"0100148c400500005c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b4041900000000002400bd010e00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":128,"sd_hash":"3kX5nuBuMFAX1xCex7EG1w==","sd_refcount":2,"sd_value":"0100148c6c0500008805000014000000a000000004008c0003000000024214006b010d00010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400cc0419000000050028000001000001000000fe03cc4ec0ff4749b630eb672a8a9dbc01010000000000010000000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000018009400020001020000000000052000000020020000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":129,"sd_hash":"bwtc7fclZE01kFyU3AYvQw==","sd_refcount":1,"sd_value":"0100148c2c01000038010000140000003000000004001c00010000000252140063010d000101000000000001000000000400fc0007000000000024007f010f00010500000000000515000000a1e10f85a261235624bd76a20402000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f0001010000000000051200000005123c002000000003000000df93f73d58981744a701735a1ecebf748d7a96bfe60dd011a28500aa003049e20102000000000005200000002002000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a20002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":130,"sd_hash":"Wv6aTg7+giMnI21jqa0Bjg==","sd_refcount":1,"sd_value":"0100148c1c01000028010000140000003000000004001c00010000000252140063010d000101000000000001000000000400ec000700000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014007f010f00010100000000000509000000000014009400020001010000000000050b00000000001400ff010f0001010000000000051200000005123c002000000003000000df93f73d58981744a701735a1ecebf748d7a96bfe60dd011a28500aa003049e20102000000000005200000002002000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000122400bd010f00010500000000000515000000a1e10f85a261235624bd76a20002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":134,"sd_hash":"D/6V0soUacFzRuHc/a/bhA==","sd_refcount":1,"sd_value":"0100148c1c05000028050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040090041800000000001400ff010f00010100000000000512000000000214007f010f00010100000000000509000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010100000000000512000000010100000000000512000000"} +{"sd_id":136,"sd_hash":"LAPve+Rs7gK6Hgsn9UlC5w==","sd_refcount":1,"sd_value":"0100148c7c05000088050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400f0041c00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014000100000001010000000000050b000000000014009400020001010000000000010000000000001400ff010f00010100000000000512000000000214007f010f00010100000000000509000000001214007f010f00010100000000000509000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":137,"sd_hash":"bbAXelz/TnB1TXxTvxQqUg==","sd_refcount":3,"sd_value":"0100148c6805000074050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400dc041b00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000010000000000001400ff010f0001010000000000050900000000001400ff010f00010100000000000512000000001214007f010f00010100000000000509000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":138,"sd_hash":"yE/VVNj0N3eOXuQNG9jRSQ==","sd_refcount":1,"sd_value":"0100148ce4010000f001000014000000000100000400ec00050000000252140043000100010100000000000100000000075a28000001000002000000abfff8f09111d011a06000aa006c33ed010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1b37a96bfe60dd011a28500aa003049e2010100000000000100000000075a380020000000030000004c94103e54c3d011aff80000f80367c12431b1b72eb8d011afee0000f80367c10101000000000001000000000400e4000600000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a207020000000014009400020001010000000000050b00000000001400ff010f0001010000000000051200000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000051a4800080000000300000057871ad34724454580813bb610cacbf2abfff8f09111d011a06000aa006c33ed010500000000000515000000a1e10f85a261235624bd76a2f201000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":144,"sd_hash":"dVS6Co8t5ADsJ9YIagi95g==","sd_refcount":4,"sd_value":"0100148c0805000024050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e201010000000000010000000004007c041700000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":145,"sd_hash":"NmfQ/X9E54SZYD8YtfZubg==","sd_refcount":15,"sd_value":"0100149c140500003005000014000000a000000004008c00030000000240140020000c00010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040074041800000005003c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005003c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a02000005003c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005003c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a02000005003c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005003c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a02000005003c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005003c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a02000005003c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005003c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a0200000500380030000000010000007f7a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a20502000005002c0010000000010000001db1a946ae605a40b7e8ff8a58d456d20102000000000005200000003002000005002c0030000000010000001c9ab66d2294d111aebd0000f80367c10102000000000005200000003102000005002c00300000000100000062bc0558c9bd2844a5e2856a0f4c185e0102000000000005200000003102000005002c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005002c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000050028000001000001000000531a72ab2f1ed011981900aa0040529b010100000000000100000000050028000001000001000000531a72ab2f1ed011981900aa0040529b01010000000000050a000000050228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20002000000002400bf010e00010500000000000515000000a1e10f85a261235624bd76a20702000000001800bf010f0001020000000000052000000020020000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":146,"sd_hash":"dIGr5qW2JOO9y9/8ubjhLA==","sd_refcount":14,"sd_value":"0100148cc0080000dc080000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040034082e0000000500380010000000010000000042164cc020d011a76800aa006e0529010500000000000515000000a1e10f85a261235624bd76a2290200000500380010000000010000001020205fa579d011902000c04fc2d4cf010500000000000515000000a1e10f85a261235624bd76a22902000005003800100000000100000040c20abca979d011902000c04fc2d4cf010500000000000515000000a1e10f85a261235624bd76a229020000050038001000000001000000f8887003e10ad211b42200a0c968f939010500000000000515000000a1e10f85a261235624bd76a2290200000500380030000000010000007f7a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a20502000005002c0010000000010000001db1a946ae605a40b7e8ff8a58d456d20102000000000005200000003002000005002c0030000000010000001c9ab66d2294d111aebd0000f80367c10102000000000005200000003102000005002c00300000000100000062bc0558c9bd2844a5e2856a0f4c185e01020000000000052000000031020000050028000001000001000000531a72ab2f1ed011981900aa0040529b010100000000000100000000050028000001000001000000531a72ab2f1ed011981900aa0040529b01010000000000050a000000050028000001000001000000541a72ab2f1ed011981900aa0040529b01010000000000050a000000050028000001000001000000561a72ab2f1ed011981900aa0040529b01010000000000050a000000050028001000000001000000422fba59a279d011902000c04fc2d3cf01010000000000050b00000005002800100000000100000054018de4f8bcd111870200c04fb9605001010000000000050b00000005002800100000000100000086b8b5774a94d111aebd0000f80367c101010000000000050b000000050028001000000001000000b39557e45594d111aebd0000f80367c101010000000000050b00000005002800300000000100000086b8b5774a94d111aebd0000f80367c101010000000000050a000000050028003000000001000000b29557e45594d111aebd0000f80367c101010000000000050a000000050028003000000001000000b39557e45594d111aebd0000f80367c101010000000000050a00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001800ff010f0001020000000000052000000024020000000014000000020001010000000000050b000000000014009400020001010000000000050a00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a02000005123c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e20101000000000005090000000512380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a02000005122c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":147,"sd_hash":"hueSgEF74XuA4n36JzjKcA==","sd_refcount":1,"sd_value":"0100149ca0010000bc01000014000000b40000000400a00003000000075228002000040002000000c23b0ef3f09fd111b6030000f80367c1010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400ec00080000000502280000010000010000008ffdacedb3ffd111b41d00a0c968f93901010000000000050b00000000002400ff000f00010500000000000515000000a1e10f85a261235624bd76a20002000000022400ff000f00010500000000000515000000a1e10f85a261235624bd76a20002000000022400ff000f00010500000000000515000000a1e10f85a261235624bd76a2070200000002140094000200010100000000000509000000000214009400020001010000000000050b00000000021400ff000f00010100000000000512000000000a1400ff000f00010100000000000300000000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":148,"sd_hash":"JOTV5B/yXdLB0ueD53/fxg==","sd_refcount":2,"sd_value":"0100148cc8010000e401000014000000b40000000400a00003000000075a28002000040002000000c23b0ef3f09fd111b6030000f80367c1010100000000000100000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040014010a00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a200020000000014009400020001010000000000050b00000000001400ff010f000101000000000005120000000512280000010000010000008ffdacedb3ffd111b41d00a0c968f93901010000000000050b00000000122400ff000f00010500000000000515000000a1e10f85a261235624bd76a20002000000122400ff000f00010500000000000515000000a1e10f85a261235624bd76a2070200000012140094000200010100000000000509000000001214009400020001010000000000050b00000000121400ff000f00010100000000000512000000001a1400ff000f00010100000000000300000000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":149,"sd_hash":"Ag7j+N+xrwlDsj0ZrY4h1w==","sd_refcount":13,"sd_value":"0100148c400500004c050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400b40419000000000014007f010f00010100000000000512000000001214007f010f00010100000000000509000000001224007f010f00010500000000000515000000a1e10f85a261235624bd76a24e040000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":150,"sd_hash":"KyeOiftHExHt0qbf8rSeWQ==","sd_refcount":8,"sd_value":"0100148c1c05000028050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400900418000000000014007f010f00010100000000000512000000001214007f010f00010100000000000509000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f000102000000000005200000002002000001010000000000051200000001020000000000052000000020020000"} +{"sd_id":151,"sd_hash":"k9pTLcsr7tklTnXrBr+OEw==","sd_refcount":1,"sd_value":"0100148c88080000a4080000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e20101000000000001000000000400fc072a0000000500480020000000030000001020205fa579d011902000c04fc2d4cf867a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a200020000050048002000000003000000507996bfe60dd011a28500aa003049e2867a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a200020000050048002000000003000000537996bfe60dd011a28500aa003049e2867a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a200020000050048002000000003000000d0bf0a3e6a12d011a06000aa006c33ed867a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a2000200000500380008000000010000004795e372187bd111adef00c04fd8d5cd010500000000000515000000a1e10f85a261235624bd76a2000200000500380008000000010000008847a6f30653d111a9c50000f80367c1010500000000000515000000a1e10f85a261235624bd76a2000200000500380020000000010000000042164cc020d011a76800aa006e0529010500000000000515000000a1e10f85a261235624bd76a2000200000500380030000000010000007f7a96bfe60dd011a28500aa003049e2010500000000000515000000a1e10f85a261235624bd76a20502000005002c000300000001000000a87a96bfe60dd011a28500aa003049e20102000000000005200000002602000005002c0010000000010000001db1a946ae605a40b7e8ff8a58d456d201020000000000052000000030020000050028000001000001000000531a72ab2f1ed011981900aa0040529b0101000000000001000000000500280008000000010000004795e372187bd111adef00c04fd8d5cd01010000000000050a0000000500280008000000010000008847a6f30653d111a9c50000f80367c101010000000000050a00000005002800300000000100000086b8b5774a94d111aebd0000f80367c101010000000000050a00000000002400d4010300010500000000000515000000a1e10f85a261235624bd76a20002000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000001800ff010f0001020000000000052000000024020000000014000300000001010000000000050a000000000014009400020001010000000000050b00000000001400ff010f00010100000000000512000000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a0200000512380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051238002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a200020000010500000000000515000000a1e10f85a261235624bd76a200020000"} +{"sd_id":152,"sd_hash":"sdTb8h5p8aMNEruxdY6cPA==","sd_refcount":1,"sd_value":"0100148cb0050000cc050000140000008c0000000400780002000000075a38002000000003000000be3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000075a38002000000003000000bf3b0ef3f09fd111b6030000f80367c1a57a96bfe60dd011a28500aa003049e2010100000000000100000000040024051d00000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a20002000000002400ff010f00010500000000000515000000a1e10f85a261235624bd76a242060000000014009400020001010000000000010000000000001400ff010f0001010000000000050900000000001400ff010f00010100000000000512000000001214007f010f00010100000000000509000000001224007f010f00010500000000000515000000a1e10f85a261235624bd76a24e040000051a3c0010000000030000000042164cc020d011a76800aa006e052914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000000042164cc020d011a76800aa006e0529ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c0010000000030000001020205fa579d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c00100000000300000040c20abca979d011902000c04fc2d4cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cf14cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000422fba59a279d011902000c04fc2d3cfba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f93914cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a3c001000000003000000f8887003e10ad211b42200a0c968f939ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608867a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f6089c7a96bfe60dd011a28500aa003049e2010100000000000509000000051a380010000000030000006d9ec6b7c72cd211854e00a0c983f608ba7a96bfe60dd011a28500aa003049e2010100000000000509000000051a38002000000003000000937b1bea485ed546bc6c4df4fda78a35867a96bfe60dd011a28500aa003049e201010000000000050a000000051a2c00940002000200000014cc28483714bc459b07ad6f015e5f280102000000000005200000002a020000051a2c0094000200020000009c7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051a2c009400020002000000ba7a96bfe60dd011a28500aa003049e20102000000000005200000002a020000051328003000000001000000e5c3783f9af7bd46a0b89d18116ddc7901010000000000050a000000051228003001000001000000de47e6916fd9704b9557d63ff4f3ccd801010000000000050a00000000122400ff010f00010500000000000515000000a1e10f85a261235624bd76a20702000000121800040000000102000000000005200000002a02000000121800bd010f0001020000000000052000000020020000010500000000000515000000a1e10f85a261235624bd76a242060000010500000000000515000000a1e10f85a261235624bd76a203020000"} +{"sd_id":5208492444341520456,"sd_hash":"SEhISEhISEhISEhISEhISA==","sd_refcount":1212696648} diff --git a/parser/catalog.go b/parser/catalog.go index c2e6fb5..597e35f 100644 --- a/parser/catalog.go +++ b/parser/catalog.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "math" + "sort" "time" "github.com/Velocidex/ordereddict" @@ -15,6 +16,9 @@ import ( const ( CATALOG_PAGE_NUMBER = 4 + + // https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/node.hxx#L226 + fNDCompressed = 4 << 13 ) // Store a simple struct of column spec for speed. @@ -34,7 +38,7 @@ type Table struct { Name string Columns []*ColumnSpec Indexes *ordereddict.Dict - LongValues *ordereddict.Dict + LongValueLookup LongValueLookup } // The tag contains a single row. @@ -77,22 +81,23 @@ type Table struct { // Then the tagged values are consumed // Column RDomain Identifier 256 Type Long Text -func (self *Table) tagToRecord(value *Value) *ordereddict.Dict { - tag := NewESENT_LEAF_ENTRY(self.ctx, value) - +func (self *Table) tagToRecord(value *Value, header *PageHeader) *ordereddict.Dict { if Debug { fmt.Printf("Processing row in Tag @ %d %#x (%#x)", - value.Tag.Offset, value.Tag.ValueOffset(self.ctx), + value.Tag.Offset, + value.Tag.ValueOffsetInPage(self.ctx, header), value.Tag.ValueSize(self.ctx)) - spew.Dump(value.Buffer) - tag.Dump() + spew.Dump(value.GetBuffer()) } result := ordereddict.NewDict() var taggedItems map[uint32][]byte - dd_header := self.ctx.Profile.ESENT_DATA_DEFINITION_HEADER(tag.Reader, tag.EntryData()) + reader := value.Reader() + + tag := NewESENT_LEAF_ENTRY(self.ctx, value) + dd_header := self.ctx.Profile.ESENT_DATA_DEFINITION_HEADER(reader, tag.EntryData()) // Start to parse immediately after the dd_header offset := dd_header.Offset + int64(dd_header.Size()) @@ -120,44 +125,44 @@ func (self *Table) tagToRecord(value *Value) *ordereddict.Dict { switch column.Type { case "Boolean": if column.SpaceUsage == 1 { - result.Set(column.Name, ParseUint8(tag.Reader, offset) > 0) + result.Set(column.Name, ParseUint8(reader, offset) > 0) } case "Signed byte": if column.SpaceUsage == 1 { - result.Set(column.Name, ParseUint8(tag.Reader, offset)) + result.Set(column.Name, ParseUint8(reader, offset)) } case "Signed short": if column.SpaceUsage == 2 { - result.Set(column.Name, ParseInt16(tag.Reader, offset)) + result.Set(column.Name, ParseInt16(reader, offset)) } case "Unsigned short": if column.SpaceUsage == 2 { - result.Set(column.Name, ParseUint16(tag.Reader, offset)) + result.Set(column.Name, ParseUint16(reader, offset)) } case "Signed long": if column.SpaceUsage == 4 { - result.Set(column.Name, ParseInt32(tag.Reader, offset)) + result.Set(column.Name, ParseInt32(reader, offset)) } case "Unsigned long": if column.SpaceUsage == 4 { - result.Set(column.Name, ParseUint32(tag.Reader, offset)) + result.Set(column.Name, ParseUint32(reader, offset)) } case "Single precision FP": if column.SpaceUsage == 4 { result.Set(column.Name, math.Float32frombits( - ParseUint32(tag.Reader, offset))) + ParseUint32(reader, offset))) } case "Double precision FP": if column.SpaceUsage == 8 { result.Set(column.Name, math.Float64frombits( - ParseUint64(tag.Reader, offset))) + ParseUint64(reader, offset))) } case "DateTime": @@ -165,13 +170,13 @@ func (self *Table) tagToRecord(value *Value) *ordereddict.Dict { switch column.Flags { case 1: // A more modern way of encoding - result.Set(column.Name, WinFileTime64(tag.Reader, offset)) + result.Set(column.Name, WinFileTime64(reader, offset)) case 0: // Some hair brained time serialization method // https://docs.microsoft.com/en-us/windows/win32/extensible-storage-engine/jet-coltyp - value_int := ParseUint64(tag.Reader, offset) + value_int := ParseUint64(reader, offset) days_since_1900 := math.Float64frombits(value_int) // In python time.mktime((1900,1,1,0,0,0,0,365,0)) @@ -203,25 +208,38 @@ func (self *Table) tagToRecord(value *Value) *ordereddict.Dict { default: // We have no idea - result.Set(column.Name, ParseUint64(tag.Reader, offset)) + result.Set(column.Name, ParseUint64(reader, offset)) + } + } + + case "Long Text", "Text": + if column.SpaceUsage < 2000 { + data := make([]byte, column.SpaceUsage) + n, err := reader.ReadAt(data, offset) + + if err == nil { + + // Flags can be given as the first char or in the + // column definition. + result.Set(column.Name, ParseLongText(data[:n], column.Flags)) } } case "Long long", "Currency": if column.SpaceUsage == 8 { - result.Set(column.Name, ParseUint64(tag.Reader, offset)) + result.Set(column.Name, ParseUint64(reader, offset)) } case "GUID": if column.SpaceUsage == 16 { result.Set(column.Name, - self.Header.Profile.GUID(tag.Reader, offset).AsString()) + self.Header.Profile.GUID(reader, offset).AsString()) } case "Binary": if column.SpaceUsage < 1024 { data := make([]byte, column.SpaceUsage) - n, err := tag.Reader.ReadAt(data, offset) + n, err := reader.ReadAt(data, offset) if err == nil { result.Set(column.Name, data[:n]) } @@ -245,7 +263,7 @@ func (self *Table) tagToRecord(value *Value) *ordereddict.Dict { // Variable data type index := int64(column.Identifier) - 127 - 1 - itemLen := int64(ParseUint16(tag.Reader, variableSizeOffset+index*2)) + itemLen := int64(ParseUint16(reader, variableSizeOffset+index*2)) if itemLen&0x8000 > 0 { // Empty Item @@ -256,12 +274,12 @@ func (self *Table) tagToRecord(value *Value) *ordereddict.Dict { switch column.Type { case "Binary": result.Set(column.Name, hex.EncodeToString([]byte( - ParseString(tag.Reader, + ParseString(reader, variableSizeOffset+variableDataBytesProcessed, itemLen-prevItemLen)))) case "Text": - result.Set(column.Name, ParseText(tag.Reader, + result.Set(column.Name, ParseText(reader, variableSizeOffset+variableDataBytesProcessed, itemLen-prevItemLen, column.Flags)) @@ -285,26 +303,47 @@ func (self *Table) tagToRecord(value *Value) *ordereddict.Dict { if Debug { fmt.Printf("Slice is %#x-%#x %x\n", variableDataBytesProcessed+variableSizeOffset, - len(value.Buffer), getSlice(value.Buffer, - uint64(variableDataBytesProcessed+ - variableSizeOffset), - uint64(len(value.Buffer)+1))) + value.BufferSize, + getValueSlice(value, uint64(variableDataBytesProcessed+ + variableSizeOffset), uint64(value.BufferSize))) } taggedItems = ParseTaggedValues( - self.ctx, getSlice(value.Buffer, - uint64(variableDataBytesProcessed+ - variableSizeOffset), - uint64(len(value.Buffer)+1))) + self.ctx, getValueSlice(value, + uint64(variableDataBytesProcessed+variableSizeOffset), + uint64(value.BufferSize))) } buf, pres := taggedItems[column.Identifier] if pres { reader := &BufferReaderAt{buf} switch column.Type { - case "Binary", "Long Binary": + case "Binary": + result.Set(column.Name, hex.EncodeToString(buf)) + + case "Long Binary": + // If the buf is key size (4 or 8 bytes) then we + // can look it up in the LV cache. Otherwise it is + // stored literally. + if len(buf) == 4 || len(buf) == 8 { + data, pres := self.LongValueLookup.GetLid(buf) + if pres { + buf = data + } + } + result.Set(column.Name, hex.EncodeToString(buf)) case "Long Text": + // If the buf is key size (4 or 8 bytes) then we + // can look it up in the LV cache. Otherwise it is + // stored literally. + if len(buf) == 4 || len(buf) == 8 { + data, pres := self.LongValueLookup.GetLid(buf) + if pres { + buf = data + } + } + // Flags can be given as the first char or in the // column definition. result.Set(column.Name, ParseLongText(buf, column.Flags)) @@ -378,13 +417,13 @@ func (self *Table) tagToRecord(value *Value) *ordereddict.Dict { case "Long long", "Currency": if column.SpaceUsage == 8 { - result.Set(column.Name, ParseUint64(tag.Reader, 0)) + result.Set(column.Name, ParseUint64(reader, 0)) } case "GUID": if column.SpaceUsage == 16 { result.Set(column.Name, - self.Header.Profile.GUID(tag.Reader, 0).AsString()) + self.Header.Profile.GUID(reader, 0).AsString()) } default: @@ -404,39 +443,33 @@ func (self *RecordTag) FlagSkip() uint64 { return 1 } -func getSlice(buffer []byte, start, end uint64) []byte { +func getValueSlice(value *Value, start, end uint64) []byte { if end < start { return nil } - length := uint64(len(buffer)) - - if start < 0 { - start = 0 - } - - if start > length { - start = length + length := end - start + if length > 1*1024*1024 { + return nil } - if end > length { - end = length - } + buffer := make([]byte, length) + value.reader.ReadAt(buffer, value.BufferOffset+int64(start)) - return buffer[start:end] + return buffer } // working slice to reassemble data type tagBuffer struct { - identifier uint32 - start, end uint64 - flags uint64 + identifier uint32 + start, length uint64 + flags uint64 } /* Tagged values are used to store sparse values. - The consist of an array of RecordTag, each RecordTag has an + They consist of an array of RecordTag, each RecordTag has an Identifier and an offset to the start of its data. The length of the data in each record is determine by the start of the next record. @@ -488,6 +521,18 @@ func ParseTaggedValues(ctx *ESEContext, buffer []byte) map[uint32][]byte { start += 1 } + if start > uint64(len(buffer)) { + start = uint64(len(buffer)) + } + + if end > uint64(len(buffer)) { + end = uint64(len(buffer)) + } + + if end < start { + end = start + } + result[tag.identifier] = buffer[start:end] if Debug { fmt.Printf("Consumed %#x bytes of TAGGED space from %#x to %#x for tag %#x\n", @@ -511,7 +556,11 @@ func (self *Catalog) DumpTable(name string, cb func(row *ordereddict.Dict) error func(header *PageHeader, id int64, value *Value) error { // Each tag stores a single row - all the // columns in the row are encoded in this tag. - return cb(table.tagToRecord(value)) + row := table.tagToRecord(value, header) + if len(row.Keys()) == 0 { + return nil + } + return cb(row) }) if err != nil { return err @@ -544,6 +593,8 @@ func parseItemName(dd_header *ESENT_DATA_DEFINITION_HEADER) string { 2*numEntries, int64(itemLen)) } +// Walking over each LINE in the catalog tree, we parse the data +// definitions. func (self *Catalog) __addItem(header *PageHeader, id int64, value *Value) error { leaf_entry := NewESENT_LEAF_ENTRY(self.ctx, value) dd_header := self.ctx.Profile.ESENT_DATA_DEFINITION_HEADER( @@ -563,7 +614,8 @@ func (self *Catalog) __addItem(header *PageHeader, id int64, value *Value) error Name: itemName, FatherDataPageNumber: catalog.Table().FatherDataPageNumber(), Indexes: ordereddict.NewDict(), - LongValues: ordereddict.NewDict()} + LongValueLookup: NewLongValueLookup(), + } self.currentTable = table self.Tables.Set(itemName, table) @@ -588,14 +640,67 @@ func (self *Catalog) __addItem(header *PageHeader, id int64, value *Value) error } self.currentTable.Indexes.Set(itemName, catalog) + case "CATALOG_TYPE_LONG_VALUE": + if Debug { + fmt.Printf("Catalog name %v for table %v\n", itemName, self.currentTable.Name) + } + lv := catalog.LongValue() + + WalkPages(self.ctx, int64(lv.FatherDataPageNumber()), + func(header *PageHeader, id int64, value *Value) error { + // Ignore tags that are too small to contain a key + if value.BufferSize < 8 { + return nil + } + + lv := self.ctx.Profile.LVKEY_BUFFER(value.reader, value.BufferOffset) + key := lv.ParseKey(self.ctx, header, value) + + long_value := &LongValue{ + Value: value, + header: header, + Key: key, + } + + self.currentTable.LongValueLookup[key.Key()] = long_value + + if Debug { + size := int(value.Tag._ValueSize()) + if size > 100 { + size = 100 + } + buffer := make([]byte, size) + value.Reader().ReadAt(buffer, 0) + + lv_buffer := long_value.Buffer() + if len(lv_buffer) > 100 { + lv_buffer = lv_buffer[:100] + } + fmt.Printf("------\nPage header %v\nID %v Tag %v\nPageID %v Flags %v\nKey %v \nLVBuffer %02x\nBuffer %02x \nTagLookup %v\n", + DebugPageHeader(self.ctx, header), id, + DebugTag(self.ctx, value.Tag, header), + value.PageID, + value.Flags, + long_value.Key.DebugString(), + lv_buffer, buffer, + len(self.currentTable.LongValueLookup)) + } + return nil + }) } return nil } -func (self *Catalog) Dump() string { +type DumpOptions struct { + LongValueTables bool + Indexes bool + Tables bool +} + +func (self *Catalog) Dump(options DumpOptions) string { result := "" for _, name := range self.Tables.Keys() { @@ -610,11 +715,40 @@ func (self *Catalog) Dump() string { column.Name, column.Type, column.Flags) } - result += fmt.Sprintf("%sIndexes\n", space) - for _, index := range table.Indexes.Keys() { - result += fmt.Sprintf("%s%s%v:\n", space, space, index) + if options.Indexes { + result += fmt.Sprintf("%sIndexes\n", space) + for _, index := range table.Indexes.Keys() { + result += fmt.Sprintf("%s%s%v:\n", space, space, index) + } + result += "\n" } - result += "\n" + + if options.LongValueTables && len(table.LongValueLookup) > 0 { + result += fmt.Sprintf("%sLongValues\n", space) + values := []*LongValue{} + for _, lv := range table.LongValueLookup { + values = append(values, lv) + } + + sort.Slice(values, func(i, j int) bool { + return values[i].Key.Key() < values[j].Key.Key() + }) + + for _, lv := range values { + buffer := lv.Buffer() + size := len(buffer) + if size > 100 { + buffer = buffer[:100] + } + result += fmt.Sprintf("%s%s%02x: \"%02x\"\n", + space, space, + lv.Key.Key(), + //lv.Key.DebugString(), + buffer) + } + result += "\n" + } + } return result diff --git a/parser/context.go b/parser/context.go index 19b642c..6332869 100644 --- a/parser/context.go +++ b/parser/context.go @@ -42,7 +42,10 @@ func NewESEContext(reader io.ReaderAt) (*ESEContext, error) { } func (self *ESEContext) GetPage(id int64) *PageHeader { - // First file page is file header, second page is backup of file header. - result := self.Profile.PageHeader(self.Reader, (id+1)*self.PageSize) - return result + // First file page is file header, second page is backup of file + // header. + return &PageHeader{ + PageHeader_: self.Profile.PageHeader_( + self.Reader, (id+1)*self.PageSize), + } } diff --git a/parser/conversion.spec.yaml b/parser/conversion.spec.yaml index e2f54d8..d1d40e7 100644 --- a/parser/conversion.spec.yaml +++ b/parser/conversion.spec.yaml @@ -3,11 +3,14 @@ Profile: ESEProfile Filename: ese_profile.json GenerateDebugString: true Structs: + # https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/daedef.hxx#L2695 - FileHeader - DBTime - JET_LOGTIME - JET_SIGNATURE - - PageHeader + + # https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/cpage.hxx#L887 + - PageHeader_ - Tag - ESENT_ROOT_HEADER - ESENT_BRANCH_HEADER @@ -26,6 +29,15 @@ Structs: - ESENT_CATALOG_DATA_DEFINITION_ENTRY - RecordTag - GUID + - LongValueHeader + + # https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/lv.hxx#L37 + - LVKEY64 + - LVKEY32 + - LVKEY_BUFFER # This one is here to include some utility functions we might need. - Misc + + # some helpers + - CompressedKey diff --git a/parser/debug.go b/parser/debug.go index bbda069..c870900 100644 --- a/parser/debug.go +++ b/parser/debug.go @@ -1,5 +1,7 @@ package parser +import "fmt" + var ( // General purpose debug statements. Debug = false @@ -11,3 +13,13 @@ var ( func DlvDebug() { } + +func DebugPageHeader(ctx *ESEContext, page *PageHeader) string { + return page.DebugString() + fmt.Sprintf(" EndOffset: %#x \n", page.EndOffset(ctx)) +} + +func DebugTag(ctx *ESEContext, tag *Tag, page *PageHeader) string { + return tag.DebugString() + + fmt.Sprintf(" ValueOffsetInPage: %#x \n", + tag.ValueOffsetInPage(ctx, page)) +} diff --git a/parser/ese_gen.go b/parser/ese_gen.go index e788235..73906ad 100644 --- a/parser/ese_gen.go +++ b/parser/ese_gen.go @@ -97,29 +97,38 @@ type ESEProfile struct { Off_JET_LOGTIME_Year int64 Off_JET_SIGNATURE_Creation int64 Off_JET_SIGNATURE_CreatorMachine int64 + Off_LVKEY32_Lid int64 + Off_LVKEY32_SegmentOffset int64 + Off_LVKEY64_Lid int64 + Off_LVKEY64_SegmentOffset int64 + Off_LVKEY_BUFFER_PrefixLength int64 + Off_LVKEY_BUFFER_SuffixLength int64 + Off_LVKEY_BUFFER_KeyBuffer int64 Off_Misc_Misc int64 Off_Misc_Misc2 int64 Off_Misc_Misc3 int64 Off_Misc_Misc5 int64 Off_Misc_Misc4 int64 - Off_PageHeader_LastModified int64 - Off_PageHeader_PreviousPageNumber int64 - Off_PageHeader_NextPageNumber int64 - Off_PageHeader_FatherPage int64 - Off_PageHeader_AvailableDataSize int64 - Off_PageHeader_AvailableDataOffset int64 - Off_PageHeader_AvailablePageTag int64 - Off_PageHeader_Flags int64 + Off_PageHeader__LastModified int64 + Off_PageHeader__PreviousPageNumber int64 + Off_PageHeader__NextPageNumber int64 + Off_PageHeader__FatherPage int64 + Off_PageHeader__AvailableDataSize int64 + Off_PageHeader__AvailableDataOffset int64 + Off_PageHeader__AvailablePageTag int64 + Off_PageHeader__Flags int64 Off_RecordTag_Identifier int64 Off_RecordTag_DataOffset int64 Off_RecordTag_Flags int64 Off_Tag__ValueSize int64 Off_Tag__ValueOffset int64 + Off_Tag_Flags_ int64 + Off_Tag_Flags int64 } func NewESEProfile() *ESEProfile { // Specific offsets can be tweaked to cater for slight version mismatches. - self := &ESEProfile{0,4,8,12,0,4,8,12,0,4,8,12,0,4,0,2,4,0,0,0,4,6,10,10,10,10,0,1,2,0,-2,0,0,0,4,8,12,0,0,0,4,8,232,12,16,24,236,0,4,6,8,0,1,2,3,4,5,4,12,0,0,0,0,0,8,16,20,24,28,32,34,36,0,2,2,0,2} + self := &ESEProfile{0,4,8,12,0,4,8,12,0,4,8,12,0,4,0,2,4,0,0,0,4,6,10,10,10,10,0,1,2,0,-2,0,0,0,4,8,12,0,0,0,4,8,232,12,16,24,236,0,4,6,8,0,1,2,3,4,5,4,12,0,4,0,8,0,2,4,0,0,0,0,0,8,16,20,24,28,32,34,36,0,2,2,0,2,2,2} return self } @@ -199,12 +208,24 @@ func (self *ESEProfile) JET_SIGNATURE(reader io.ReaderAt, offset int64) *JET_SIG return &JET_SIGNATURE{Reader: reader, Offset: offset, Profile: self} } +func (self *ESEProfile) LVKEY32(reader io.ReaderAt, offset int64) *LVKEY32 { + return &LVKEY32{Reader: reader, Offset: offset, Profile: self} +} + +func (self *ESEProfile) LVKEY64(reader io.ReaderAt, offset int64) *LVKEY64 { + return &LVKEY64{Reader: reader, Offset: offset, Profile: self} +} + +func (self *ESEProfile) LVKEY_BUFFER(reader io.ReaderAt, offset int64) *LVKEY_BUFFER { + return &LVKEY_BUFFER{Reader: reader, Offset: offset, Profile: self} +} + func (self *ESEProfile) Misc(reader io.ReaderAt, offset int64) *Misc { return &Misc{Reader: reader, Offset: offset, Profile: self} } -func (self *ESEProfile) PageHeader(reader io.ReaderAt, offset int64) *PageHeader { - return &PageHeader{Reader: reader, Offset: offset, Profile: self} +func (self *ESEProfile) PageHeader_(reader io.ReaderAt, offset int64) *PageHeader_ { + return &PageHeader_{Reader: reader, Offset: offset, Profile: self} } func (self *ESEProfile) RecordTag(reader io.ReaderAt, offset int64) *RecordTag { @@ -548,8 +569,8 @@ func (self *ESENT_DATA_DEFINITION_HEADER) Size() int { return 4 } -func (self *ESENT_DATA_DEFINITION_HEADER) LastFixedType() int8 { - return ParseInt8(self.Reader, self.Profile.Off_ESENT_DATA_DEFINITION_HEADER_LastFixedType + self.Offset) +func (self *ESENT_DATA_DEFINITION_HEADER) LastFixedType() byte { + return ParseUint8(self.Reader, self.Profile.Off_ESENT_DATA_DEFINITION_HEADER_LastFixedType + self.Offset) } func (self *ESENT_DATA_DEFINITION_HEADER) LastVariableDataType() byte { @@ -601,8 +622,9 @@ func (self *ESENT_LEAF_ENTRY) CommonPageKeySize() uint16 { return ParseUint16(self.Reader, self.Profile.Off_ESENT_LEAF_ENTRY_CommonPageKeySize + self.Offset) } -func (self *ESENT_LEAF_ENTRY) LocalPageKeySize() uint16 { - return ParseUint16(self.Reader, self.Profile.Off_ESENT_LEAF_ENTRY_LocalPageKeySize + self.Offset) +func (self *ESENT_LEAF_ENTRY) LocalPageKeySize() uint64 { + value := ParseUint16(self.Reader, self.Profile.Off_ESENT_LEAF_ENTRY_LocalPageKeySize + self.Offset) + return (uint64(value) & 0x1fff) >> 0x0 } func (self *ESENT_LEAF_ENTRY) DebugString() string { result := fmt.Sprintf("struct ESENT_LEAF_ENTRY @ %#x:\n", self.Offset) @@ -881,6 +903,84 @@ func (self *JET_SIGNATURE) DebugString() string { return result } +type LVKEY32 struct { + Reader io.ReaderAt + Offset int64 + Profile *ESEProfile +} + +func (self *LVKEY32) Size() int { + return 8 +} + +func (self *LVKEY32) Lid() uint32 { + return ParseUint32(self.Reader, self.Profile.Off_LVKEY32_Lid + self.Offset) +} + +func (self *LVKEY32) SegmentOffset() uint32 { + return ParseUint32(self.Reader, self.Profile.Off_LVKEY32_SegmentOffset + self.Offset) +} +func (self *LVKEY32) DebugString() string { + result := fmt.Sprintf("struct LVKEY32 @ %#x:\n", self.Offset) + result += fmt.Sprintf(" Lid: %#0x\n", self.Lid()) + result += fmt.Sprintf(" SegmentOffset: %#0x\n", self.SegmentOffset()) + return result +} + +type LVKEY64 struct { + Reader io.ReaderAt + Offset int64 + Profile *ESEProfile +} + +func (self *LVKEY64) Size() int { + return 12 +} + +func (self *LVKEY64) Lid() uint64 { + return ParseUint64(self.Reader, self.Profile.Off_LVKEY64_Lid + self.Offset) +} + +func (self *LVKEY64) SegmentOffset() uint32 { + return ParseUint32(self.Reader, self.Profile.Off_LVKEY64_SegmentOffset + self.Offset) +} +func (self *LVKEY64) DebugString() string { + result := fmt.Sprintf("struct LVKEY64 @ %#x:\n", self.Offset) + result += fmt.Sprintf(" Lid: %#0x\n", self.Lid()) + result += fmt.Sprintf(" SegmentOffset: %#0x\n", self.SegmentOffset()) + return result +} + +type LVKEY_BUFFER struct { + Reader io.ReaderAt + Offset int64 + Profile *ESEProfile +} + +func (self *LVKEY_BUFFER) Size() int { + return 0 +} + +func (self *LVKEY_BUFFER) PrefixLength() uint16 { + return ParseUint16(self.Reader, self.Profile.Off_LVKEY_BUFFER_PrefixLength + self.Offset) +} + +func (self *LVKEY_BUFFER) SuffixLength() uint16 { + return ParseUint16(self.Reader, self.Profile.Off_LVKEY_BUFFER_SuffixLength + self.Offset) +} + + +func (self *LVKEY_BUFFER) KeyBuffer() string { + return ParseString(self.Reader, self.Profile.Off_LVKEY_BUFFER_KeyBuffer + self.Offset, 12) +} +func (self *LVKEY_BUFFER) DebugString() string { + result := fmt.Sprintf("struct LVKEY_BUFFER @ %#x:\n", self.Offset) + result += fmt.Sprintf(" PrefixLength: %#0x\n", self.PrefixLength()) + result += fmt.Sprintf(" SuffixLength: %#0x\n", self.SuffixLength()) + result += fmt.Sprintf(" KeyBuffer: %v\n", string(self.KeyBuffer())) + return result +} + type Misc struct { Reader io.ReaderAt Offset int64 @@ -900,7 +1000,7 @@ func (self *Misc) Misc2() int16 { } func (self *Misc) Misc3() int64 { - return int64(ParseUint64(self.Reader, self.Profile.Off_Misc_Misc3 + self.Offset)) + return ParseInt64(self.Reader, self.Profile.Off_Misc_Misc3 + self.Offset) } func (self *Misc) Misc5() uint64 { @@ -921,46 +1021,46 @@ func (self *Misc) DebugString() string { return result } -type PageHeader struct { +type PageHeader_ struct { Reader io.ReaderAt Offset int64 Profile *ESEProfile } -func (self *PageHeader) Size() int { +func (self *PageHeader_) Size() int { return 0 } -func (self *PageHeader) LastModified() *DBTime { - return self.Profile.DBTime(self.Reader, self.Profile.Off_PageHeader_LastModified + self.Offset) +func (self *PageHeader_) LastModified() *DBTime { + return self.Profile.DBTime(self.Reader, self.Profile.Off_PageHeader__LastModified + self.Offset) } -func (self *PageHeader) PreviousPageNumber() uint32 { - return ParseUint32(self.Reader, self.Profile.Off_PageHeader_PreviousPageNumber + self.Offset) +func (self *PageHeader_) PreviousPageNumber() uint32 { + return ParseUint32(self.Reader, self.Profile.Off_PageHeader__PreviousPageNumber + self.Offset) } -func (self *PageHeader) NextPageNumber() uint32 { - return ParseUint32(self.Reader, self.Profile.Off_PageHeader_NextPageNumber + self.Offset) +func (self *PageHeader_) NextPageNumber() uint32 { + return ParseUint32(self.Reader, self.Profile.Off_PageHeader__NextPageNumber + self.Offset) } -func (self *PageHeader) FatherPage() uint32 { - return ParseUint32(self.Reader, self.Profile.Off_PageHeader_FatherPage + self.Offset) +func (self *PageHeader_) FatherPage() uint32 { + return ParseUint32(self.Reader, self.Profile.Off_PageHeader__FatherPage + self.Offset) } -func (self *PageHeader) AvailableDataSize() uint16 { - return ParseUint16(self.Reader, self.Profile.Off_PageHeader_AvailableDataSize + self.Offset) +func (self *PageHeader_) AvailableDataSize() uint16 { + return ParseUint16(self.Reader, self.Profile.Off_PageHeader__AvailableDataSize + self.Offset) } -func (self *PageHeader) AvailableDataOffset() uint16 { - return ParseUint16(self.Reader, self.Profile.Off_PageHeader_AvailableDataOffset + self.Offset) +func (self *PageHeader_) AvailableDataOffset() uint16 { + return ParseUint16(self.Reader, self.Profile.Off_PageHeader__AvailableDataOffset + self.Offset) } -func (self *PageHeader) AvailablePageTag() uint16 { - return ParseUint16(self.Reader, self.Profile.Off_PageHeader_AvailablePageTag + self.Offset) +func (self *PageHeader_) AvailablePageTag() uint16 { + return ParseUint16(self.Reader, self.Profile.Off_PageHeader__AvailablePageTag + self.Offset) } -func (self *PageHeader) Flags() *Flags { - value := ParseUint32(self.Reader, self.Profile.Off_PageHeader_Flags + self.Offset) +func (self *PageHeader_) Flags() *Flags { + value := ParseUint32(self.Reader, self.Profile.Off_PageHeader__Flags + self.Offset) names := make(map[string]bool) @@ -995,8 +1095,8 @@ func (self *PageHeader) Flags() *Flags { return &Flags{Value: uint64(value), Names: names} } -func (self *PageHeader) DebugString() string { - result := fmt.Sprintf("struct PageHeader @ %#x:\n", self.Offset) +func (self *PageHeader_) DebugString() string { + result := fmt.Sprintf("struct PageHeader_ @ %#x:\n", self.Offset) result += fmt.Sprintf(" LastModified: {\n%v}\n", indent(self.LastModified().DebugString())) result += fmt.Sprintf(" PreviousPageNumber: %#0x\n", self.PreviousPageNumber()) result += fmt.Sprintf(" NextPageNumber: %#0x\n", self.NextPageNumber()) @@ -1046,7 +1146,7 @@ type Tag struct { } func (self *Tag) Size() int { - return 8 + return 4 } func (self *Tag) _ValueSize() uint16 { @@ -1056,10 +1156,37 @@ func (self *Tag) _ValueSize() uint16 { func (self *Tag) _ValueOffset() uint16 { return ParseUint16(self.Reader, self.Profile.Off_Tag__ValueOffset + self.Offset) } + +func (self *Tag) Flags_() uint16 { + return ParseUint16(self.Reader, self.Profile.Off_Tag_Flags_ + self.Offset) +} + +func (self *Tag) Flags() *Flags { + value := ParseUint16(self.Reader, self.Profile.Off_Tag_Flags + self.Offset) + names := make(map[string]bool) + + + if value & 8192 != 0 { + names["fNDVersion"] = true + } + + if value & 16384 != 0 { + names["fNDDeleted"] = true + } + + if value & 32768 != 0 { + names["fNDCompressed"] = true + } + + return &Flags{Value: uint64(value), Names: names} +} + func (self *Tag) DebugString() string { result := fmt.Sprintf("struct Tag @ %#x:\n", self.Offset) result += fmt.Sprintf(" _ValueSize: %#0x\n", self._ValueSize()) result += fmt.Sprintf(" _ValueOffset: %#0x\n", self._ValueOffset()) + result += fmt.Sprintf(" Flags_: %#0x\n", self.Flags_()) + result += fmt.Sprintf(" Flags: %v\n", self.Flags().DebugString()) return result } @@ -1140,15 +1267,6 @@ func ParseInt64(reader io.ReaderAt, offset int64) int64 { return int64(binary.LittleEndian.Uint64(data)) } -func ParseInt8(reader io.ReaderAt, offset int64) int8 { - result := make([]byte, 1) - _, err := reader.ReadAt(result, offset) - if err != nil { - return 0 - } - return int8(result[0]) -} - func ParseUint16(reader io.ReaderAt, offset int64) uint16 { data := make([]byte, 2) _, err := reader.ReadAt(data, offset) @@ -1219,7 +1337,10 @@ func ParseTerminatedUTF16String(reader io.ReaderAt, offset int64) string { if idx < 0 { idx = n-1 } - return UTF16BytesToUTF8(data[0:idx+1], binary.LittleEndian) + if idx%2 != 0 { + idx += 1 + } + return UTF16BytesToUTF8(data[0:idx], binary.LittleEndian) } func ParseUTF16String(reader io.ReaderAt, offset int64, length int64) string { diff --git a/parser/ese_profile.json b/parser/ese_profile.json index eec31f3..319c04a 100644 --- a/parser/ese_profile.json +++ b/parser/ese_profile.json @@ -31,7 +31,7 @@ "Month": [4, ["unsigned char"]], "Year": [5, ["unsigned char"]] }], - "PageHeader": [0, { + "PageHeader_": [0, { "LastModified": [8, ["DBTime"]], "PreviousPageNumber": [16, ["unsigned long"]], "NextPageNumber": [20, ["unsigned long"]], @@ -52,9 +52,18 @@ } }]] }], - "Tag": [8, { + "Tag": [4, { "_ValueSize": [0, ["unsigned short"]], - "_ValueOffset": [2, ["unsigned short"]] + "_ValueOffset": [2, ["unsigned short"]], + "Flags_": [2, ["unsigned short"]], + "Flags": [2, ["Flags", { + "target": "unsigned short", + "maskmap": { + "fNDVersion": 8192, + "fNDDeleted": 16384, + "fNDCompressed": 32768 + } + }]] }], "ESENT_ROOT_HEADER": [16, { "InitialNumberOfPages": [0, ["unsigned long"]], @@ -92,7 +101,11 @@ "ESENT_LEAF_ENTRY": [16, { "CommonPageKeySize": [-2, ["unsigned short"]], - "LocalPageKeySize": [0, ["unsigned short"]] + "LocalPageKeySize": [0, ["BitField", { + "target": "unsigned short", + "start_bit": 0, + "end_bit": 13 + }]] }], "ESENT_BRANCH_ENTRY": [16, { @@ -156,7 +169,7 @@ }], "ESENT_DATA_DEFINITION_HEADER": [4, { - "LastFixedType": [0, ["char"]], + "LastFixedType": [0, ["unsigned char"]], "LastVariableDataType": [1, ["unsigned char"]], "VariableSizeOffset": [2, ["unsigned short"]] }], @@ -209,5 +222,23 @@ "count": 8, "target": "unsigned char" }]] + }], + + "LVKEY64": [12, { + "Lid": [0, ["unsigned long long"]], + "SegmentOffset": [8, ["unsigned long"]] + }], + + "LVKEY32": [8, { + "Lid": [0, ["unsigned long"]], + "SegmentOffset": [4, ["unsigned long"]] + }], + + "LVKEY_BUFFER": [0, { + "PrefixLength": [0, ["unsigned short"]], + "SuffixLength": [2, ["unsigned short"]], + "KeyBuffer": [4, ["String", { + "length": 12 + }]] }] } diff --git a/parser/long_values.go b/parser/long_values.go new file mode 100644 index 0000000..6d2b3b2 --- /dev/null +++ b/parser/long_values.go @@ -0,0 +1,130 @@ +package parser + +import ( + "fmt" + "io" +) + +type LongValue struct { + Value *Value + header *PageHeader + + // Calculated key for this long value object. + Key Key +} + +func (self *LongValue) Buffer() []byte { + start := int64(self.Key.EndOffset()) + result := make([]byte, self.Value.BufferSize-start) + self.Value.Reader().ReadAt(result, start) + return result +} + +func (self *LongValue) Reader() io.ReaderAt { + start := int64(self.Key.EndOffset()) + return NewOffsetReader( + self.Value.Reader(), start, self.Value.BufferSize-start) +} + +type LongValueLookup map[string]*LongValue + +// This can potentially return a lot of data +func (self LongValueLookup) GetLid(lid []byte) ([]byte, bool) { + if len(lid) != 4 { + return nil, false + } + + // Swap byte order between Lid and key + swapped := []byte{lid[3], lid[2], lid[1], lid[0]} + + // For now we only get the first segment + key := Key{ + prefix: swapped, + suffix: make([]byte, 4), + } + + // Try to find segments + value, pres := self[key.Key()] + if pres { + return value.Buffer(), true + } + return nil, false +} + +func NewLongValueLookup() LongValueLookup { + return make(LongValueLookup) +} + +type Key struct { + prefix []byte + suffix []byte + + end_offset uint64 +} + +func (self *Key) Key() string { + return string(self.prefix) + string(self.suffix) +} + +func (self *Key) DebugString() string { + result := "" + if len(self.prefix) > 0 { + result += fmt.Sprintf("prefix %02x ", self.prefix) + } + + if len(self.suffix) > 0 { + result += fmt.Sprintf("suffix %02x ", self.suffix) + } + return result + fmt.Sprintf(" key %02x ", self.Key()) +} + +func (self *Key) EndOffset() uint64 { + return self.end_offset +} + +func (self *LVKEY_BUFFER) ParseKey(ctx *ESEContext, header *PageHeader, value *Value) (key Key) { + key.end_offset = uint64(ctx.Profile.Off_LVKEY_BUFFER_KeyBuffer) + + prefix_lenth := uint64(self.PrefixLength()) + if prefix_lenth > 8 { + prefix_lenth = 8 + } + + suffix_length := uint64(self.SuffixLength()) + if suffix_length > 8-prefix_lenth { + suffix_length = 8 - prefix_lenth + } + + // Compressed keys + if value.Tag.Flags_()&fNDCompressed > 0 { + external_value := header.ExternalValueBytes(ctx) + if prefix_lenth > uint64(len(external_value)) { + prefix_lenth = uint64(len(external_value)) + } + + for i := uint64(0); i < prefix_lenth; i++ { + key.prefix = append(key.prefix, external_value[i]) + } + key_buffer := self.KeyBuffer() + if suffix_length > 8 { + suffix_length = 8 + } + + key.suffix = []byte(key_buffer[:suffix_length]) + key.end_offset += suffix_length + + } else { + // The key is not compressed - we read both prefix + // and suffix from the actual key + key_buffer := []byte(self.KeyBuffer()) + for uint64(len(key_buffer)) < prefix_lenth+suffix_length { + key_buffer = append(key_buffer, 0) + } + + key.prefix = key_buffer[:prefix_lenth] + key.suffix = key_buffer[prefix_lenth : prefix_lenth+suffix_length] + key.end_offset += suffix_length + prefix_lenth + } + + return key +} diff --git a/parser/pages.go b/parser/pages.go index 1eb86fb..476296d 100644 --- a/parser/pages.go +++ b/parser/pages.go @@ -9,21 +9,40 @@ const ( TAG_COMMON = 4 ) +// TODO: This is called LINE in the MS code. It represents a single +// node in the page. Depending on the page type it needs to be further +// parsed. type Value struct { Tag *Tag PageID int64 - Buffer []byte Flags uint64 + + reader io.ReaderAt + BufferOffset int64 + BufferSize int64 +} + +func (self *Value) GetBuffer() []byte { + result := make([]byte, self.BufferSize) + self.reader.ReadAt(result, self.BufferOffset) + return result } func (self *Value) Reader() io.ReaderAt { - return &BufferReaderAt{self.Buffer} + return NewOffsetReader(self.reader, + self.BufferOffset, self.BufferSize) } -func NewValue(ctx *ESEContext, tag *Tag, PageID int64, buffer []byte) *Value { - result := &Value{Tag: tag, PageID: PageID, Buffer: buffer} +func NewReaderValue(ctx *ESEContext, tag *Tag, PageID int64, + reader io.ReaderAt, start, length int64) *Value { + result := &Value{Tag: tag, PageID: PageID, reader: reader, + BufferOffset: start, BufferSize: length} if ctx.Version == 0x620 && ctx.Revision >= 17 && - ctx.PageSize > 8192 && len(buffer) > 0 { + ctx.PageSize > 8192 && length > 0 { + + buffer := make([]byte, 4) + reader.ReadAt(buffer, start) + result.Flags = uint64(buffer[1] >> 5) buffer[1] &= 0x1f } else { @@ -32,15 +51,26 @@ func NewValue(ctx *ESEContext, tag *Tag, PageID int64, buffer []byte) *Value { return result } -func (self *Tag) ValueOffset(ctx *ESEContext) uint16 { +func (self *Tag) valueOffset(ctx *ESEContext) uint16 { if ctx.Version == 0x620 && ctx.Revision >= 17 && ctx.PageSize > 8192 { return self._ValueOffset() & 0x7FFF } return self._ValueOffset() & 0x1FFF } +func (self *Tag) ValueOffsetInPage(ctx *ESEContext, page *PageHeader) int64 { + return int64(self.valueOffset(ctx)) + page.EndOffset(ctx) +} + +func (self *Tag) FFlags() uint16 { + // CPAGE::TAG::FFlags + // https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/ese/cpage.cxx#1212 + return (self._ValueOffset() & 0x1fff) >> 13 +} + func (self *Tag) ValueSize(ctx *ESEContext) uint16 { - if ctx.Version == 0x620 && ctx.Revision >= 17 && ctx.PageSize > 8192 { + if ctx.Version == 0x620 && ctx.Revision >= 17 && + !IsSmallPage(ctx.PageSize) { return self._ValueSize() & 0x7FFF } return self._ValueSize() & 0x1FFF @@ -49,17 +79,20 @@ func (self *Tag) ValueSize(ctx *ESEContext) uint16 { func GetPageValues(ctx *ESEContext, header *PageHeader, id int64) []*Value { result := []*Value{} - // Tags are written from the end of the page + // Tags are written from the end of the page. Sizeof(Tag) = 4 offset := ctx.PageSize + header.Offset - 4 + // Skip the external value tag because it is fetched using a + // dedicated call to PageHeader.ExternalValue() + offset -= 4 + for tag_count := header.AvailablePageTag(); tag_count > 0; tag_count-- { tag := ctx.Profile.Tag(ctx.Reader, offset) - value_offset := header.EndOffset(ctx) + int64(tag.ValueOffset(ctx)) - - buffer := make([]byte, int(tag.ValueSize(ctx))) - ctx.Reader.ReadAt(buffer, value_offset) - result = append(result, NewValue(ctx, tag, id, buffer)) + result = append(result, NewReaderValue( + ctx, tag, id, ctx.Reader, + tag.ValueOffsetInPage(ctx, header), + int64(tag.ValueSize(ctx)))) offset -= 4 } @@ -77,6 +110,33 @@ func GetBranch(ctx *ESEContext, value *Value) *ESENT_BRANCH_HEADER { return ctx.Profile.ESENT_BRANCH_HEADER(value.Reader(), 0) } +type PageHeader struct { + *PageHeader_ + + // The value pointed to by tag 0 + external_value_bytes []byte +} + +func (self *PageHeader) ExternalValueBytes(ctx *ESEContext) []byte { + if self.external_value_bytes != nil { + return self.external_value_bytes + } + + self.external_value_bytes = self.ExternalValue(ctx).GetBuffer() + return self.external_value_bytes +} + +// The External value is the zero'th tag +func (self *PageHeader) ExternalValue(ctx *ESEContext) *Value { + offset := ctx.PageSize + self.Offset - 4 + tag := self.Profile.Tag(self.Reader, offset) + + return NewReaderValue( + ctx, tag, 0, ctx.Reader, + tag.ValueOffsetInPage(ctx, self), + int64(tag.ValueSize(ctx))) +} + func (self *PageHeader) IsBranch() bool { return !self.Flags().IsSet("Leaf") } @@ -86,15 +146,14 @@ func (self *PageHeader) IsLeaf() bool { } func (self *PageHeader) EndOffset(ctx *ESEContext) int64 { - // Common size size := int64(40) - // Depending on version, the size of the header is different. - if ctx.Version == 0x620 && ctx.Revision >= 0x11 && ctx.PageSize > 8192 { - // Windows 7 and later - size += 5 * 8 + // The header is larger when the pagesize is bigger (PGHDR2 vs + // PGHDR) + // https://github.com/microsoft/Extensible-Storage-Engine/blob/933dc839b5a97b9a5b3e04824bdd456daf75a57d/dev/ese/src/inc/cpage.hxx#L885 + if !IsSmallPage(ctx.PageSize) { + size = 80 } - return self.Offset + size } @@ -110,7 +169,8 @@ func DumpPage(ctx *ESEContext, id int64) { for i, value := range values { fmt.Printf("Tag %v @ %#x offset %#x length %#x\n", - i, value.Tag.Offset, value.Tag.ValueOffset(ctx), + i, value.Tag.Offset, + value.Tag.ValueOffsetInPage(ctx, header), value.Tag.ValueSize(ctx)) } @@ -126,7 +186,7 @@ func DumpPage(ctx *ESEContext, id int64) { // SpaceTree header } else if flags.IsSet("SpaceTree") { ctx.Profile.ESENT_SPACE_TREE_HEADER( - &BufferReaderAt{values[0].Buffer}, 0).Dump() + ctx.Reader, values[0].BufferOffset).Dump() // Leaf header } else if header.IsLeaf() { @@ -238,21 +298,21 @@ func _walkPages(ctx *ESEContext, } seen[id] = true - if DebugWalk { - fmt.Printf("Walking page %v\n", id) - } - header := ctx.GetPage(id) values := GetPageValues(ctx, header, id) + if DebugWalk { + fmt.Printf("Walking page %v %v\n", id, header.DebugString()) + } // No more records. if len(values) == 0 { return nil } - for _, value := range values[1:] { + for _, value := range values { if header.IsLeaf() { - // Allow the callback to return early (e.g. in case of cancellation) + // Allow the callback to return early (e.g. in case of + // cancellation) err := cb(header, id, value) if err != nil { return err diff --git a/parser/reader.go b/parser/reader.go index c2444ee..4e18ad0 100644 --- a/parser/reader.go +++ b/parser/reader.go @@ -1,5 +1,7 @@ package parser +import "io" + type BufferReaderAt struct { buffer []byte } @@ -23,3 +25,29 @@ func (self *BufferReaderAt) ReadAt(buf []byte, offset int64) (int, error) { return n, nil } + +type OffsetReader struct { + reader io.ReaderAt + offset int64 + length int64 +} + +func (self OffsetReader) ReadAt(buff []byte, off int64) (int, error) { + to_read := int64(len(buff)) + if off+to_read > self.length { + to_read = self.length - off + } + + if to_read < 0 { + return 0, nil + } + return self.reader.ReadAt(buff, off+self.offset) +} + +func NewOffsetReader(reader io.ReaderAt, offset, size int64) io.ReaderAt { + return &OffsetReader{ + reader: reader, + offset: offset, + length: offset + size, + } +} diff --git a/parser/utils.go b/parser/utils.go index 25128e1..5d820c7 100644 --- a/parser/utils.go +++ b/parser/utils.go @@ -9,3 +9,7 @@ func WinFileTime64(reader io.ReaderAt, offset int64) time.Time { value := ParseInt64(reader, offset) return time.Unix((value/10000000)-11644473600, 0).UTC() } + +func IsSmallPage(page_size int64) bool { + return page_size <= 1024*8 +} diff --git a/parser_test.go b/parser_test.go index 42900a3..e9d9967 100644 --- a/parser_test.go +++ b/parser_test.go @@ -87,6 +87,20 @@ func (self *ESETestSuite) TestNtds() { goldie.Assert(self.T(), fixture_name, out) } +func (self *ESETestSuite) TestNtdsLongValues() { + cmdline := []string{ + "dump", "--limit", "500", + "testdata/Samples/ntds.dit", "sd_table", + } + cmd := exec.Command(self.binary, cmdline...) + out, err := cmd.CombinedOutput() + if err != nil { + assert.NoError(self.T(), err) + } + fixture_name := "ntds.dit_sd_table" + goldie.Assert(self.T(), fixture_name, out) +} + func (self *ESETestSuite) TestWebCache() { cmdline := []string{ "dump", "testdata/Samples/WebCacheV01.dat", "Containers", "Container_2", @@ -94,7 +108,7 @@ func (self *ESETestSuite) TestWebCache() { cmd := exec.Command(self.binary, cmdline...) out, err := cmd.CombinedOutput() if err != nil { - assert.NoError(self.T(), err) + assert.NoError(self.T(), err, string(out)) } fixture_name := "WebCacheV01.dat" goldie.Assert(self.T(), fixture_name, out) @@ -109,7 +123,7 @@ func (self *ESETestSuite) TestWindowsEdb() { cmd := exec.Command(self.binary, cmdline...) out, err := cmd.CombinedOutput() if err != nil { - assert.NoError(self.T(), err) + assert.NoError(self.T(), err, string(out)) } fixture_name := "WindowsEdb" goldie.Assert(self.T(), fixture_name, out)